Ourren

关注技术,记录生活.

Detecting Spammers on Twitter

| 留言

文章主要是通过机器学习的思路来自对twitter的用户进行分类「两类:正常用户与垃圾用户」。其中算法采用的是SVM算法,特征选取比较复杂,结合了内容特征与用户行为特征。个人感觉不错的是论文针对特征的选取和特征的精简部分。

整体流程

  1. 首先爬取了大量Twitter用户的数据(通过API接口 + 大量VPS/IP);
  2. 通过特定主题进行跟踪,例如跟踪:「the Michael Jackson’s death」,「Susan Boyle’s emergence,」,「the hashtag “#musicmon- day”」;即把这几个主题的发言和评论抓出来进行分析;这里实验数据处理的时候有一个技巧:正常内容很多,而垃圾内容太少,为了不让比例失调,特别减少了正常用户的比例,基本上「正常用户:垃圾用户(1:2)」;
  3. 手动做标签,作者写分为三个人同时对同一样本做标签,然后标识的时候需要参照三个人的答案;
  4. 提取特征值,鉴于特征值比较多,因此需要针对特征值进行分析,分析单一特征是否可以区分两类用户;
  5. 通过SVM算法对已经标识的样本进行建模,然后测试样本;
  6. 通过分析特征值,降维处理「减少特征值」;
  7. 最后计算准确率并分析。

创新点

  1. 从内容特征和用户特征对twitter社交数据进行特征提取,内容特征考虑:最大长度,最小长度,均值,一个内容中的主题(##), 网址数量,单词数量,数字出现个数,@的用户数量,有多少人转发等「39个属性」;用户特征:粉丝数量,关注数量,发帖数量,转帖数量,年龄,被@多少次,多少次回复,发帖时间间隔,一天发多少帖,一周发多少帖「23个属性」。
  2. 单一特征对分类的影响采用了cumulative distribution function (CDF)进行了分析,不熟悉CDF的可以看这里一维数据可视化:累积分布函数(Cumulative Distribution Function);
  3. SVM分类中采用了5阶交叉验证,即SVM参数的不同;
  4. 通过信息增益或者X2统计分析TOP10,TOP20,-TOP50特征值「内容特征与用户特征」的数量;关于信息增益可以看这里:文本分类入门(十一)特征选择方法之信息增益;
  5. 然后用这些特征再次测试准确率。

总结

从工作量上看确实需要做大量的工作,另外作者对特征选取,特征优化这些做得很不错。最后请记住这个是2010年的论文。

论文下载Detecting Spammers on Twitter