• 视频教程
  • 秒刷功能
  • 编辑器快捷键
  • 关注按钮
  • 添加背景图
  • 弹幕文字修改增删
  • 时间轴增加节点
  • DIY收藏,一键套用
  • 图片快传
  • 二维码
  • 导入公众号
帮助中心首页 微信公众号早报 这篇文章会不会火,AI掐指一算就知道了

这篇文章会不会火,AI掐指一算就知道了

浏览量:2006 发布时间:2020-10-15 19:38:39


在微信AI背后,技术究竟如何让一切发生?关注微信AI公众号,我们将为你一一道来。今天我们将放送微信AI技术专题系列“微信看一看背后的技术架构详解”的第五篇——《微信看一看文章流行度预测算法》。


本文对微信看一看中爆款文章早期预测工作进行了简单介绍,目标是如何在文章发表的初期,识别出爆款文章。本文从问题定义,建模动机,模型设计,收集样本以及训练过程进行了详细的介绍。本项目的成果应用于看一看排序,新闻队列打分,文章离线打分等多个场景,核心算法以“Popularity Prediction on Online Articles with Deep Fusion of Temporal Process and Content Features”发表于AAAI2019会议上。



背景介绍



在线文章的流行度反映了它受到了多少人关注,尽早定位潜在的“热门”文章,过滤冷门的文章,对推荐,广告和信息检索等应用场景都具有重要意义。通过观察文章用户行为的增长趋势,推测出文章的流行度,难点在于文章内容发布之后,很难从一开始就了解流行度的整体趋势;另一方面,文章的文本特征是稳定的,爆款文章在写法/措辞上都具有一定的共性,当行为特征较少时对于整体模型更加可靠。

本方法融合了时序过程建模和内容特征建模的优势,既能捕捉在线文章的流行度随发布时间推移的变化趋势,又可以利用文章的内容质量解决行为冷启动的难题,并避免了受制于特定的外部因素假设或繁琐的特征工程,从而灵活地在文章发布的任何时期(早期,中期,后期)预测文章整体受欢迎程度。


模型架构



文章的用户行为会受外界因素影响而产生难以预测的短期性波动,文章的文本和元数据特征通常包含多种模态,也增加了建模的难度。我们将整体模型设计为用户行为时序过程建模和文本特征建模两部分。在时序过程建模中,我们采用LSTM和CNN分别建模流行度演变过程中的长期变化趋势和局部短期波动。在内容特征建模中,利用层次Attention网络和embedding多模态的元数据特征。最后,采用时序注意力融合单元来动态地整合以上子网络。

图1 主体模型结构


时序过程建模

在时序过程建模中,我们将每篇文章的每5分钟的“阅读”,“浏览”,“分享”,“收藏”,“喜欢”和“打赏”等行为的统计量作为时间序列特征,这里要求时间序列长度不小于12,即至少有1小时的观察时间,记为{v1,v2,...,vt},采用LSTM对长期增长趋势进行建模,同时采CNN捕获短期波动。

图2 时间过程模型结构

时间过程网络利用LSTM来捕捉总阅读量随时间演变的长期增长趋势,LSTM对时间建模的优越性在于记忆单元包含历史信息,擅于捕获长序列依赖关系,因此不需要对历史趋势的函数形式做出具体的假设。具体地,将每个时隙的反馈向量v馈送到LSTM中,并获得输出向量中的历史增长模式。

另一方面,由外部因素引起的波动使得单位时间阅读量曲线呈现出上升和下降阶段,看起来像“山脉”和“山谷”,如图2所示。这些“山脉”和“山谷”是平移不变的局部结构。因此,我们提出用CNN捕获这样的短期波动结构。此外,影响因素的随机性导致在不同的时间范围内持续,这意味着“山脉”具有不同的宽度,于是采用不同大小的多个卷积核来捕获不同的波动范围。由于CNN通常需要固定大小的输入,假设输入窗口宽度为k, 则每个卷积层的输入为t时刻前长度为k的剪切序列{vt-k + 1vt-k + 2...vt},应用相同的填充操作并获得长度为k的输出序列{ct-k + 1ct-k + 2...ct},捕获最近历史的波动模式。最后,我们采用注意力机制通过时间维度合并输出序列{ct-k + 1ct-k + 2... ct}到输出向量中。注意力机制为卷积层输出序列中不同时刻的向量c乘以不同的注意力权重αc,从而有助于输出更多地关注受到外部因素影响的时间点。权重αc和输出向量的计算方法如下:


