Deep Knowledge-Aware Network for News Recommendation

类别:依次学习

首先使用知识图谱特征学习得到实体向量和关系向量,然后将这些低维向量引入推荐系统,学习得到用户向量和物品向量。

[论文下载链接]https://arxiv.org/abs/1801.08284v1

1、背景

在线新闻推荐系统旨在解决新闻信息爆炸?(文章的数量对用户来说是压倒性的)和为用户制定个性化推荐。

新闻推荐领域的问题:

  1. 新闻文章是高度时间敏感的,它们的相关性在短时间内很快到期。过时的新闻经常被新的新闻取代,这使得传统的基于ID的方法(如协同过滤)效率降低。
  2. 人们在新闻阅读中对主题敏感,因为他们通常对多个特定新闻类别感兴趣。如何基于他对当前候选新闻的多样化阅读历史来动态地测量用户的兴趣是新闻推荐系统的关键。
  3. 新闻语言高度浓缩充满知识实体和常识。然而,传统的语义模型或主题模型只能根据单词的共现或聚类结构找到它们的相关性,但几乎无法发现它们潜在的知识层次的联系。结果,用户的阅读模式将缩小到有限的圆,并且不能基于现有的推荐方法合理地扩展

在本文中,提出了一种利用外部知识进行新闻推荐的新型框架,即深度知识感知网络(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
  1. 从标题中抽取KG中定义的entity,并使用Entity linking技术消除歧义
  2. 根据已有知识图谱,得到与标题中涉及的实体链接在一个step之内的所有实体所形成的子图
  3. 基于构建好的子图,使用KGE技术进行得到每个实体的embedding
  4. 得到标题中每个单词对应的实体embedding

三、上下文embedding

尽管最先进的知识图嵌入方法通常可以保留原始图中的结构信息,但在后续推荐中使用中,单个实体的学习嵌入的信息仍然是有限的。为了帮助识别知识图中实体的位置,为每个实体提取额外的上下文信息。

实体e的上下文是在KG中与e直接相连的entity,表示为:

上下文embedding用上下文实体的平均值来表示:

4.2 新闻特征提取(Knowledge-aware CNN)

一、简单拼接方式:

直接将单词向量和实体向量按顺序拼接在一起:

但这样做存在几方面的限制:

  1. 连接策略打破了单词和相关实体之间的联系,并且不知道它们的对齐方式。
  2. 单词的embedding和对应实体的embedding是通过不同的方法学习的,这意味着它们不适合在单个向量空间中将它们一起进行卷积操作。
  3. 连接策略需要单词的embedding和实体的embedding具有相同的维度,这在实际设置中可能不是最优的,因为词和实体embedding的最佳维度可能彼此不同。
二、多通道和单词-实体对其方式:
  1. 将知识提取中得到的 word embedding、entity embedding、context embedding 作为三个信道输入,分别表示为:

    其中函数g可以是线性变换也可以是非线性变换。
    则新闻的输入可以如下表示:

  2. 使用类似于RGB图片卷积的方式使用两个不同尺寸的filter进行卷积

  3. 最大池化

    将结果整合为输出新闻的特征表示向量:


4.3 基于注意力机制的用户兴趣预测

(预备知识:小白都能看懂的softmax详解)
(预备知识:深度学习中的注意力机制)

  1. 用户对于不同新闻话题的兴趣可能是不同的,为了模拟用户的历史点击新闻对候选新闻不同的影响程度,我们采用如下公式来计算:


Notation:候选新闻 tj ,用户 i 的历史点击新闻 tik
先将候选新闻与历史点击新闻进行连接,再使用DNN函数H 进行计算,最后用softmax函数输出正则化影响权重。

  1. 则user embedding 可如下计算得到:

  1. 最后,给定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-scoreAUC值

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

当知识图谱遇上推荐系统之DKN模型(论文笔记一)相关推荐

  1. 当知识图谱遇上推荐系统之PippleNet模型(论文笔记二)

    RippleNet | Propagating User Preferences on the Knowledge 类别:联合学习 将知识图谱特征学习和推荐算法的目标函数结合,使用端到端(end-to ...

  2. 当知识图谱遇上推荐系统之MKR模型(论文笔记三)

    Multi-Task Feature Learning for Knowledge Graph Enhanced Recommendation 类别:交替学习 将知识图谱特征学习和推荐算法视为两个分离 ...

  3. 当知识图谱遇上推荐系统(总述和推荐)

    背景 来学校学习了两个星期了,总结一下,也可供学习这个方向的新人参考. 当知识图谱遇上个性化推荐,这篇文章可以从宏观角度来解释下面四个概念: 1.推荐系统的任务和难点 2.什么是知识图谱 3.知识图谱 ...

  4. 当知识图谱遇上文本摘要:保留抽象式文本摘要的事实性知识

    论文标题: Boosting Factual Correctness of Abstractive Summarization with Knowledge Graph 论文作者: Chenguang ...

  5. 论文浅尝 - ISWC2021 | 当知识图谱遇上零样本视觉问答

    论文题目:Zero-shot Visual Question Answering using Knowledge Graph 本文作者:陈卓(浙江大学).陈矫彦(牛津大学).耿玉霞(浙江大学).Jef ...

  6. 论文浅尝 | 当知识图谱遇上零样本学习——零样本学习综述

    随着监督学习在机器学习领域取得的巨大发展,如何减少人工在样本方面的处理工作,以及如何使模型快速适应层出不穷的新样本,成为亟待解决的问题.零样本学习(Zero-Shot Learning, ZSL)的提 ...

  7. 知识图谱运用于推荐系统

    推荐系统我认为可以用两个字来概括:揣摩. 就像男生追求心仪的女生一样,她的一举一动都牵动着男孩的心,从中了解女生的所思所想,让女生觉得你是如此懂我.要细致入微地观察,搜集关于女生的所有信息,不光要知道 ...

  8. 【知识图谱】 | 《知识图谱——方法、实践与应用》阅读笔记

    <知识图谱--方法.实践与应用>的阅读笔记 知识图谱--方法.实践与应用 第1章 知识图谱概述 1.1 什么是知识图谱 1.2 知识图谱的发展历史 1.3 知识图谱的价值 1.4 国内外典 ...

  9. 知识图谱·概念与技术--第1章学习笔记--知识图谱概述--知识图谱的概念,与传统语义网络的区别

    知识图谱·概念与技术--第1章学习笔记--知识图谱概述--知识图谱的概念,与传统语义网络的区别 知识图谱的概念,与传统语义网络的区别 狭义概念 作为语义网络的内涵 与传统语义网络的区别 优点 缺点 与 ...

最新文章

  1. 回顾2009,展望2010。
  2. Verilog 中的 ^ 的用法
  3. python cv release_Python cv.GetSize方法代码示例
  4. 讲义not have data_“熟记英语300句 中考英语无忧虑”讲练(089)讲义文本
  5. Android 的 init.rc 文件简介【转】
  6. 3目标检测的准确率_吊打YOLOv3!普林斯顿大学提出:CornerNetLite,基于关键点的实时且精度高的目标检测算法,已开源!...
  7. python加载dll函数失败_Python:使用ctypes访问DLL函数 – 按函数* name *访问失败
  8. 基于ARQ反馈的无人机通信中继自主选择研究
  9. python代码自动生成器下载_Python代码生成器
  10. 访问修饰符,封装,继承
  11. 【笔记】具有O-DU和O-RU的eNB / gNB架构
  12. code css怎么拿不到div_哈登和威少再怎么努力,也追不上杜兰特,因为刷子是拿不到冠军的...
  13. phalcon执行原始SQL查询语句
  14. blender 上一步 下一步_下一步是模拟宇宙
  15. 康华光《电子技术基础-模拟部分》第5版笔记和课后习题答案
  16. 栈:后进先出的线性表
  17. Java-----关于IO流的总结
  18. PLC通过DDE通讯——基于Codesys和组态王7.5进行数据采集
  19. 外显子名词解释_转录调控相关名词解释(一)——转录组
  20. 项目初始化及文件配置-黑马头条PC

热门文章

  1. 客户体验改善计划的用户注销通知导致服务器自动重启
  2. OSG 添加文字(显示中英文)
  3. 浪潮集团执行总裁王洪添一行莅临柏睿数据公司商讨战略合作
  4. 微信小程序第五篇:页面弹出效果及共享元素动画
  5. java word 分页显示_jsp转word + 分页
  6. UR机器人通信接口总结
  7. UR机器人(14)-解决故障
  8. 基于Oracle的SQL优化--学习(九)
  9. 【阅读笔记】低照度图像增强-《Fast efficient algorithm for enhancement of low lighting video》
  10. 如何在webots中绘制运动轨迹