APP下载

基于LambdaMART算法的微信公众号排序

2019-12-30渠北浚蔡东风陈建军

中文信息学报 2019年12期
关键词:排序公众特征

渠北浚,白 宇,蔡东风,陈建军

(1. 沈阳航空航天大学 人机智能研究中心,辽宁 沈阳 110136;2. 北软职业信息技术学院,辽宁 沈阳 110136)

0 引言

21世纪是信息爆炸的时代,人们获取信息的方式也发生了巨大的变革,门户网站和社交媒体中的文章已经成为了人们获取信息的重要来源。根据《中国互联网发展报告》的报道,截止2018年12月,手机网民规模达到8.17亿,全年新增手机网民6 433万;手机即时通信用户达7.80亿,占手机网民的95.5%。微信作为具有代表性的新兴即时通信应用之一,成为了移动互联网时代信息获取的主要源头。微信是腾讯公司2011年1月21日推出的一款即时通讯应用程序,允许用户通过网络对文字、语音、图片、视频等形式的信息进行快速分享。2012年8月23日,随着微信公众平台的正式上线,微信已不仅是一个移动通讯工具,而是成为了人们日常生活中获取新闻、资讯、观点等信息的主要来源。截止2018年12月,月活跃用户已经达到了10.82亿,较2017年增长了19%。在微信开放平台中,微信公众号注册总量已经超过了2 000万个,月活跃账号为350万个,同比增长14%;月活跃粉丝数为7.97亿人,同比增长19%[1]。

微信公众号是由人工整理的有序的文章集合,涵盖了人们日常生活中的各个领域,且具有“小而美”的体态[2]和精准转播的特点。然而同一领域涉及的微信公众号数量大、质量参差不齐等问题给用户选择和维护信息来源带来困难。如何选择能够为自己创造价值,满足对信息获取的便捷性和及时性的优质微信公众号对用户来说是非常关键的。针对这一问题,现有的公众号排序方法主要是对总阅读数、总点赞数等量化指标进行人工经验赋权得到排序结果,但是忽略了文章内容对公众号选择的影响。本文在保留量化指标的基础上,提出了主题垂直性、发文稳定性、主题覆盖率和主题相关性等微信篇章排序特征,使用LambdaMART算法针对上述特征集合进行排序学习,并通过主成分分析进行特征选择优化。

1 相关工作

自2013年开始,针对微信公众号质量评价指标的研究已深入到图书馆学、新闻转播学等多个学科领域。冀芳、张夏恒[3]在分析微信学术期刊类公众号评价影响要素基础上,人工对评价指标赋权,然后基于评价指标与指标权重系数,构建学术期刊微信公众号评价模型。郭顺利等[4]结合高校图书馆微信公众平台特点,运用扎根理论,构建图书馆微信公众平台传播影响力评价指标体系,并运用层次分析法确定指标权重,最终确立影响力评价公式。李明德、高如[5]运用层次分析法构建媒体微信公众号传播力评价体系,通过Delphi法构造判断矩阵,确定指标权重,对媒体微信公众号进行整体评价。张艳萍[6]采用文献研究法,并结合定性和定量分析,分析微信公众号样本数据,寻找运营微信公众号规律,最终从跨学科视角,提出科技期刊微信公众号运营策略。黄炜等[7]通过对微信公众号指标体系评价的构建进行了研究,选取关键影响指标构建指标体系,并用德尔菲专家法、层次分析法、模糊综合评价法计算权重研究合理的评估方法。吴中堂等[8]通过对微信公众号关键词热度和标题语义分析两个维度进行回归分析,揭示两个维度下量化指标与信息阅读率正负相关性,以及信息阅读率与转发收藏率的数量关系。颜月明、赵捧未[9]通过对H指数的借鉴,及扩展指标R指数,并综合考虑点赞量和阅读量构建 WeChatIndex 模型,形成一种微信公众号真实影响力评估方法,并与现有模型进行对比。一些新闻研究者、自媒体也推出微信公众号排序算法。清博大数据[10]通过“整体传播力”“篇均传播力”“头条传播力”“峰值传播力”四个维度对微信公众号进行评价,并且根据历史数据优化指标权重。新榜指数[11]基于海量数据、用户深度反馈及专家建议而推出,根据整体指标、优异指标、质量指标、主动预判指标、互动指标对微信公众号进行评估排序。