内容特征建模

内容特征建模分别采用embedding网络和分层Attention网络接收文章的元数据特征和文本作为输入,对元数据和长文本进行建模。元数据特征包括类别,发布时间,文本长度,视频数量,和发布账号的粉丝数量数值/类别特征等。

图3 嵌入网络结构

在线文章的内容特征(文章是否写的用心,公众号受众是否大等)很大程度上决定了它们能否受到大众喜爱。元数据特征包括独热编码特征,如类别,也包括数值型特征,如发布账号的粉丝数量。因此我们利用embedding技术将这些特征嵌入到同源dense vector中,并将FC layer应用于特征组合,得到总体的元数据表示向量he

图4 分层注意力网络结构

对于文章正文文本,我们采用分层注意力网络(HAN)建模。考虑到文档的固有层次结构(即单词形成句子和句子形成文档),HAN采用两层encoder和注意力机制将文档依次编码为单词级和句子级的注意力向量,字级和句级编码器都是Bi-GRU。此外。另外标题作为文章的高级描述,显示文章的主体印象,HAN中同时学习了标题表示向量作为补充。由于标题通常是短语或句子,将标题编码为仅具有字级编码器和注意力的向量,然后将文档向量和标题向量连接在一起作为最终的文本特征hh


注意力融合模块

我们采用注意力机制来动态整合上述时序过程建模和内容特征建模2个网络模块。假设分别代表LSTM,CNN,HAN和元特征嵌入的输出。由于在网络文章发布后的最初阶段,时间过程模型很难学习流行度的整体增长趋势。因此,预测主要取决于内容特征建模。随着时间的推移,观察到的受欢迎程度越来越接近整体受欢迎程度,因此时间建模在预测中起主要作用。注意力融合机制正是将与灵活权重α相结合,α是和时间t的函数,因此它可以自动适应不同模块的输出,具有良好的处理时序过程动态演化的灵活性。注意力机制是逐元素组合,这里将馈入全连接层以进行特征组合,并获得各元素的对齐向量。然后使用一个两层的神经网络计算注意力权重αm,计算方式如下:

时间表示变量t由给定时隙t的周期性属性,时隙间隔和发布时间组成。这里,周期性属性是一个独热编码特征,时间间隔是数值型特征。应用与嵌入元数据特征相同的策略将时间表示变量t嵌入到向量中。通过注意力权重αm,动态地将所有子网络融合,并在全连接层和softmax输出层之后获得流行度预测的概率分布。然后将最大概率对应的流行度类别作为最终的预测结果。具体计算过程如下:


模型训练



我们将文章的流行度预测视为分类任务,把文章的整体受欢迎程度分为三类:“热门”(超过10,000次阅读),“冷门”(少于100次阅读)和“正常”(其余)。在这里,将文章发布后15天的总阅读量作为总体受欢迎程度的近似值,根据阅读量得到文章的流行度类别作为训练数据的标签。同时,我们限制了文本序列的最大和最小输入长度,过滤了历史反馈时间序列过短的不具有预测价值的序列。

在训练的过程中,我们选取预测得分最高的类别作为流行度水平(热门,冷门,正常)的预测结果,采用Adam优化算法以及我们提出的时间衰减损失函数作为优化目标在训练集上训练。由于在实际应用中,预测早期的整体流行度更有价值。此外,观察到的受欢迎程度与整体受欢迎程度之间的内在关系使得在后期更容易进行预测。为了帮助模型在早期阶段投入更多精力来优化预测性能,在训练过程中,我们将时间衰减因子D(Δt)乘以单步的交叉熵损失的加权和作为最终的损失函数。时间衰减因子D(Δt)是t与发布时间之间的时间间隔Δt的单调非增函数,D(Δt)与损失函数J的具体形式如下:


这里,[・]表示向上取整算子。Δt是发布时间到时刻t之间的时隙数,因此Δt和都是正整数。γ>1是用于控制衰减率的超参数,采用对数函数来确保的衰减率随着时间的推移而变得越来越小,向上取整算子用于限制对数函数的初始衰减率。


实  验



