摘要
尽管机器人检测系统快速发展,但是与时俱进的检测模型仍然勉励这通用性,和检测速度的挑战,限制了应用的发展。在本文中提出了一个使用来自用户元数据的少量的特征得到的框架,使得检测速度能够满足推特上所有新的推文的检测。
并且最重要的是,我们发现从训练数据集中策略的选择一个子集就能够产生准确度和通用性比在所有数据上训练得到的模型更好的模型。
介绍
很多使用机器学习检测机器人的框架都面临着检测速度和通用性的难题。本文针对的就是这两个关键性问题,检测速度是能够通过有限的资源分析流式数据,即检测速度要大过内容产生的速度。通用性是指能够检测出不同数据集中不同的机器人。通过仅仅关注用户的账户信息能够轻松实现较快的检测速度。令人惊奇的是,通过仔细挑选训练数据中的子集,而不是混合所有数据,能够实现更好的通用性。
特征工程
本文为了检测速度,抛弃了大量其他特征,只依赖于上表中的20个特征。
user_age是指创建时间和检测时间的小时差。用来计算很多rate特征。screen_name_likelihood特征是受到(Beskow and Carley 2019)年工作的启发,用的信息检索中n-gram方法估计分布主要是2-gram。
数据集
上图是本论文中的数据集,上图中下面三个是本论文创建的三个数据集。
数据分析
首先使用PCA主成分分析技术,将数据都降维到2维平面,看这些数据的可分离性,左面五个数据的可分离性较好,其他的不是特别好。可能因为有些数据集中机器人已经表现出复杂的特征,使人不容易区分真人和机器人了。
接着对模型的通用性进行了分析,横着看是从一个数据集上训练在其他数据集上测试,表明了在单一数据集上训练是否有较好的通用性,竖着是用其他数据集训练,在单一数据集上测试,表示这个数据集是否很容易可分。
模型选择
使用上表中的八个数据集不同组合来训练247个带100棵子树的随机森林模型,查看不同模型的准确性。结果如下:
发现m196的模型精度最好,然后又拿这个模型在不同没见过的测试集上随机抽取账号进行测试,得到的AUC分布图如图3。以及五折交叉验证得到的结果如图3(e)。可以看出在gilani-17上和midterm-18上的结果不是特别好,然后单独在这两个数据集上训练测试能够分别得到0.84和0.87说明泛化性在这两个数据集上解决起来有些困难。
模型可解释性
使用SHAP技术来分析每一个特征对于分类结果的可解释性:
总结
代替在所有可用数据上训练模型,有策略的选择一些训练数据的子集即可产生较好的效果。并且只使用用户账户抽取的20个特征即可产生不错的效果。
总结自--Yang等, 《Scalable and Generalizable Social Bot Detection through Data Selection》.