上述研究方法存在的主要问题表现在评价指标不全面、不深入,权值选择带有经验性倾向,以偏概全。本文的研究方法是在针对微信公众号基于外部统计数据,例如,阅读量、点赞量等量化数据的基础上,对内容进行分析,进一步考察微信公众号主题垂直性、发文稳定性、主题覆盖率、主题相关性。针对这些特征通过主成分分析去除冗余性,保留重要特征,通过排序学习算法,自动学习获取最合理的排序公式,并给出最终排序结果。

2 基于LambdaMART算法的微信公众号排序

2.1 LambdaMART算法

排序学习(learning to rank)通过机器学习的方法解决排序问题,并且已广泛应用于不同的领域[12-13]。传统排序模型需要人工对每个特征参数进行调节,排序学习方法可以轻松地融合多个特征,其模型参数是由迭代得出,并且针对特征值稀疏,过拟合问题都有很好的解决策略。

如图1所示,在微信公众号排序任务中,对给定的查询,对应着许多个公众号,每个公众号都与给定的查询有一个相关程度的数值y。每个公众号都由若干特征构成。在确定了特征数量后,即可将每一个公众号转换为特征向量X,这样每个微信公众号会转换为的形式,即特征向量及其对应的相关性得分,这就形成了具体的训练实例。通过多个实例,采用机器学习进行训练,训练结果是一个回归或者分类函数,在输入新的查询——公众号对之后,就可以用这个函数进行打分,形成排序结果。

图1 排序学习原理

从目前研究方法来说,排序学习[13]有三种方法: Pointwise、Pairwise和Listwise。前两种方法是将排序问题变成分类问题,Listwise方法则是将用户查询对应的所有文档整体作为一个训练实例,每个文档都有一个相关性得分,通过训练得到最优评分函数,函数对于新输入文档打分,最终按照得分高低进行排序即为最终结果。在排序学习模型研究中,LambdaMART是一种Listwise类型的排序学习算法,它是由微软的C Burges[14]提出,并且出现在各种机器学习大赛中。针对微信公众号打分,大部分是通过对每一维特征指定权重求和打分,所以本文选择LambdaMART算法进行实验,该方法把量化后文档特征加入到打分函数,自动学习特征权值,实现对特征的加权。

LambdaMART算法是LambdaRank[15]和MART[16]的结合。MART是一种迭代的决策树算法,该算法由多个决策树所组成,所有树的结论累加起来做最后的结果。LambdaRank中的Lambda是在MART算法中间计算的梯度,代表了下一次迭代排序优化的方向和强度。下面简单介绍一下LambdaMART的每一步工作。

① 遍历所有训练数据,计算相同查询下不同标签的文档对互换位置后ndcg变化δNDCG(i,j)和梯度λij,如式(1)、式(2)所示。

δNDCG(i,j)=|ndcg(orginal sequence)

-ndcg(swap(i,j)sequence)|

(1)

(2)

其中,ndcg(orginal sequence)表示初始状态下文档排序的ndcg值,ndcg(swap(i,j) sequence)表示将i和j位置的文档互换后新的排序的ndcg值。si,sj表示文档i和j的预测得分,初始值都为0。其中ndcg是一个常用的评价指标,代表一个排序结果的好坏。

(3)

其中,li代表每一篇文档的label值,dcg代表当前排序下的dcg值,maxdcg代表理想排序下的dcg值。然后计算每篇文档的λi值,如式(4)所示,再计算每个λi的对于预测得分si导数wi。

