  Most current approaches to characterize and detect hate speech focus on
\textit{content} posted in Online Social Networks. They face shortcomings to
collect and annotate hateful speech due to the incompleteness and noisiness of
OSN text and the subjectivity of hate speech. These limitations are often aided
with constraints that oversimplify the problem, such as considering only tweets
containing hate-related words. In this work we partially address these issues
by shifting the focus towards \textit{users}. We develop and employ a robust
methodology to collect and annotate hateful users which does not depend
directly on lexicon and where the users are annotated given their entire
profile. This results in a sample of Twitter's retweet graph containing
$100,386$ users, out of which $4,972$ were annotated. We also collect the users
who were banned in the three months that followed the data collection. We show
that hateful users differ from normal ones in terms of their activity patterns,
word usage and as well as network structure. We obtain similar results
comparing the neighbors of hateful vs. neighbors of normal users and also
suspended users vs. active users, increasing the robustness of our analysis. We
observe that hateful users are densely connected, and thus formulate the hate
speech detection problem as a task of semi-supervised learning over a graph,
exploiting the network of connections on Twitter. We find that a node embedding
algorithm, which exploits the graph structure, outperforms content-based
approaches for the detection of both hateful ($95\%$ AUC vs $88\%$ AUC) and
suspended users ($93\%$ AUC vs $88\%$ AUC). Altogether, we present a
user-centric view of hate speech, paving the way for better detection and
understanding of this relevant and challenging issue.
