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操作得到句子向量,如下图所示:
问题生成
文章旨在解决已知用户新闻标题点击历史,预测接下来要点击哪一个新闻
模型框架
可以看出KCNN将新闻标题转化为对应的表示向量,利用候选新闻与新闻序列计算,得到对应的用户embedding与candidate news embedding后利用DNN计算点击概率。
知识提取
实体embedding:
构建方法如下:
- 识别出标题中的实体并利用实体链接技术消除歧义
- 根据已有知识图谱,得到与标题中涉及的实体链接在一个step之内的所有实体所形成的子图。
- 构建好知识子图以后,利用基于距离的翻译模型得到子图中每个实体embedding。
- 得到标题中每个单词对应的实体embedding。
上下文embedding:
利用相邻的实体来共同表示对应实体:
直接求平均:
KCNN
利用矩阵将实体embedding和上下文转换到与语义embedding一样的空间,并通过将语义的embedding,实体embedding,上下文embedding组成三个信道,使用上述介绍过的KCNN提取句子表示向量。
Attention
attention方面与一般的做法没有什么区别