(4)

② 用最小均方误差划分树节点,生成叶子节点数为L的回归树,创建回归树拟合第一步生成的所有λi。

③ 用牛顿法计算第二步生成的决策树的每个叶子节点的预测值,如式(5)所示。

(5)

其中,γlm代表第m棵树的第l个叶子的值。

④ 将学习到的回归树加入模型中更新,并且用学习率更新原预测结果。

2.2 特征选取

特征是机器学习重要部分,特征即是打分的依据。特征的选取也关系着机器学习训练得到的模型的好坏。本文针对微信公众号特征分为两大类。第一类,基于外部统计数据。主要有阅读量、点赞量等数据,这些可以通过查看微信公众号文章获取;还有一些不可见数据,例如,粉丝量、用户活跃度等,这些只能是公众号拥有者在微信后台才能查询的指标体系,所以在这里不予考虑。第二类,基于内容分析。基于微信文章内容进行关键词抽取,考察单一公众号的主题覆盖率;根据BM25求得公众号内微信文章主题相关性指标,考察单一公众号关键词发散程度。

经过对微信公众号的综合分析,充分考虑各特征值的全面性、代表性,得到了17个特征。前13个特征能够直接由微信公众号数值数据计算得来,后4个特征通过对发文频率以及微信文章内容分析得到,如表1所示。

目前,对于微信公众号评价指标或者影响力的研究,以及当前互联网上针对微信公众号推出的排名大多选取的是总阅读数、总点赞数、头条总阅读数、最高阅读数、日均阅读数等指标来对微信公众号进行估算,本文针对微信公众号文章内容,提出了4个新的特征。

(1)主题垂直性一般来说,用户关注的公众号很多,但只会选择需要的公众号阅读。主题垂直性指某个公众号只聚焦某领域, 并且提供该领域深度的信息以及服务满足用户的需求。本文通过计算公众号某主题的月平均发布的文章数与公众号月发文数的比值衡量主题垂直性ver,如式(6)所示。

表1 特征值及其含义

(6)

例如,根据“云计算”、“人工智能”查询到相关公众号如表2所示。虽然A1月发文数比A2要多,但是与“云计算”相关的文章数A2要比A1多,所以A2垂直性要比A1好。同理,在“人工智能”相关公众号下,虽然B2主题相关发文数没有B1多,但是在月发文数的基础上,前者有一半以上与“人工智能”相关,所以B2垂直性要比B1好。

表2 垂直性样例

(2)发文稳定性一个优质的微信公众号体现在能够按时推送文章给用户。为了比较每个公众号的发文稳定性,统计公众号每个月内的发文数量pi,计算该微信公众号的变异系数cv。变异系数就是原始数据标准差与原始数据平均值的比。变异系数能够兼顾变量值离散程度的影响还有变量值平均水平的影响,如式(7)所示。

(7)

该特征能够体现出微信公众号发文频率以及发文量的好坏程度。本文对所有微信公众号的变异系数进行排序,选取了前15个与后15个公众号,根据每个公众号每个月发文数量的标准差和平均值绘制了散点图,如图2所示。变异系数可以看作是某一点的斜率,数据的标准差越小,平均值越大,说明变异系数越小,则证明文章的稳定性越好。从图2可以看出公众号a2比公众号a1稳定性要好。

图2 微信公众号散点图

(3)主题覆盖率基于关键词得到微信文章,我们可以认为该关键词是该文章的主题。对关键词进行相似度扩展,如果扩展后的关键词有一部分存在于微信文章中,那么就可以得到该微信公众号的主题覆盖率cov。通过该特征可以体现出该微信公众号对全局关键词的覆盖程度,如式(8)所示。

(8)

中文维基百科覆盖度广,并且具有很好的语义信息,因此本文基于中文维基百科语料作为外部语料训练Word2Vec词向量,然后通过词向量进行关键词扩展。

