摘自:https://blog.csdn.net/qq_40006058/article/details/89678866

DKN:Deep Knowledge-Aware Network for News Recommendation

1、     论文出处:www2018

2、     摘要:(背景)在线新闻推荐系统致力于在庞大的新闻数据中为用户提供个性化的新闻推荐。

(存在问题)一般情况下,新闻语言高度浓缩且主要由知识实体构成。已有的推荐方没有进行外部知识的抽象与学习,不能够充分地发掘新闻在知识层面的联系。

(自身工作)本文提出了一种将知识图谱实体嵌入表示与神经网络融合起来,进行新闻推荐的模型DKN。将新闻的语义表示与知识表示融合起来形成新的embedding表示,再建立从用户的新闻点击历史到候选新闻的attention机制,选出得分较高的新闻推荐给用户。

(实验结果表示)DKN模型在F1-score,AUC等指标上超过了现有的start-of-art模型。

3、     写作动机:

推荐系统最初是为了解决互联网信息过载的问题,帮助用户针推荐其感兴趣的内容并给出个性化的建议。新闻的推荐有三个要解决的突出问题:

1)   不同于电影,餐馆等产品的推荐,新闻文章具有高度的时间敏感性,它们的相关性很快就会在短时间内失效。 过时的新闻经常被较新的新闻所取代。 导致传统的基于ID的协同过滤算法失效。

2)   用户在阅读新闻的时候是带有明显的倾向性的,一般一个用户阅读过的文章会属于某些特定的主题,如何利用用户的阅读历史记录去预测其对于候选文章的兴趣是新闻推荐系统的关键 。

3)   新闻类文章的语言都是高度浓缩的,包含了大量的知识实体与常识。用户极有可能选择阅读与曾经看过的文章具有紧密的知识层面的关联的文章。

创新点:以往的模型只停留在衡量新闻的语义和词共现层面的关联上,本文在考虑语义的基础上,创造性地提出加入新闻之间知识层面的相似度量,来给用户更精确地推荐可能感兴趣的新闻。

4、     相关概念:

知识图谱网络嵌入(Knowledge Graph Embedding)

一个知识图谱由大量的结点以及节点之间的边组成,其中节点代表实体,边代表节点之间的关系,可以看作是许多三元组(head,relation,tail)构成的一个集合。针对知识图谱的网络嵌入目的是用一个低维稠密的向量来表示节点,保证该向量包含了节点间的相似性关系以及网络的结构信息。

CNN句子特征提取

本文所用于提取句子特征的CNN源自于Kim CNN,用句子所包含词的词向量组成的二维矩阵,经过一层卷积操作之后再做一次max-over-time的pooling操作得到句子向量,另外在本文中还使用了不同大小的卷积核得到多组不同的向量。

5、     问题定义:

给定义一个用户他的点击历史记为是该用户过去一段时间内层点击过的新闻的标题,代表用户点击过新闻的总数。每个标题都是一个词序列,标题中的每个单词都对应知识图谱中的一个实体 。举例来说,标题《Trump praises Las Vegas medical team》其中"Trump"与知识图谱中的实体“Donald Trump”即现任美国总统相对应,"Las"和"Vegas"与实体"Las Vegas"。本文要解决的问题就是给定用户的点击历史,以及标题单词知识图谱中实体的关联,我们要预测的是:一个用户,是否会点击一个特定的新闻

6、     DKN模型:

整体的网络架构如下:

DKN的网络输入有两个:候选新闻集合,用户点击过的新闻标题序列。

embedding层,都是用KCNN来提取特征,

之上是一个attention层,计算候选新闻向量与用户点击历史向量之间的attentention权重,在顶层拼接两部分向量之后,

用DNN计算用户点击此新闻的概率。

框架整体包括三部分:

6.1 知识提取(Knowledge Distillation)

过程分四步:

1.实体链接:识别出文本中的知识实体并利用实体链接技术消除歧义

