王嘉祺 何新磊 汪天一 王 新
1(复旦大学计算机科学技术学院 上海 201203)2(上海市智能信息处理重点实验室(复旦大学) 上海 200433)3(北京字节跳动科技有限公司 北京 100086)
在当代,移动社交应用已经成为日常生活中不可或缺的一部分,如WhatsApp[1]、微信[2]、Instagram[3]、Foursquare[4]/Swarm[5]等已经在全球广泛使用。在这些应用中,用户分类有着很多实用的场景。例如,找出恶意账号并及时封禁可以极大提升用户体验;针对高影响力用户或潜在的会员用户可以采取对应的营销策略。若是对用户进行多维度标签,推荐系统便可以高效运作。
本文旨在设计一套基于机器学习的移动社交网络用户分类系统,该系统可以适用于各种分类场景,而并不局限于单一的分类目标。例如,广告提供商可以使用它分类出高影响力用户并与其合作,使得广告的投放事半功倍;虚拟服务提供商可以用其找出某个移动社交网络中的付费用户,因为这些用户更有可能付费购买其服务;移动社交网络平台可以用其检测出平台中的恶意账号并及时采取措施,保障正常用户的体验。分类系统分为两部分:基础分类模块和处理时序特征的深度学习模块。用户的静态特征,例如人口学特征、用户生成内容(UGC)特征等由基础分类模块处理;用户的动态特征例如发帖、评论等行为特征由深度学习模块处理。为了测量分类系统的效果,我们实验了三种不同的分类目标,分别是恶意账号检测、高影响力用户发现及会员用户发现。由于陌陌已经标定了恶意用户及会员用户,因此我们省去了数据标定的过程。实验中对于不同的分类目标均使用了大量来自陌陌的真实用户数据,并对比了不同的监督学习算法,最终我们选择XGBoost[6]作为基础分类模块的核心算法。
本文共有以下3个贡献:
1) 提出了移动社交网络中的用户分类问题,且使用陌陌中的真实用户数据验证了分类模型。
2) 使用了深度学习技术,即长短记忆神经网络[7],并与经典的分类算法相结合,实现了多目标的分类。
3) 对陌陌的真实数据进行了充分的分析,实验结果表明,本文的模型对于不同的分类目标均可达到很好的效果。
鉴于社交网络中用户分类问题的重要性,目前对此已有多项研究,不妨以恶意账号检测为例,已有的分类方法主要分为两大类。
一类方法聚焦于社交图谱。这类方法通常假设在恶意账号与正常账号之间建立紧密联系是较为困难的。西班牙最大的在线社交网络Tuenti上部署着这类基于社交图谱的随机游走算法SybilRank,以检测恶意账号[8]。
另一类方法通过收集各项特征并利用机器学习算法找出恶意账号。人人网基于此运行了一套恶意账号检测系统。Yang等[9]发现,人人网中的恶意账号与正常账号联系密切,他们基于用户之间的交互,如好友请求的频率等特征,构建了一套恶意账号检测系统,并于2010年8月部署到人人网。Zhang等[10]在大众点评上部署了类似的系统。Gong等[11]提出了一套基于深度学习的算法DeepScan,以在大众点评上找出恶意账号。然而,这类算法均是聚焦于一种具体的用户分类场景,并不具有较好的通用性。文献[12]设计了一套用户分类系统,将推特中的用户分为不同类别,但与本文不同的是,他们并没有考虑到用户的动态行为特征。
影响力[13]是一种描述用户在社交网络中重要程度的指标。信息在社交网络传播的过程中,重要的用户通常起着较大的作用。目前已经有一些通用的方法来衡量用户的影响力。文献[14]考虑通过关注数和活跃程度衡量影响力,但他们发现拥有较高关注者的用户并非一定拥有较大影响力,因为这些用户的推特转发数和提及数并不一定很高。文献[13]研究了推特中事件的传播,他们发现高影响力的用户对于某些事件的传播拥有决定性作用。文献[15]通过Page-Rank[16]来衡量节点的影响力。在社交网络中,Page-Rank不仅考虑了用户的关注数,还考虑了每个关注者自身的影响力,因此可以较好地衡量用户的影响力,但是计算PageRank需要获得整个网络的结构信息。
陌陌[17]是一款基于地理位置的移动社交应用,用户可以与好友或者周围的陌生人进行互动。陌陌在全球拥有超过1.8亿用户,通过陌陌,用户可以基于自己的实时位置,查看附近有哪些其他用户,与他们分享文字、图片和视频,并与他们成为好友。用户主页是用户的第一形象,包含了用户ID、头像、性别、注册日期、年龄星座、发帖数、最近一次更新的位置及更新时间等信息。
动态是陌陌的核心社交功能之一。用户可以发帖向好友和周围的用户分享文字、图片、视频信息,该帖可被其他用户评论,帖下的评论也可以被其他用户评论。通过该功能,位置相近的用户可以找到共同的兴趣话题,并成为好友。
陌陌是被广泛使用的移动社交软件之一,拥有近1.8亿遍布全球的用户。在陌陌中,我们可以访问任意用户的用户主页,查看其发帖,并通过主页和发帖信息,知道该用户是否是恶意用户或会员用户。因为恶意用户或会员用户均会在主页和发帖信息中有相应标识,因此免去了我们人工标定数据的过程,标识的细节我们将在后文中叙述。此外,我们获取到了较长一段时间内陌陌用户所有的发帖和评论信息,使得建模整个活跃用户社交网络,计算用户的PageRank成为可能。综上所述,我们选择陌陌作为我们研究的移动社交网络。
社交网络中的用户根据不同的标准可以划分为不同类别。为了验证本文提出的分类算法的可扩展性,我们从3个不同的方面,分别将陌陌用户分为恶意账号与正常账号、高影响力用户与一般用户、会员用户与普通用户。
(1) 数据获取 通过抓包的方式,我们获得了陌陌客户端调用服务端的相关API,包括了发帖详情、帖评论详情、用户主页详情的API。通过这些API,我们首先获取了2016年7月17日至2016年9月17日所有的发帖,以及这些发帖的所有评论,共得到3.44亿条发帖及3.58亿条评论。然后,我们获取了这些发帖评论关联的陌陌用户主页信息,共计3 200万条。这些数据存储在数据库中,共占用330 GB磁盘空间。需要注意的是,所有获取到的用户ID均是加密的,无法将获取到的数据与陌陌应用中的用户直接关联,所以用户的隐私得到了保障。
(2) 陌陌数据概况 在我们的数据集中,男性用户占67.91%,女性用户占32.09%。从年龄分布来看,20岁以内的用户占9.71%,20~30岁的用户占62.03%,30~40岁的用户占20.29%,超出40岁的用户占7.69%,由此可见,20~30岁的用户是陌陌的主力军。
(3) 评论图谱 基于评论数据,我们构建了评论图谱G=(V,E)来建立陌陌用户间的评论社交关系。图中节点v∈V代表陌陌用户,若用户x对用户y的发帖或评论发表了评论,则(x,y)∈E,否则(x,y)∉E。最终,G中包含了21 541 801节点和148 844 803条边。
我们引入了入度、出度、聚集系数和PageRank来描述G中节点的属性。入度表示该用户的发帖或评论被评论的次数,出度表示该用户评论其他用户的次数,聚集系数越高则该用户与其周围的用户联系越紧密,PageRank越高则表示该用户的影响力越高。图1中展示了入度、出度、网页排名的累积分布函数,G中节点的平均入度和出度是4.55,大部分节点的聚集系数都很小,表明G中的节点连接得并不紧密。同时,我们分析了G中较大的弱连通子图,规模由大到小依次占2.75%、2.38%、2.29%、2.05、2.02%。这与常见的社交图谱的不同,因为它并不包含一个较大的弱连通子图。
(a) 陌陌评论图谱入度/出度 (b) 陌陌评论图谱网页排名图1 陌陌评论图谱入度、出度、网页排名的累积分布
本节介绍分类系统的设计架构。系统基于机器学习算法,结合静态特征和动态特征,具有较好的扩展性,可适用于不同的分类目标。
为了充分发掘静态特征与动态特征所包含的信息,分辨不同类别的用户在两类特征上的不同,我们引入了深度神经网络。系统架构如图2所示,动态特征输入LSTM网络,再通过Softmax得到深度学习模块输出的各类别的概率,其输出与静态特征一同输入传统机器学习分类模块的自定义分类器,得到最终的输出。自定义分类器是从几种经典的分类算法中,选择分类效果最好的算法作为其具体实现,具体细节将在实验部分详述。
图2 系统架构图
如表1所示,特征被分为了不同类别(子集),如人口学特征、UGC特征、社会学特征等静态特征,及发帖特征、评论特征等动态特征。
表1 特征集
续表1
(1) 静态特征 静态特征主要包括用户属性和统计意义上的特征。其中:人口学特征包含了用户的基本信息,如年龄、性别、注册日期等;UGC特征包括了用户的发帖数、主页收藏的音乐、电影、书籍等统计特征;社会学特征即社交图谱中节点的图属性,包括了入度、出度、聚集系数和PageRank。
(2) 动态特征 我们假设不同类别的用户会有不同的日常行为模式,因此分析用户的每日发帖和评论行为并作为动态特征。
动态特征包含发帖特征和评论特征。发帖特征体现了不同用户每天的发帖模式,包括了每天的总发帖数、每天被评论的帖数、每天所发帖的总长度等;评论特征提现了不同用户每天的评论模式,包括了截至当天的总评论数、每天评论的用户数、每天的评论数等。
为了深入理解不同特征子集对不同分类目标的重要程度,我们分别对于每个分类目标采用不同特征子集,并比较他们的分类结果。
图3-图5分别展示了不同特征在不同类别用户上的分布。如图3所示,恶意账号与正常账号在注册时间上表现出了极大差别,正常账号的注册时间分布较为均匀,而恶意账号的增长速度在2016年4月后陡增。这可能与陌陌在2016年4月上线在线直播功能有关,一些主播可能会采用大量马甲账号提升自己直播间的人气。图中还可以看出,恶意账号的年龄与正常账号比更年轻,需要注意的是,恶意账号的年龄可能是虚假的,以骗取更多用户关注。图4中,高影响力用户拥有更高的入度,且发了更多帖子,可见高影响力用户一般较为活跃。图5中,会员用户的注册时间相对普通用户更久些,发帖数比普通用户更多,由此可推断出老用户比新用户更倾向购买会员。
(a)注册时间累积分布 (b)年龄累积分布图3 恶意账号vs正常账号
(a)入度累积分布 (b)发帖数累积分布图4 高影响力用户vs一般用户
(a)注册时间累积分布 (b)发帖数累积分布图5 会员用户vs普通用户
我们使用了LSTM模型建立用户每日行为特征向量之间的联系。用户每日的行为特征已在表1中的动态特征部分展示,由发帖特征和评论特征构成11维向量。根据2.4节所述,我们的数据集包含了陌陌用户63日内的行为数据,可以构成长度为63的向量序列,序列中的每个向量表示用户当日的行为特征。LSTM神经网络是一种时间递归神经网络,被设计以处理和预测较长的序列向量,它的特点在于擅长记忆较长的序列,且具备遗忘机制。在我们的模型中,如图2所示,LSTM被用以记忆用户的日常行为特征序列,分辨不同类别用户行为模式的差异。
我们将用户日常行为特征向量输入LSTM网络,将最后的输出传入全连通网络,并使用交叉熵代价函数作为目标函数优化模型中的参数。用于训练模型的数据越多,数据的质量越高,训练出的模型效果越好。
最终,我们构建了一套监督学习用户分类系统,该系统使用了静态特征与动态特征,结合了传统机器学习算法与深度学习算法。
我们将在本节中介绍分类系统的实现细节,且通过实验评估其效果。为了实现系统中基于LSTM的时间序列分析模块,我们使用了tensorflow,一套开源的机器学习软件库。我们对比了一些经典的机器学习算法,包括C4.5决策树[18]、随机森林[19]、支持向量机[20]、朴素贝叶斯[21]和XGBoost。我们的分类目标包括恶意账号检测、高影响力用户发现及会员用户发现。
(1) 恶意账号与正常账号分类 陌陌的用户主页详情API中有“deny code”字段,若该字段设为1,则主页被浏览时,上方会出现提示“账号可能存在异常,请谨慎交谈”。另一类恶意账号由于多次进行垃圾评论,其所有的评论内容被置为“该用户被多人举报,可能存在异常”。数据集中,恶意账号共有1 459 697个,占总数的4.6%。我们随机选择10 000个恶意账号与10 000个正常账号,取其中70%作为训练集,另30%作为测试集。
(2) 高影响力用户与一般用户分类 我们使用PageRank量化用户的影响力,事实上,PageRank已经被广泛用于衡量影响力。我们根据评论图谱,计算每个用户的PageRank并由高到低排序,取前1%作为高影响力用户,其余用户为一般用户。数据集中,共有327 000用户被标记为高影响力用户。我们随机选择10 000高影响力用户与10 000一般用户并选择其中70%作为训练集,其余为测试集。
(3) 会员用户与普通用户分类 会员用户作为付费用户的代表,在数据集中占7%。同样地,我们随机选择10 000会员用户与10 000普通用户,并取其中70%作为训练集,其余为测试集。
我们使用查准率、查全率和F1值衡量分类效果。以恶意账号检测为例,查准率为算法正确分类出的恶意账号数占算法分类出的恶意账号数的比例,查全率为算法正确分类出的恶意账号数占总恶意账号数的比例,F1值为两者的调和平均。对于每种算法,我们使用网格搜索法找到最适合的参数。
首先对比了不同的机器学习算法的分类效果,表2-表4展示了3种不同的分类目标分别使用不同传统机器学习算法实现自定义分类器的分类结果。可以看出,对于不同的分类目标,XGBoost总能取得最好的效果。在表2中,恶意账号检测的F1值可以达到0.918,在表3中,高影响力用户发现的F1值可以高达0.970,在表4中,会员用户发现的F1值可以达到0.872。
表2 恶意账号检测分类结果
表3 高影响力用户发现分类结果
表4 会员用户发现分类结果
为了评估各特征集合对分类结果的贡献,我们对于不同的分类目标,分别使用的一个或多个不同特征集进行分类。首先使用全部特征集分类,然后每次分别移除一个特征集,保留除该特征集外的其余特征集,得到缺失某个特征集的分类效果。接着,每次仅使用一个特征集分类,得到使用单个特征集的分类效果。实验结果分别展示在表5-表7中。对于恶意账号检测,移除了动态特征后F1值下降最多,且仅使用动态特征本身时分类效果也是相对最高的,F1值达到0.845。因此,动态特征对于恶意账号检测至关重要,各特征集的重要程度由大到小依次为动态特征>发帖特征>UGC特征>人口学特征>评论特征>社会学特征。可以看出,恶意账号与正常账号的发帖行为有着较大差别。对于高影响力用户发现,移除动态特征后F1值下降最多,在仅使用一个特征集的条件下,使用动态特征的效果最好。因此动态特征对于高影响力用户发现同样是最重要的,各特征集重要程度依次为动态特征>社会学特征>评论特征>发帖特征>UGC特征>人口学特征。与恶意账号检测不同的是,社会学特征与评论特征对于高影响力用户发现较为重要。对于会员用户发现,移除人口学特征后F1值下降最多,人口学特征与UGC特征均比动态特征重要,各特征集重要程度依次为人口学特征>UGC特征>动态特征>发帖特征>评论特征>社会学特征。这表明人口学特征和UGC特征与该用户是否是会员用户最为相关。事实上,在陌陌中,会员用户在发帖页拥有独有的表情和气泡,这可能会鼓励会员用户发更多帖。
表5 恶意账号检测各特征子集贡献分析
表6 高影响力用户发现各特征子集贡献分析
表7 会员用户发现各特征子集贡献分析
本文研究了移动社交网络中的用户分类问题,基于深度学习技术,分析了不同类别用户行为模式的差异。本文实现的分类系统经过陌陌真实数据的验证,在不同的分类目标上均取得了较好的效果。由于本文使用的数据均来自公开数据,本文提出的分类方法不仅适用于移动社交网络服务提供商,其他的三方应用提供商亦可适用。
我们的研究中尚有不足之处。由于陌陌的数据已有标签,我们可以免去人工标定数据的麻烦,所以本文仅使用陌陌数据验证效果。本文的研究可以拓展到其他社交网络及更多分类目标。同时,我们将进一步挖掘用户数据中的文本、图片和视频信息,以期在分类效果上达到新的高度。