例如,“区块链”扩展关键词以及公众号涉及关键词,如表3所示,从表中可以看出公众号b涉及主题范围更广,说明该公众号能给用户提供更丰富的信息。

表3 主题覆盖率样例

(4)主题相关性计算关键词与微信文章之间的相关性也是筛选优质微信公众号的条件之一。BM25[17]是一种用来评价查询与文档之间的相关性的算法。本文通过计算关键词中每个关键词与微信公众号每篇文章的相关性分值,然后将每个关键词相对于微信文章的相关性分值进行加权求和从而得到关键词集合与文章的分值Score_article(Q,d),最后再将公众号中所有文章的得分取平均最终得到主题与微信公众号的相关性得分rel,如式(8)、式(9)所示。

式(8)中Wi代表关键词集合中每个关键词的权重,R(qi,d)表示每一个关键词与微信文章的相关性得分。

2.3 特征归一化处理

不同特征之间具有不同的量纲和量纲单位,这种情况会影响到数据分析的结果,如果特征不进行归一化,训练模型就会增加更多的时间来寻找最优值。对每个特征进行归一化处理后,可以加速训练,也使得最终权重控制在一定范围内。

本文将采用min-max标准化,对原始数据进行线性变换,将数据映射到[0,1]区间,如式(10)所示。

(10)

3 实验设计及结果分析

3.1 实验语料

实验中,本文采用开源工具包Ranklib[17]。Ranklib是一套排序学习领域的开源实现。

本文数据是根据清博大数据网站提供的微信文章采集工具收集而来,以云计算等8个关键词,采集自2018年3月1日至2018年5月31日共235 622篇文章,涉及53 768个微信公众号。通过对数据的观察,发现了一些噪声数据。对数据中内容为空的文章和只发过一次的公众号进行过滤。图3为实验数据分布图。

图3 微信公众号分布

对于一个查询,包含多个微信公众号,每个公众号都会对信息进行编辑加工,形成消息推送给用户。我们需要给每一个公众号标注一个label来反映查询与公众号相关性程度。本文采用人工标记法来对公众号进行标注。本文标注相关程度分为3档: label2、label1、label0。标注原则如下,热门性: 观察文章的阅读量、点赞量等数量;关键词匹配程度: 观察公众号发文与关键词相关性;发文频率: 观察公众号每月发文情况。对微信公众号进行标注,label2为相关、label1为一般相关、label0为不相关。根据标注原则对微信公众号进行人工标记,并根据2.2节的特征选取对语料进行处理,训练数据如表4所示。

表4 训练数据及label分布

3.2 主成分分析

由于特征之间存在相关性,例如,Rp(篇均阅读数)是R(总阅读数)/P(总发文量)得到的,这会导致信息重叠与低效,即所谓的特征冗余。主成分分析[19]是最常用的一种降维方法,旨在利用降维思想,把多个特征转化为少数几个综合特征,来消除特征之间的冗余性。它把一组相关特征向量通过线性变换转换为一组不相关向量,保持总体方差不变,新变量按照方差递减顺序排列,第一变量具有最大方差,成为第一主成分,依次类推。通过主成分分析,计算原始数据协方差矩阵的特征值,特征值越大,方差越大,对应的特征向量包含的信息量就越大,最后保留最重要的k个特征值,对应的特征向量与原数据特征矩阵相乘得到新的特征矩阵。

图4给出了变换后的17个主成分占总方差百分比。可以看出99%的方差都包含在前11个主成分中,舍弃后面的主成分并不会损失太多的信息。

图4 主成分占方差百分比

3.3 实验结果和分析

本文用NDCG评价指标对实验结果进行评估。

