本文是自己在推荐系统研究中研读的论文翻译及解读,原文:Neural News Recommendation with Long- and Short-term User Representations
-
ACL2019会议论文,微软亚研团队出品
- 本篇笔记为本人原创,如需转载引用,请务必在文中附上原链接及相应说明,包括作者信息(阿瑟)
- 本篇笔记非标准译文,其中包含了笔者自己对问题的部分理解,仅供参考,欢迎学习交流
摘要
个性化新闻推荐对于帮助用户发现感兴趣的新闻,提高阅读体验具有重要意义。新闻推荐中的一个关键问题是学习准确的用户表征以获取他们的兴趣。用户通常有长期偏好和短期兴趣。然而,现有的新闻推荐方法通常只学习用户的单一表示,这可能是不够的。
本文提出了一种能同时学习长期和短期用户表示的神经新闻推荐方法。
方法的核心是新闻编码器和用户编码器。
- 在新闻编码器中,我们从新闻的标题和主题类别中学习新闻的表示,并使用注意力网络来选择重要的词。
- 在用户编码器中,从用户id的嵌入中学习长期的用户表示。
- 通过GRU网络从用户最近浏览的新闻中学习短期用户表示。
- 提出了两种方法来结合长期和短期的用户表示。第一种是在短期用户表示中,利用长期用户表示来初始化GRU网络的隐藏状态。第二种是将长期和短期用户表示连接起来作为统一的用户向量。
- 在实际数据集上的大量实验表明,该方法能够有效地提高神经新闻推荐的性能。
引言
在线新闻平台汇集各种来源的新闻并推荐给用户,用户群体庞大。然而,每天都会产生大量的新闻,使得用户无法阅读所有的新闻。因此,个性化的新闻推荐对于在线新闻平台帮助用户找到感兴趣的内容,缓解信息过载非常重要。
学习准确的用户表示对于新闻推荐至关重要。现有的新闻推荐方法通常为每个用户学习一个表示,如有工作提出使用去噪自动编码器学习新闻的表示,并使用GRU网络从用户浏览的新闻中学习用户的表示。然而,像GRU这样的RNN网络很难捕捉到非常长的新闻浏览历史的全部信息。有工作提出使用knowledge-aware的CNN学习新闻的表征,并基于候选新闻和浏览新闻的相似性从用户浏览的新闻中学习用户的表征。然而,这种方法需要在在线新闻推荐阶段存储每个用户的整个浏览历史,这可能会给存储带来巨大的挑战,并可能造成较大的延迟。
模型设计
News Encoder
主要结构包括:
- Embedding层,利用预训练的词向量模型获取新闻标题每个词汇对应的embedding
- CNN文本特征提取层, 对词embedding进行特征提取,类似于KimCNN的操作,卷积窗口为3,图中也做了相应的表示
- Attention层,对词汇特征做soft-attention得到新闻标题的文本特征
- 主题编码器 Topic encoder 从新闻主题和子主题学习新闻表示。在MSN news等许多在线新闻平台上,新闻文章通常标有主题类别(如“体育”)和副标题类别(如“足球NFL”),以帮助目标用户兴趣。
- 新闻的主题和副标题类别对于学习新闻和用户的表现形式也是有影响的。它们可以揭示新闻的一般和详细主题,并反映用户的偏好。例如,如果用户浏览了许多带有“体育”主题类别的新闻文章,那么我们可以推断出该用户可能对体育感兴趣,并且向该用户推荐“体育”主题类别中的候选新闻可能是有效的。
- 为了将主题和副标题信息合并到新闻表示中,本文提出从主题和副标题id的嵌入中学习主题和副标题的表示。
定义和作为主题和副标题的表示。新闻的最终表现是标题、主题和副标题的串联,即。
笔者注:新闻编码部分总体看来平平无奇,常规操作,包括主题副标题使用的部分,也很简单
User Encoder
- 用户短期表征 Short-Term User representation
在线用户在阅读新闻文章时可能会有动态的短期互动,这可能会受到特定语境或时态信息需求的影响。
例如,如果一个用户只是阅读了一篇关于“Mission: Impossible 6 – Fallout”的新闻文章,她可能想更多地了解这部电影中的演员“汤姆克鲁斯”,并点击与“汤姆克鲁斯”相关的新闻,尽管她不是他的粉丝,可能以前从未读过他的新闻。
本文提出从用户最近的浏览历史中学习用户的短期表示以捕捉他们的时间兴趣,并使用GRU来限定顺序新闻阅读模式。表示按时间戳按升序排序的用户的新闻浏览序列为,其中k是此序列的长度。我们应用新闻编码器来获得这些新闻的表示,表示形式为。
- 用户长期标准 Long-Term User representation
除了暂时的兴趣,网络用户也可能对阅读新闻有长期的兴趣。
例如,一个篮球迷可能倾向于在几年内浏览许多与NBA有关的体育新闻。因此,本文提出学习用户的长期特征,以获取他们一致的偏好。长期的用户描述是从用户ID的嵌入中学习的,这些用户ID在模型训练期间是随机初始化和微调的。表示为用户的ID,为用户长期表征的查找表look-up table,该用户的长期表示为。
这个长期表征很让人迷惑,直接用用户ID真的能让模型学到用户的长期特征么,因为模型并没有真正用到历史较远的新闻数据
文中提出了两种的具体表征结合方法:
- 将用户长期兴趣表示作为用户短期用户表示计算中GRU的初始状态(LSTUR-ini)
- 将用户长短期兴趣表示拼接作为最终用户表示(LSTUR-con)。
候选新闻的个性化分数通过用户表示向量和新闻表示向量的内积计算,作为众多候选新闻针对特定用户个性化排序的依据。
注: 第一种结合方法稍有创新,总体仍然平平无奇
由于并非所有的用户都能被纳入到新闻推荐模型的训练中(例如,新来的用户),因此在预测阶段假设所有用户在我们的模型中都有长期表征是不合适的。
无法学习新到来用户的长期兴趣的表示向量。在预测的过程中简单地将新用户的长期兴趣表示置为零向量可能无法取得最优的效果。为了解决这个问题,该论文提出在模型训练的过程中模拟新用户存在的情况,具体做法是随机掩盖(mask)部分用户的长期兴趣表示向量,即用户的长期兴趣表示向量会以概率p被置为全零向量。实验表明,无论是LSTUR-ini还是LSTUR-con,在训练过程中加入长期兴趣随机掩盖(random mask)的做法均能明显提升模型效果。
这种设计方法在实际模型训练中很有帮助
实验
由于没有现成的新闻记录数据集,论文在2018年12月23日至2019年1月19日的4周内,通过收集MSN News的日志,自行构建了一个。把前三周的日志用于模型训练,上一周的日志用于测试;还随机抽取了训练集中10%的日志作为验证数据。对于每个用户,收集了过去7天的浏览历史,以了解短期用户表示。
总结
该文总体而言相对比较流畅,但创新性一般,有一些小的track,总体平淡无奇。