使用长短期记忆深度神经网络进行机器人检测--(Deep neural networks for bot detection)

摘要

当前检测社交机器人对很多技术都是针对于账户级别, 通过处理大量的社交媒体内容并利用网络结构的信息,时间序列,情感分析等等。本文中提出来基于长短期记忆架构的深度神经网路同时利用了内容和元信息在推特级别上检测社交机器人。从用户元信息中提取上下文特征,作为辅助输入给处理文本内容的神经网络。另一个贡献就是提出来一个基于合成少数族群过采样的技术来生成较大的有标签的数据集,使用一小部分有标签的数据集来对深度网络进行训练。结果表明,仅仅从一个单一的推特上,我们的架构能够实现高达96的AUC精确度。并且使用相同的架构从账户级别进行检测能够达到99%的精确度。

介绍

之前的研究中归纳总结提出来两个问题:

  • 能否准确的预测一个给定的推文判断账号是社交机器人还是人类账号
  • 能否不通过额外的数据收集或者标注步骤来增强已有的数据集产生更多的机器人和人类账户样本。
    我们的贡献是试图解决以下几个挑战:
  1. 仅仅通过推特账号的一条推文就判断该账号是机器人还是真人账号,还证实了在推文级别的检测是可能的,并很精确。同时利用文本特征和推文的元信息能够得到性能很好的结果。
  2. 使用长短期记忆神经网络来对社交机器人账号进行分类
  3. 通过少数合成少数簇过采样(synthetic minority oversampling)技术来增强现有数据集。

本文的影响

能够克服上述提出的限制:需要大量的特征,大量的数据集,和大量的特征数来训练模型的问题。
并且如果转向推特级别的社交账号检测,能够使得数据集大几个数量级,一定程度上解决数据量不足的问题。并且以往的研究得出,仅仅检测推特文本不足以准确的检测社交机器人账户,通过使用账户元数据的特征,网络结构尽心,或者活动模式,能够产生更加鲁棒性的结果
本文提出来一种新奇的基于文本的LSTM架构利用文本数据和账户的元数据能够产生更准确的分类结果。

数据集

数据集是Cresi和其合作者提出的,其中包含来新一代的社交机器人。人类账户,三种社交机器人混合。所有这些数据一共有8386个用户账户以及11834866篇推文。虽然许多检测技术都使用了大量的特征,但是最近的研究指出,仅仅使用少量的特征也能得到满意的结果。对于账户级别的机器人检测使用了如下特征

  • 状态数量
  • 追随者数量
  • 朋友数量
  • 喜爱者数量
  • 列表数量
  • 默认配置
  • 地理特征
  • 是否使用默认图片
  • verified
  • protected
    对于推文级别的分类仅仅使用了6个特征
  • 转推数量
  • 回复数量
  • 喜爱数量
  • hashtags数目
  • URL数目
  • 提及数目
    选择有限的特征主要由于一下两个原因
    模型有效性:少数的特征能够产生很有效的模型并且能够训练的更快以及防止过拟合
    可解释性:少量的特征有明确的意义,能够产生可解释性的模型。

方法

本研究中面临两个分类任务:

  • 账户级别的机器人检测
  • 推特级别的机器人检测

账户级别的分类

先前的账户级别的分类研究中指明了用户的元数据是对机器人检测的最好的预测器。通过第二节中描述的,我们使用少量高度可解释性特征基本不需要预处理,所以可以使用很多开箱即用的机器学习分类方法作为baseline。
本任务中,我们发现这些方法都能达到一个令人满意的性能,超过90%,最好的结果是随机森林,能达到98.45%。并且使用SMOTE方法在特征空间插值的方法生成新的样本,来更好的平衡数据。通过生成的数据Adaboost实现来最好的分类效果为99.81%。结果发现仅仅在账户级别进行机器人检测,简单的模型就能产生很好的分类效果。

推特推文级别的分类

原来基于内容的检测方法得到的效果都不是很好。很多方法都试图基于内容推断,但是这种方式已经被证明无效了,为了克服传统技术的限制,使用了长短期记忆模型。并且为了能够使得推文文本转化为适合LSTM处理的形式,采用一个嵌入策略,我们使用了一个预训练的词表征的全局向量(GloVE)来表征推特数据。

数据处理

  • 对每一个推文进行了预处理标签进行了替换
  • 普通表情使用特别的标签替换
  • 对于带有重复字母的单词进行了替换
  • 所有的分词都转换成了小写
    需要注意的是,我们的模型在每一个输入之后都重置了状态,因此只学习了每条推文的的序列化结构。

传统的模型的限制

传统的LSTM仅仅使用了推文内容,没有利用账户的元信息,如果两个都能输入到模型中,一定能提高预测效果。


传统方法的架构

前后关系的LSTM架构

提出的方法的架构

提出的架构中有多个输入和输出,许多作者采用了辅助输入到递归模型的输入,隐藏或者输出层,来增强表征。我们的工作中,用辅助输入扩充输出层。主要的输入就是被分词和转化成GloVE向量,将其喂入到LSTM中,然后得到一个输出向量,与辅助输入拼接,输入到一个2层神经网络中,产生输出。作为一个正则机制,我们还用来一个辅助输出,目标也是分类标签,总共的loss是主输出和辅助输出的加权平均(0.8:0.2)。

结果

本节讨论之前产生的结果

账户级别的分类

账户级别分类的结果

如果不实用过采样技术,随机森林和Adaboost能得到最好的结果。第二批使用来SMOTE过采样技术,Adaboost能达到99.81%的AUC精确度。表明使用合成少数簇增强训练技术,进行高精度账户级别机器人检测是可能的。

推特界别的分类

推特级别的分类结果

第一批只对这些现成的算法进行来朴素实现。第二批使用来SMOTENN技术,最后是提出的算法。我们提出的算法能够达到95.53%的精确度,效果十分不错。值得注意的是,从我们的分析中即使元数据是一个弱分类指标,我们也建议加入到分类判断中来,我们提出的架构使用这些信息产生了更好的预测结果。元数据并没有被模型过采样。

模型可解释性

对不同的激活层进行了分析,分析了其可解释性。

当前方法的限制

我们提出了一个机器人检测模型仅通过一条推文进行检测。我们也发现仅仅使用推文的元数据并不是很有效,我们也表明通过使用推文内容,搭配上可用的元数据信息能够提升相关的性能。

总结

提出了一个新奇的剩下文LSTM架构能够使用推文内容和元数据在推文级别来检测机器人。对于单一的推文,我们的模型能够达到超过96的AUC精确度。
也表明元信息是弱分类特征,但是加入进特征之后,能够降低20%的错误率。这些少量的特征都非常容易获得。
未来,我们计划开源框架,并实现一个web服务。

总结自--Kudugunta和Ferrara, 《Deep Neural Networks for Bot Detection》.

你可能感兴趣的:(使用长短期记忆深度神经网络进行机器人检测--(Deep neural networks for bot detection))