| Literature DB >> 35309873 |
Kadhim Hayawi1, Sujith Mathew1, Neethu Venugopal1, Mohammad M Masud2, Pin-Han Ho3.
Abstract
Use of online social networks (OSNs) undoubtedly brings the world closer. OSNs like Twitter provide a space for expressing one's opinions in a public platform. This great potential is misused by the creation of bot accounts, which spread fake news and manipulate opinions. Hence, distinguishing genuine human accounts from bot accounts has become a pressing issue for researchers. In this paper, we propose a framework based on deep learning to classify Twitter accounts as either 'human' or 'bot.' We use the information from user profile metadata of the Twitter account like description, follower count and tweet count. We name the framework 'DeeProBot,' which stands for Deep Profile-based Bot detection framework. The raw text from the description field of the Twitter account is also considered a feature for training the model by embedding the raw text using pre-trained Global Vectors (GLoVe) for word representation. Using only the user profile-based features considerably reduces the feature engineering overhead compared with that of user timeline-based features like user tweets and retweets. DeeProBot handles mixed types of features including numerical, binary, and text data, making the model hybrid. The network is designed with long short-term memory (LSTM) units and dense layers to accept and process the mixed input types. The proposed model is evaluated on a collection of publicly available labeled datasets. We have designed the model to make it generalizable across different datasets. The model is evaluated using two ways: testing on a hold-out set of the same dataset; and training with one dataset and testing with a different dataset. With these experiments, the proposed model achieved AUC as high as 0.97 with a selected set of features.Entities:
Keywords: Deep learning; GLoVe embedding; LSTM; Social bot detection; Twitter; User profile metadata
Year: 2022 PMID: 35309873 PMCID: PMC8917378 DOI: 10.1007/s13278-022-00869-w
Source DB: PubMed Journal: Soc Netw Anal Min
Fig. 1Proportion of tweeted links to popular websites by bots and human (Stefan et al. 2018)
List of datasets and its description
| Dataset | Description | #Bots | #Human |
|---|---|---|---|
| Training set | |||
| varol-icwsm (Varol et al. | Manually labeled accounts sampled from different Botometer score deciles | 674 | 1471 |
| cresci_17 (Cresci et al. | This dataset provides four classes of accounts namely genuine users, social spambots, traditional spambots and fake followers | 10,894 | 3474 |
| Celebrity (Yang et al. | Data based on accounts selected among celebrities | 0 | 5917 |
| botometer-feedback (Yang et al. | Data obtained by manually labeling accounts flagged by feedback from Botometer users | 139 | 379 |
| political-bots (Yang et al. | Data based on politics-oriented bots shared by a Twitter user | 61 | 0 |
| Test set | |||
| Botwiki (Yang et al. | Data is based on the botwiki.org archive of self-identified bot accounts | 697 | 0 |
| Verified (Yang et al. | Data obtained by collecting verified accounts from the streaming API | 0 | 1986 |
| midterm-18 (Yang et al. | Data based on political tweets collected during 2018 US midterm elections | 42,445 | 8092 |
| cresci-rtbust (Mazza et al. | A manually annotated dataset based on Italian retweets between June 17–30, 2018 | 353 | 339 |
| gilani-17 (Gilani et al. | Data based on accounts collected using twitter streaming API that were grouped and manually annotated | 1089 | 1413 |
Fig. 2PCA plots for test datasets. This plot shows the separability between each class in the dataset with given set of features. The plots in a and b show easily separable datasets, while that in c and d show more complex datasets in terms of separability
Fig. 3Architecture of the DeeProBot framework
List of features used and its description
| Feature name | Feature type | Feature description |
|---|---|---|
| Raw features | ||
| Statuses_count | Numerical | The number of Tweets (including retweets) issued by the user |
| Followers_count | Numerical | The number of followers this account has |
| Friends_count | Numerical | The number of users this account is following |
| Favourites_count | Numerical | Number of favorites obtained from metadata |
| Listed_count | Numerical | The number of public lists that this user is a member of |
| Default_profile | Binary | When True, indicates that the user has not altered the theme or background of their user profile |
| Verified | Binary | When True, indicates that the user has a verified account |
| Description | Text | The user-defined text describing their account |
| Derived Features | ||
| User_age | Numerical | The age of the account in days obtained by taking the difference of data collection date and account created date |
| Tweet_freq | Numerical | Statuses_count/user_age |
| Followers_growth_rate | Numerical | Followers_count/user_age |
| Friends_growth_rate | Numerical | Friends_count/user_age |
| Favourites_growth_rate | Numerical | Favourites_count/user_age |
| Listed_growth_rate | Numerical | Listed_count/user_age |
| Followers_friends_ratio | Numerical | Followers_count/friends_count |
| Screen_name_length | Numerical | Length of screen name |
| Name_length | Numerical | Length of name |
| Description_length | Numerical | Length of description |
| Num_digits_in_screen_name | Numerical | Number of digits in screen name |
| Num_digits_in_name | Numerical | Number of digits in name |
| Screen_name_freq | Numerical | Mean bigram frequency of characters in screen name |
| Screen_name_entropy | Numerical | Entropy of screen_name |
| Name_entropy | Numerical | Entropy of name |
| Description_entropy | Numerical | Entropy of description string |
| Name_sim | Numerical | Similarity between screen name and name |
| Names_ratio | Numerical | Ratio of length of screen_name to length of name |
Derived features from name and screen_name
| Human | Bot | |
|---|---|---|
| ShaneRWatson33 | Tennessee_hire | |
| Shane Watson | Tennessee jobs | |
| 1 | 1 | |
| 0.241 | 0.192 | |
| 0.257 | 0.197 | |
| 0.692 | 0.571 |
Final set of features after feature selection
| Final set of features | Feature type |
|---|---|
| Statuses_count | Numerical |
| Followers_count | Numerical |
| Friends_count | Numerical |
| Favourites_count | Numerical |
| Listed_count | Numerical |
| Tweet_freq | Numerical |
| Num_digits_in_name | Numerical |
| Screen_name_freq | Numerical |
| Name_entropy | Numerical |
| Description_entropy | Numerical |
| Description | Text |
Example of description text for bot and human classes
| Class | Description text |
|---|---|
| Bot | I am a member of a network of stock investing educators. Check out more stock tips & resources on investing-information.com |
| The only website dedicated to streaming The Inbetweeners for FREE!!!!!!! | |
| Human | The official Twitter of fashion designer Vivienne Tam |
| Lawyer, dog lover, passionate about music, politics, literature, cricket, and art in that order |
Fig. 4Deep learning model architecture for bot detection
Fig. 5Bar plot showing the number of samples in each class of training dataset. This shows a balanced distribution of bots and human in training set
Hyperparameters for neural network model
| Hyperparameters | Value |
|---|---|
| Batch size | 40 |
| Learning rate | 0.001 |
| Optimizer | Adam |
| Loss | Binary cross entropy |
| L1_L2 Regularizer | L1 = 0.01, L2 = 0.001 |
| Dropout rate | 0.1 |
| Early stopping metric | Validation loss |
| Early stopping patience | 5 |
Result analysis based on feature selection
| Without feature selection | 0.98 | 0.99 | 0.86 | 0.69 | 0.62 |
| With feature selection | 0.97 | 0.97 | 0.96 | 0.72 | 0.67 |
Fig. 6Proportion of empty description field in both human and bot classes. a Shows the description field status of human class where only 9.7% of users have an empty description field. b Shows the status of bot class where almost half of the users have an empty description text
Fig. 7a Shows the top 10 common words in Bot Class. b Shows the top 10 common words in Human Class. The words and their frequencies are entirely different for both classes
Result analysis of adding description text as a feature
| Without description | 0.97 | 0.95 | 0.94 | 0.66 | 0.63 |
| Without GLoVe embedding | 0.93 | 0.78 | 0.84 | 0.68 | 0.60 |
| With 25D GLoVe embedding | 0.96 | 0.95 | 0.93 | 0.69 | 0.60 |
| With 50D GLoVe embedding (DeeProBot) | 0.97 | 0.97 | 0.96 | 0.72 | 0.67 |
| With 100D GLoVe embedding | 0.97 | 0.97 | 0.94 | 0.71 | 0.64 |
| With 200D GLoVe embedding | 0.96 | 0.96 | 0.94 | 0.66 | 0.67 |
Comparison of DeeProBot framework with other methods based on AUC
| Method | Feature set | |||||
|---|---|---|---|---|---|---|
| Yang KC et al.(Yang et al. | 20 features based on user profile | 0.98 | 0.94 | 0.96 | 0.48 | 0.69 |
| AdaBoost | 11 features based on user profile | 0.99 | 0.82 | 0.95 | 0.42 | 0.59 |
| GRU | 11 features based on user profile | 0.96 | 0.90 | 0.84 | 0.61 | 0.61 |
| CNN | 11 features based on user profile | 0.95 | 0.82 | 0.83 | 0.63 | 0.66 |
| DeeProBot | 11 features based on user profile | 0.97 | 0.97 | 0.96 | 0.72 | 0.67 |
Fig. 8Training loss versus validation loss based on training history for 25 epochs. a Learning curve for the model without dropout and activity regularizer. The model fails to fit without these regularization strategies b Learning curve for model with dropout and activity regularizer shows the model fits its best through initial epochs
Fig. 9ROC curves for the performance of DeeProBot on test datasets. a ROC of botwiki-verified and b ROC of midterm-18 show superior performance while c ROC of cresci-rtbust and d ROC of gilani-17 which are separably complicated datasets show a lower performance
Fig. 10F1-scores for different threshold values
Fig. 11Average feature values across groups of correctly classified and misclassified test data