前言
- 发表在IJCAI2020上的一篇关于新闻推荐的论文
- 源码https://github.com/penghll/Hypernews
摘要
个性化的新闻推荐可以帮助用户了解时事,而不用担心被无休止的在线新闻洪流淹没。然而,当前的新闻推荐系统却忽视了新闻的新鲜性和及时性(freshness/timeliness)
本文提出了一种新的方法HyperNews,它明确地模拟了及时性对新闻推荐的影响。还引入了一个辅助任务,即预测用户在每篇新闻文章上花费的所谓“活跃时间”(active-time)。
将新闻推荐问题和相关的活动时间预测问题以多任务的形式结合起来是非常有益的。
具体来说,通过训练一个双任务(Double-Task)的深层神经网络(内置时间模块) ,进行新闻推荐和活跃时间预测。这种“一石二鸟”(kill-two-birds-with-one-stone)的解决方案新闻推荐领域很少使用。
个人觉得,也挺常见的呀;微软谢幸团队的Topic-Aware News Rec就是啊
引言
新闻推荐的核心问题是学习新闻和用户表示。
早期的静态模型
这一领域的早期研究通常使用静态特征(如每篇新闻文章的标题、内容和类别)对新闻数据进行编码。 例如,LibFM [ Rendle,2012]利用变量之间的因子分解交互来预测任务,因此它可以将用户特性和候选新闻特征连接起来作为输入,然后输出一个点击概率来决定是否推荐。
个人认为FM这个例子有些不太妥当,FM也不是针对新闻推荐,而是基本的CTR任务;同时FM也没有简单地将用户特征和新闻特征做连接
具体来说,用户特征可以是从浏览过的新闻标题和内容中提取的 TF-IDF 特征的拼接,以及从浏览过的新闻类别中提取的归一化特征; 而新闻特征可以是 TF-IDF 特征从其标题、内容和类别的一个独热编码拼接。
此外,DeepFM 和 Wide & Deep尝试进一步捕捉特征之间的线性和成对的高阶相互作用。因此,它们与 FM 共享相同的输入,并计算点击概率。类似地,DSSM 将查询和文档投射到一个通用的低维空间中,在这个空间中,文档与给定查询的相关性可以通过它们的余弦距离得分来计算。它还可以用于为新闻推荐生成新闻和用户表示,如 LibFM。
综上所述,这些方法都是通用的推荐系统,主要使用静态特性,可能不能很好地处理新闻和用户的动态性。
考虑动态的模型
为了处理用户兴趣可能存在的偏移,最新的个性化新闻推荐算法不仅利用了上述静态特征,而且还利用了从每个用户最近阅读的新闻文章中提取的特征来近似阅读兴趣。例如,DKN 提供了一个多通道和单词实体对齐的知识感知 CNN,它融合语义和知识级表示来构建新闻编码器,并设计了一个注意模块来动态聚合用户的历史和当前候选新闻。
NAML通过设计一种多视图注意机制,自适应地为新闻和用户选择更有用的信息。NPA提出了一种个性化注意网络,它利用用户 ID 的嵌入作为词和新闻级别注意网络的查询来实现差异化动态;LSTUR
从通过 GRU 网络从近期浏览的新闻学习短期用户表征,利用用户身份嵌入学习长期用户表征,以获得更好的个性化推荐的长期偏好和短期偏好。
总而言之,上述相对较新的新闻推荐方法试图通过用户最近阅读的新闻文章隐式地捕捉用户当前的兴趣。然而,正如将在后面展示的那样,利用新闻数据集中的时间属性并显式地建立新闻的时效性模型会更好。
此外,所谓的“活跃时间”(即从用户点击打开新闻文章页面到用户点击关闭页面的时间间隔)衡量了用户阅读特定新闻文章所花费的时间,可以部分反映用户的阅读兴趣: 在其他条件不变的情况下,“活跃时间”(阅读时间)越长,用户就越感兴趣。
活动时间预测问题本身对于显示广告和网络流量控制等实际应用具有重要意义。它还需要建立新闻文章和新闻读者之间互动的模型。由于活跃时间预测任务和新闻推荐任务之间存在明显的相关性,我们推测将它们放在一起建模是很有价值的。
问题定义
新闻推荐的任务不用赘述;用户在新闻文章上的活跃时间应该同时被预测。因此,我们建立了一个统一的模型来解决这两个任务。(unified Model). 活动时间的连续值被离散成时间间隔(例如,100-110秒) ,因此活动时间的预测可以被认为是一个时间间隔分类问题。事实证明,这种激进的简化方法在我们的实验中效果良好,表明粗略估计活动时间通常是足够好的。
模型:HyperNews
整体框架可以分为两部分:新闻编码和用户编码,以及额外的活跃时间分类预测模型
新闻编码
新闻编码从各种新闻属性中学习新闻嵌入,包括标题、类别、正文。文中进一步将这些属性分为两部分: 显性信息和隐性信息。
显式对应于新闻标题及其类别,用户可以在点击之前轻松获取,隐式对应于用户点击之后阅读的新闻内容。这种设定还是比较符合用户的新闻点击情况的,它们对点击概率和活跃时间有不同的影响。
直观地说,显式信息对点击概率有更大的影响,隐式信息对活跃时间即用户浏览时间由更大影响。一旦实现了这两个部分的嵌入,就可以进一步应用注意力来自适应地学习它们对不同任务的组合。
新闻显式编码的结构比较简单,即Conv1D+Maxpooling对新闻标题进行提取,MLP+Attn对类别向量做整合,将两类信息的嵌入再进行拼接通过FNN即全连接得到最终的嵌入.
隐式信息方面,利用传统的LDA和Doc2Vec来对正文内容进行提取,并将正文的长度也进行编码,将各嵌入进行拼接后通过FNN得到隐式嵌入。
最后通过简单的注意力机制,将隐式和显式嵌入进行整合。用户编码
典型的RNN+Attn框架
点击率预测
对于用户来说,新闻文章的新鲜度(定义为从“发布时间”到用户“点击时间”之间的时间)对于个性化新闻推荐非常重要,因此还设计了一个实时性模块来改进新闻编码器中的嵌入。即对候选新闻的时间间隔进行编码(在实际任务中,对应发布时间到当前时间)具体地说,我们根据一个可变长度区间[1h; 2h; ; 1d; 2d; ; 1m; 2m; ]来划分连续时间,以处理它的非齐次变化。例如,如果是30分钟,我们分配一个 id = 1; 如果是1:5小时(在1小时和2小时之间) ,我们分配一个 id = 2; 等等。
每个时间间隔id可以对应一个嵌入 将时间间隔嵌入与候选新闻嵌入做点乘结合即可,利用点乘+sigmoid函数预测点击概率活跃时间预测
将时间回归任务转化为时间间隔分类任务。整个 Adressa 数据集的“事件数量(# events) vs. active time” ,并发现它是一个长尾分布; 然后我们将时间范围[5; 205]平均划分为20个时间间隔。我们进行这种划分的原因有两个: (1)在[5; 205]中发生的事件约占90% ,涵盖了大多数情况;
(2)活动时间少于5秒通常表示异常事件。注意,20个时间间隔被编号为1; 2; ; ; 20作为类标签。
模型训练
Loss函数包含两个部分:点击概率和时间分类预测:
在训练过程中,我们对全连通层应用了两种正则化技术,dropout和批量归一化,以避免过拟合。实验设置
在Adressa两个版本中进行实验,4周数据集中取前三周训练,最后一周测试;一周数据集中取前6天训练,最后一周测试。
总结
本文主要引入了一个阅读时间预测任务,把推荐任务变成多任务,同时活跃时间与用户兴趣密切相关,直观上能够发挥作用,本质上是引入了新的数据/特征,至于模型结构本身而言与最近的新闻推荐模型相比差别不大。 论文写作方面也有值得借鉴的部分。
网友评论