2.利用识别出来的实体和关系,从原本知识图谱中得到一个子图。利用新闻文本中的实体与关系就构成了一个原来知识图谱的一个子图,本文把所有与文中的实体的链接在一个step之内的所有实体都扩展到该子图中来。

3 .在构建的子知识图谱上利用一些学习方法得到实体的表示。构建好知识子图以后,利用知识图谱嵌入技术得到每个实体的向量

4.根据实体向量得到对应单词的词向量

尽管目前现有的网络嵌入方法得到的向量保存了绝大多数的结构信息,但还有一定的信息损失,为了更好地利用一个实体在原知识图谱的位置信息,文中还提到了利用一个实体的上下文实体来表示该单词。一个实体 的上下文是指该实体在知识图谱网络中的邻居。,G是构建的知识图谱子图。上下文表示是上下文实体的embedding的平均值:

6.2 新闻特征提取KCNN

获得了标题中单词和对应实体的向量之后,相比于简单地把所有的向量拼接起来以后输入给CNN,本文使用的是multi-channel和word-entity-aligned KCNN。具体做法是先把实体的向量,和实体上下文向量映射到一个空间里:

 ,  映射的方式可以是线性变换或者非线性的变换如tanh。

得到映射之后的向量之后,将两种向量作为标题单词向量额外的通道,类似图像的RGB三个通道:

获得了多通道的词表示之后,再用CNN进行处理获取新闻标题的表示:

 ,其中m是卷积核的个数。

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

获取到用户点击过的每篇新闻的向量表示以后,作者并没有简单地作加和来代表该用户,而是计算候选文档对于用户每篇点击文档的attention,再做加权求和,计算attention:

用户i对候选新闻k的表示: 

得到用户表示和新闻表示以后用另外一个DNN来计算用户点击的概率: 

七、实验

7.1 数据集
本文的数据来自bing新闻的用户点击日志,包含用户id,新闻url,新闻标题,点击与否(0未点击,1点击)。搜集了2016年10月16日到2017年7月11号的数据作为训练集。2017年7月12号到8月11日的数据作为测试集合。使用的知识图谱数据是Microsoft Satori。

7.2
评价指标

作者使用的评价指标为F1-score和AUC值

Baseline方法

1. LibFM
 2. KPCNN  3. DSSM  4. DeepWide  5. DeepFM  6. YouTubeNet  7. DMF

八、结论:

本文是深度学习技术,在推荐系统领域的一个发展,重点放在了新闻推荐上,还融合了知识图谱表示的方法。对于新闻推荐中存在的问题和特点:新闻具有时效性和较多的实体,有针对性地提出了 DKN 模型,解决了三个挑战:

l  DKN 是一个基于内容过滤的深度推荐系统模型;

l  为了利用知识图谱中的信息,通过 KCNN 来融合文本的语义层面、实体层面上的异构表示;

l  使用了注意力机制对用户的兴趣进行动态提取。

既然如此,能不能在一些 Baseline 实验上进行一些改进,也融合知识图谱、用户社交网络的信息呢?新闻的时效性是不是也可以通过 RNN 来处理,尤其是用户兴趣提取这块,用 RNN + 注意力机制可行吗?

