Deep Knowledge-Aware Network for News Recommendation
类别:依次学习
首先使用知识图谱特征学习得到实体向量和关系向量,然后将这些低维向量引入推荐系统,学习得到用户向量和物品向量。
[论文下载链接]https://arxiv.org/abs/1801.08284v1
1、背景
在线新闻推荐系统旨在解决新闻信息爆炸?(文章的数量对用户来说是压倒性的)和为用户制定个性化推荐。
新闻推荐领域的问题:
- 新闻文章是高度
时间敏感
的,它们的相关性在短时间内很快到期。过时的新闻经常被新的新闻取代,这使得传统的基于ID的方法(如协同过滤)效率降低。 - 人们在新闻阅读中对
主题敏感
,因为他们通常对多个特定新闻类别感兴趣。如何基于他对当前候选新闻的多样化阅读历史来动态地测量用户的兴趣是新闻推荐系统的关键。 - 新闻
语言高度浓缩
,充满知识实体和常识
。然而,传统的语义模型或主题模型只能根据单词的共现或聚类结构找到它们的相关性,但几乎无法发现它们潜在的知识层次的联系。结果,用户的阅读模式将缩小到有限的圆,并且不能基于现有的推荐方法合理地扩展。
在本文中,提出了一种利用外部知识进行新闻推荐的新型框架,即深度知识感知网络(DKN)。
2、基础概念
知识图谱特征学习 KGE (预备知识:KGE方法)
基于CNN的句子特征提取(预备知识:CNN模型)
3、问题制定
给定用户 i
用户 i 的点击历史 {ti1,ti2,ti3,…,tiNi} ,其中 tij 是用户 i 点击过的第 j 个新闻标题,Ni 是用户点击过的新闻总数。
新闻标题词序列 t = [w1,w2,…], 其中每个单词 w 可能与知识图谱中的一个实体相关联。
问题描述:给定用户的点击历史,标题单词和知识图谱中实体的关联。我们要预测的是,用户 i 是否会点击一个之前没看过的候选新闻 tj
4、模型框架
从下往上看:
1、用户候选新闻集和用户历史点击新闻集作为输入
2、对于每一条新闻标题,用KCNN
提取特征,生成其向量表示
3、使用基于注意力机制
的方法匹配候选新闻和历史点击新闻,用不同的权重整合用户历史兴趣作为User embedding
4、将candidate news embedding 和 user embedding 整合放入DNN
去计算用户点击候选新闻的可能性
4.1 知识提取(Knowledge Distillation)
知识提取的过程中将得到三方面的内容:标题中每个单词的embedding、标题中每个单词对应的实体的embedding、每个单词的上下文embedding
一、标题单词embedding
每个单词对应的embedding可以通过word2vec预训练的模型得到。
二、实体embedding
- 从标题中抽取KG中定义的entity,并使用Entity linking技术消除歧义
- 根据已有知识图谱,得到与标题中涉及的实体链接在一个step之内的所有实体所形成的子图。
- 基于构建好的子图,使用KGE技术进行得到每个实体的embedding
- 得到标题中每个单词对应的实体embedding。
三、上下文embedding
尽管最先进的知识图嵌入方法通常可以保留原始图中的结构信息,但在后续推荐中使用中,单个实体的学习嵌入的信息仍然是有限的。为了帮助识别知识图中实体的位置,为每个实体提取额外的上下文信息。
实体e的上下文
是在KG中与e直接相连的entity,表示为:
上下文embedding
用上下文实体的平均值来表示:
4.2 新闻特征提取(Knowledge-aware CNN)
一、简单拼接方式:
直接将单词向量和实体向量按顺序拼接在一起:
但这样做存在几方面的限制:
- 连接策略打破了单词和相关实体之间的联系,并且不知道它们的对齐方式。
- 单词的embedding和对应实体的embedding是通过不同的方法学习的,这意味着它们不适合在单个向量空间中将它们一起进行卷积操作。
- 连接策略需要单词的embedding和实体的embedding具有相同的维度,这在实际设置中可能不是最优的,因为词和实体embedding的最佳维度可能彼此不同。
二、多通道和单词-实体对其方式:
-
将知识提取中得到的 word embedding、entity embedding、context embedding 作为三个信道输入,分别表示为:
其中函数g可以是线性变换也可以是非线性变换。
则新闻的输入
可以如下表示:
-
使用类似于RGB图片卷积的方式使用两个不同尺寸的filter进行卷积
-
最大池化
将结果整合为输出
新闻的特征表示向量:
4.3 基于注意力机制的用户兴趣预测
(预备知识:小白都能看懂的softmax详解)
(预备知识:深度学习中的注意力机制)
- 用户对于不同新闻话题的兴趣可能是不同的,为了模拟用户的历史点击新闻对候选新闻不同的影响程度,我们采用如下公式来计算:
Notation:候选新闻 tj ,用户 i 的历史点击新闻 tik
先将候选新闻与历史点击新闻进行连接,再使用DNN函数H 进行计算,最后用softmax函数输出正则化影响权重。
- 则user embedding 可如下计算得到:
- 最后,给定user embedding:e(i) 和 candidate news tj’s embedding:e(tj),
用户 i 点击候选新闻 tj 的可能性由另一个DNN函数g计算得到。
5、实验
5.1 数据集
本文的数据来自bing新闻的用户点击日志,包含用户id,新闻url,新闻标题,点击与否(0未点击,1点击)。搜集了2016年10月16日到2017年7月11号的数据作为训练集。2017年7月12号到8月11日的数据作为测试集合。使用的知识图谱数据是Microsoft Satori。以下是一些基本的统计数据以及分布。
新闻数据集和提取的知识图的基本统计和分布如下所示:
- 从 a 中可以看出新闻具有
时效性
,大部分新闻在三天之后几乎没有了阅读量; - 从 b 中可以看出新闻数据的
稀疏性
,用户点击新闻的数量大约在5条以内,使得可供训练的数据较少; - c 和 d 表示新闻标题的单词数平均在7.9,新闻标题中涉及的实体数平均在3.7,表明新闻标题中平均每两个单词中就有一个实体,
实体出现的高密度证明了KCNN的设计的合理性
; - e 和 f 表示新闻数据集中实体的出现时间的分布以及提取的知识图中的实体的上下文实体的数量的分布。我们可以从这两个数字中得出结论:在线新闻中实体的发生模式是稀疏的并且具有长尾(80.4%的实体发生不超过十次),但实体在知识图中通常具有丰富的上下文:平均数每个实体的上下文实体的数量是42.5,最大值是140,737。因此,
上下文实体可以极大地丰富新闻推荐中单个实体的表示
。
5.2 评价指标
作者使用的评价指标为 F1-score 和 AUC值
5.3 实验对比
5.4 讨论
- 使用实体嵌入向量可以提高几乎所有baseline的效果,KPCNN,DeepWide,YouTubeNet
使用了实体嵌入表示以后分别有1.1%,1.8%,1.1%的提升。但是在DeepFM上提升效果很小,所以实验说明FM类的方法不能很好地利用知识实体。 - DMF是所有模型中效果最差的一个,可能原因是新闻对时效性要求比较高,生存周期短,基于协同过滤的算法在新闻推荐中效果不佳。
- 除DMF之外的所有神经网络推荐模型在AUC上都超过了LibFM的baseline模型,说明深度学习模型确实适合建模新闻数据中的一些非线性的关系
- 本文提出的DKN模型在AUC指标上超过了次好的模型KPCNN,原因主要是(1)DKN使用多通道的词表示与实体表示来建模标题序列,能更好的建模词和实体之间的关系。(2)DKN使用attention机制,针对不同的候选新闻赋予user历史点击不同的权重,能更好地刻画用户的兴趣
- 在对DKN的变体所做的对比试验中,发现TranseD效果最好。
6、总结
本文针对新闻文本时效性强,包含很多单词实体的特点,提出了DKN模型。
DKN是一种content-based的模型,非常适合用来做新闻点击率预测。其特点是融合了知识图谱与深度学习,从语义层面和知识两个层面对新闻进行表示,实体和单词的对齐机制更是融合了异构的信息源,能更好地捕捉新闻之间的隐含关系。对于不同的候选新闻,DKN使用attention机制来动态地学习用户历史点击的表示。
实验结果表示,加入的实体表示的DKN模型对baseline模型体现了显著的优越性,怎样更充分地利用知识提升深度神经网络的效果是一个重要的研究方向,值得人们探究。
7、DKN模型tensorflow实现
代码地址:https://github.com/hwwang55/DKN