我们收集了 2018 年 5 月-7 月的 6 万篇微信公众号文章的热度数据,将文章热度分为 3 类,爆款(阅读量>10000),冷门(阅读量<100)和普通 (其它)。由于文章阅读量分布是一个极端幂律分布,我们采用分段降采样的方式,得到一个类别基本平衡的数据集作训练 (training set) 和测试 (balanced test set),此外还根据按照真实分布采样了 2 万篇文章作为另一个测试集 (random test set). 数据集统计情况如下:

表1 数据集统计情况

我们首先跟基于特征的分类方案(分类器分布是 LR 和 RF)以及 state-of-the-art 的时序预测方案(HIP,VoRNN,CACNN)进行了对比,对比指标是分类准确度和三类各自的 F1 性能,可以看出我们的方案取得了最优的效果。

此外,跟模型自身的简化版(DFTC-TS 只包含时序预测部分,DFTC-SF 只包含内容建模部分,DFTC-SM 包含时序和内容建模但不包含注意力融合机制)对比中,最终版模型 DFTC 同样取得了最佳效果。

表 2:整体预测表现

为了说明 Attention CNN 对短期波动建模的有效性以及 Attention Fusion 部分的效果,我们随机选取一篇爆款文章作为案例分析。图 3(a) 是平均注意力权重的热图和时间序列短期波动折线图的对应关系,可以看出 LSTM部分的权重随时间增长,内容特征权重随时间衰减,CNN权重变化对应于波动情况,与预期情况相符。

图 3:表现分析
(a)平均注意权重α^m 的热图和每 10% 的时间序列的短期波动情况折线图。LSTM的权重随时间增大,CNN 的权重对应于波动情况。(b)在文章发布后的前五个小时里的平均准确度。(c)当观察到的热度达到最终热度的 10%-50% 时的平均准确度。

最后,在文章热度预测问题上,我们更关注于在文章发布初期的预测性能。图 3(b) 和图 3(c) 分别是文章发布后前 5 个小时的平均准确度和观察到的热度达到最终热度 10%-50% 时的平均准确度,可以看出我们的方法在文章发布早期获得了显著提升。特别是加了时间衰减因子后的模型 (DFTC-DL)。


经验和思考



在流行度预测的时序过程建模中同时考虑了全局流行度的长期增长趋势和局部单位时间内流行度的突发性波动,可以更全面具体地建模历史时序数据中的变化。LSTM适合于处理时序上具有依赖关系的序列结构输入,可以捕获历史时刻之间的关系,学习到流行度的历史演变模式。

采用带有注意力机制的CNN建模单位时间内流行度的突发性波动,有两个优点:a)CNN擅长于捕捉具有平移不变性的局部结构,而流行度“上升”和“下降”的短期波动恰好具有这种特性。b) 注意力机制能够使模型更多地关注受到外部因素影响的时间点。

采用分层注意力网络建模在线文章的长文本内容,这出于对文档的固有层次结构(即单词形成句子和句子形成文档)的考虑,将文档依次编码为单词级和句子级的注意力向量,有益于得到更优的文本语义表示。

采用嵌入技术将不同类型的元数据特征嵌入到同源密集空间中,有利于元数据特征的充分融合。

采用时序注意力融合机制可以根据不同时刻自动决定不同模块的输出对最终预测结果的决定性程度,具有良好的处理时序过程动态演化的灵活性。

文章发布早期历史数据的不足使早期的预测更具挑战,然而在早期的预测更有价值。我们提出的时间衰减损失函数有益于帮助模型在早期阶段投入更多精力来优化预测性能。

通过以上几点的结合,模型在预测在线文章的流行度时对时序过程和内容特征进行了深度融合建模,两者优势互补,可以在在线文章发布后生命周期的早期较好预测其流行度。


微信AI

不描摹技术的酷炫,不依赖拟人的形态,微信AI是什么?是悄无声息却无处不在,是用技术创造更高效率,是更懂你。


微信AI关注语音识别与合成、自然语言处理、计算机视觉、工业级推荐系统等领域,成果对内应用于微信翻译、微信视频号、微信看一看等业务,对外服务王者荣耀、QQ音乐等产品。


注:此文章来源于微信AI

  • 微信在线客服

    请提供详细的截图大图+文字说明您的问题

    微信:xmyeditor2021

  • 微信扫码查看帮助

    扫码关注,获取各种排版小技巧,黑科技!

复制成功

扫码查看帮助