主要参考:《DKN: Deep Knowledge-Aware Network for News Recommendation》

新闻推荐的特点

与传统电影推荐、商品推荐不同,新闻推荐面临独特的挑战。

1.新闻时效性和用户冷启动问题

先看下面这两张图,第一张图展示了新闻的生命周期分布情况,可以看出大多数新闻的生命周期只有一条,可能只有极少的爆炸性新闻能拥有好几天的生命周期;第二张展示了一个用户点击新闻的数量分布情况,可以看出大多数用户都只会点击1~6条新闻,产生的原因可能是浏览新闻大多是不需要登录的,用户每次都被当成一个新的用户,所以新闻推荐常常处理为会话(session-based)推荐。

因此,传统的基于用户ID(即基于用户的历史记录)的方法,如协同过滤,就不再适用。
新闻推荐--从DKN出发
新闻推荐--从DKN出发

2. 用户兴趣的话题敏感性(topic-sensitive)

用户往往只对某些特定领域的新闻感兴趣,这点与电影推荐类似。而且用户的兴趣还可能是会发生变化的,所以如何动态地获取用户的兴趣是一大挑战。

3.新闻语言的复杂性

新闻的语言往往是高度浓缩的,而且包含大量的常识。即新闻的语义特征隐含在不同粒度的字里行间。用论文中的例子来说明:
新闻推荐--从DKN出发
假设用户阅读了新闻:“Boris Johnson Has Warned Donald Trump To Stick To The Iran Nuclear Deal”,按照实体间的联系(或者人大脑的联想),比如Boris Johnson和Donald Trump都是Politician(政客),可以联想到Congress(议会),同时Nuclear(核武器)属于武器(Weapon),可以联想到另一种武器EMP(电磁脉冲)…

通过这些联想,我们可以猜想该用户也可能喜欢“North Korean EMP Attack Would Cause Mass U.S. Starvation, Says Congressional Report”这条新闻。

但是传统的基于词表面意思,根据字符级别的相似度等来做推荐的方法,显然是无法达到这种联想效果的。

DKN

1. DKN的整体框架

DKN,全称Deep Knowledge-Aware Network,是一个基于内容的深度推荐框架。因为是基于内容的,所以可以解决挑战1;而且采用了知识图谱,可以捕获更细粒度的隐藏信息,所以可以解决挑战3;至于挑战2,作者采用了Attention机制,聚合了点击历史新闻信息,从中捕获用户兴趣,解决了挑战2。整体框架如下图所示:
新闻推荐--从DKN出发
输入为一条候选新闻和用户的点击历史,输出是用户对候选新闻的点击率,最后对所有候选新闻进行降序排序,推荐topK条给用户。

2. DKN的流程

1)将每条新闻的题目(也可以是摘要)中的每个词分别表示为一个嵌入(word embedding);

2)同时在知识图谱中找到这些词对应的实体,以及这些实体的一阶邻居实体(成为context,用于获取更丰富的信息,不然实体数量太少了),通过transD学习这些实体的嵌入(entity embedding和context embedding);

3)将这些嵌入对齐,词嵌入跟相应的实体嵌入对齐,同时也跟上下文嵌入(有多个上下文嵌入时,作平均,化为一个嵌入);

4)将三种嵌入经过一个变换,映射到同一个空间,然后堆叠起来,做CNN,得到一个向量作为新闻的最终嵌入;
新闻推荐--从DKN出发
5)将每个用户点击历史的每条新闻和候选新闻的最终嵌入拼接起来,通过Attention网络计算历史新闻的权重;
新闻推荐--从DKN出发
6)根据点击历史的每条新闻最终嵌入的加权求和得到用户嵌入(user embedding);

7)最后将用户嵌入和候选新闻的最终嵌入拼接起来输入DNN得到点击概率。

3. DKN的核心

DKN最核心的部分是KCNN(即流程中的第4歩),其是有Kim CNN扩展而来,具有两个特点:1)多通道。将词嵌入、实体嵌入和上下文嵌入堆叠起来,类比于彩色图像上的多通道卷积;2)词和实体是对齐的。同时为了二者嵌入空间的差异,应用了一个变化,将它们映射到同一空间。
新闻推荐--从DKN出发

文献链接

1.《DKN: Deep Knowledge-Aware Network for News Recommendation》

希望我的文章可以给你们的工作或者学习带来一丝灵感,共勉~

相关文章:

  • 2021-10-04
  • 2021-08-18
  • 2021-11-04
  • 2022-12-23
  • 2021-12-09
  • 2022-01-14
  • 2021-12-12
  • 2022-01-16
猜你喜欢
  • 2021-07-09
  • 2021-06-13
  • 2021-07-04
  • 2021-10-25
  • 2021-12-14
  • 2021-07-22
  • 2021-08-10
相关资源
相似解决方案