DKN: Deep Knowledge-Aware Network for News Recommendation简析

DKN: Deep Knowledge-Aware Network for News Recommendation

介绍

现存的关于新闻的推荐都没有完全利用知识层面的联系,因此作者提出DKN,利用KCNN融合语义与知识层面的新闻表示向量,同时利用attention将用户点击历史与候选新闻计算。

知识储备

知识图嵌入

文章首先介绍了TransE,TransH,TransR,TransD等表示学习方法。具体可以参考这篇文章

基于CNN的句子表示学习

DKN中提取句子特征的CNN源自于Kim CNN,用句子所包含词的词向量组成的二维矩阵,经过一层卷积操作之后再做一次max-over-time的pooling操作得到句子向量,如下图所示:

DKN: Deep Knowledge-Aware Network for News Recommendation简析

问题生成

文章旨在解决已知用户新闻标题点击历史,预测接下来要点击哪一个新闻

模型框架

DKN: Deep Knowledge-Aware Network for News Recommendation简析

可以看出KCNN将新闻标题转化为对应的表示向量,利用候选新闻与新闻序列计算,得到对应的用户embedding与candidate news embedding后利用DNN计算点击概率。

知识提取

实体embedding:

DKN: Deep Knowledge-Aware Network for News Recommendation简析

构建方法如下:

  1. 识别出标题中的实体并利用实体链接技术消除歧义
  2. 根据已有知识图谱,得到与标题中涉及的实体链接在一个step之内的所有实体所形成的子图。
  3. 构建好知识子图以后,利用基于距离的翻译模型得到子图中每个实体embedding。
  4. 得到标题中每个单词对应的实体embedding。

上下文embedding:

利用相邻的实体来共同表示对应实体:

直接求平均:
DKN: Deep Knowledge-Aware Network for News Recommendation简析

KCNN

利用矩阵将实体embedding和上下文转换到与语义embedding一样的空间,并通过将语义的embedding,实体embedding,上下文embedding组成三个信道,使用上述介绍过的KCNN提取句子表示向量。

Attention

attention方面与一般的做法没有什么区别