18、DKN(Deep Knowledge-Aware Network for News Recommendation)---新闻推荐的更多相关文章

  1. 1 - ImageNet Classification with Deep Convolutional Neural Network (阅读翻译)

    ImageNet Classification with Deep Convolutional Neural Network 利用深度卷积神经网络进行ImageNet分类 Abstract We tr ...

  2. 【论文阅读】DSDNet Deep Structured self-Driving Network

    前言引用 [2] DSDNet Deep Structured self-Driving Network Wenyuan Zeng, Shenlong Wang, Renjie Liao, Yun C ...

  3. DKT模型及其TensorFlow实现(Deep knowledge tracing with Tensorflow)

    今年2月15日,谷歌举办了首届TensorFlow Dev Summit,并且发布了TensorFlow 1.0 正式版. 3月18号,上海的谷歌开发者社区(GDG)组织了针对峰会的专场回顾活动.本文 ...

  4. [notes] ImageNet Classification with Deep Convolutional Neual Network

    Paper: ImageNet Classification with Deep Convolutional Neual Network Achievements: The model address ...

  5. 论文速读(Jiaming Liu——【2019】Detecting Text in the Wild with Deep Character Embedding Network )

    Jiaming Liu--[2019]Detecting Text in the Wild with Deep Character Embedding Network 论文 Jiaming Liu-- ...

  6. Deep Knowledge Tracing (深度知识追踪)

    论文:Deep Knowledge Tracing    Addressing Two Problems in Deep Knowledge Tracing via Prediction-Consis ...

  7. HYPERSPECTRAL IMAGE CLASSIFICATION USING TWOCHANNEL DEEP CONVOLUTIONAL NEURAL NETWORK阅读笔记

    HYPERSPECTRAL IMAGE CLASSIFICATION USING TWOCHANNEL  DEEP  CONVOLUTIONAL NEURAL NETWORK 论文地址:https:/ ...

  8. ASPLOS'17论文导读——SC-DCNN: Highly-Scalable Deep Convolutional Neural Network using Stochastic Computing

    今年去参加了ASPLOS 2017大会,这个会议总体来说我感觉偏系统和偏软一点,涉及硬件的相对少一些,对我这个喜欢算法以及硬件架构的菜鸟来说并不算非常契合.中间记录了几篇相对比较有趣的paper,今天 ...

  9. ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network

    最近ISSCC2017大会刚刚举行,看了关于Deep Learning处理器的Session 14,有一些不错的东西,在这里记录一下. A 2.9TOPS/W Deep Convolutional N ...

随机推荐

  1. django 未成功初始化自定义表单

    用以下两句 python3 manage.py makemigrations python3 manage.py migrate 成功初始化了数据库,但是只初始化了django自带的表,未初始化我自定 ...

  2. perl oneline

    可参考博客:http://blog.csdn.net/carzyer/article/details/5117429 Perl常用命令行参数概览 -e 指定字符串以作为脚本(多个字符串迭加)执行 -M ...

  3. Navicat 创建oracle表空间、新建用户、授权

    1.利用数据库管理员账号:SYSTEM,再配合数据库管理口令,连接Oracle数据库. 登录界面: 2.创建表空间文件 进入如下界面 进入如下界面 弹出如下界面,输入表空间名称 最终结果:  2 .新 ...

  4. IUrlHelper ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

    ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of ...

  5. excel数据分析流程

    1.获取数据 2.去掉空值.空行.重复行 3.去掉无用行,筛选出需要行 4.分组数据 5.数据排序

  6. 【转】python测试框架--doctest

    转自https://my.oschina.net/lionets/blog/268542 doctest 是一个 Python 发行版自带的标准模块.有两种模式可供使用. ##1 doctest 的概 ...

  7. 实现一个 web 服务器

    在 system1 上配置一个站点 http://system1.group8.example.com/,然后执行下述步骤: 1.从 http://server.group8.example.com/ ...

  8. CF1063F String Journey DP、SAM、线段树

    传送门 为了方便把串反过来,条件变为\(t_i\)是\(t_{i+1}\)的真子串,答案显然不变. 一件重要的事情是必定存在一种最优解,字符串序列\(\{t\}\)满足\(|t_i| = i\). 考 ...

  9. C++ 的多继承与虚继承

    C++之多继承与虚继承   1. 多继承 1.1 多继承概念 一个类有多个直接基类的继承关系称为多继承 多继承声明语法 class 派生类名 : 访问控制 基类名1, 访问控制 基类名2, ... { ...

  10. 转:使用Goproxy解决golang.org模块无法下载的问题

    原文https://studygolang.com/articles/22277?fr=sidebar 简介 Goproxy 中国完全实现了 Go 的模块代理协议.并且它是一个由中国备受信赖的云服务提 ...