实验一通过对比pairwise方法RankSVM、RankNet和listwise方法ListNet、ListMLE方法,结果如图5所示。结果显示LambdaMART算法的表现优于其他4种算法。因为pairwise算法只考虑了两个文档之间的关系,忽略了每个文档对整体顺序影响。所以微信公众号排序更适用于listwise类的LambdaMART算法。

图5 LambdaMART与四种算法对比

实验二通过对8组训练数据的单一特征值对公众号进行排序、根据清博指数和新榜指数算法对公众号进行排序以及LambdaMART算法得到的公众号排序结果的平均NDCG值进行比较。清博指数以及新榜指数算法如表5、表6所示。实验结果如表7所示。

表5 清博指数算法

表6 新榜指数算法

表7 实验二 清博、新榜指数算法

通过对比单一特征对公众号进行排序的评价结果与基于LambdaMART算法的排序评价结果可知,单一特征排序的评价结果普遍较低,原因是只有一维特征不能够完全代表公众号特征,必须对多个因素进行综合考虑才能较为合理地度量公众号的优异程度。

与WCI和NRI算法对比可知,这两种算法只利用了当前可获取的量化数据如阅读数、点赞数等对公众号进行综合考虑,而没有通过微信文章内容对公众号进行分析,忽略了文章主题因素对公众号的影响。本文通过增加主题垂直性、发文稳定性、主题覆盖率、主题相关性等4个指标特征,考虑了主题的丰富度对微信公众号评价的影响,弥补了上述两种方法的缺陷,寻找出了更深层次的指标特征。

实验三根据LambdaMART算法分别针对17维特征,WCI算法涉及特征,NRI算法涉及特征以及经过主成分分析降维后特征进行实验。实验结果如图6所示。

图6 实验三 LambdaMART不同特征输入

从图6中可以发现,以WCI算法涉及的特征与NRI算法涉及特征作为LambdaMART算法的输入,评价结果比原WCI和NRI算法结果提高了很多,但是仍然比17维特征下的LambdaMART算法评价结果低,因为基于LambdaMART的排序算法不需要对特征值进行人工赋予权值,减少人的主观臆断。并且在通过主成分分析后,NDCG值也有所提升,在主成分分析之后消除了个别特征值之间的冗余性,使得每个主成分之间相关性最小。

图7 实验四 4个新特征指标对模型的影响

图7中,feature-1代表4个特征中有任意一个存在于训练数据中,feature-2代表4个特征中有任意两个存在于训练数据中,依次类推。在实验三中,当只有原始13维特征时的ndcg@10值为0.543 7,从图7中可以看出,当新提出的特征在选取不同个数的情况时的平均值都比只有原始13维特征的情况下高,并且当4个特征都存在的情况下ndcg@10值达到0.617 4。从图8中可以看出,随着新提出的特征个数不断增加,实验结果也有不同的提升。最终结果证明了本文提出的4个特征能够对公众号的最终排序结果都有明显的提升。

图8 实验四 特征选取对实验的影响

4 结语

本文针对微信文章及微信公众号的特点,选取了指定的特征,通过排序学习算法,自动学习得到合理的排序公式。

针对特定关键词相关公众号排序问题,本文方法同时考虑到基于微信公众号的外部因素(如阅读量、点赞量等)和关键词与微信公众号内文章的相关性因素(如主题覆盖率,主题相关性等),并与清博指数与新榜指数进行比较,实验结果表明,使用排序学习算法能够有效的解决这一问题。

采用主成分分析法,将17维特征降到11维,实验结果表明,由于主成分分析法可以消除特征之间的相关性,使得每个特征之间互不影响,进而消除特征之间的冗余影响,使实验结果有明显的提升。这也验证了本文提出的4个指标特征的正确性和有效性。

猜你喜欢

排序公众特征
根据方程特征选解法
离散型随机变量的分布列与数字特征
公众号3月热榜
作者简介
公众号9月热榜
公众号8月热榜
公众号5月热榜
恐怖排序
不忠诚的四个特征
节日排序