【导读】随着网络的发展,人们的新闻阅读习惯已经从报纸和电视等传统媒体逐渐转变为互联网, 但是在线新闻平台文章的数量过多,容易造成信息过载。因此,帮助用户确定他们的阅读兴趣并提出个性化建议是十分重要的。本文主要介绍一种将知识图表示引入到新闻推荐中进行点击率预测的的深度知识感知网络(DKN)。
论文地址:
https://arxiv.org/pdf/1801.08284.pdf
动机
在新闻推荐中,核心问题是提取新闻之间的深层逻辑关系,为用户准确的进行推荐。但是传统的推荐方法,具有以下三个缺陷:
传统的方法对于高度时效性的新闻推荐效果不佳。
传统的新闻推荐方法不能够衡量用户在当前的候选新闻的兴趣。
传统的推荐只能基于单词的共现或聚类结构找到实体之间的关系,但无法发现他们潜在的知识层次的联系。导致用户推荐的结果仅限于简单模式并且无法扩展。
为了解决上述问题,提取新闻之间的深层逻辑联系,作者在新闻推荐中引入知识图谱,提出了一种利用外部知识进行新闻推荐的框架——深度知识感知网络(DKN)
核心思想
DKN是一种基于内容的点击率(CTR)预测模型,该模型将一条候选新闻和一个用户的点击历史新闻作为输入,并输出用户点击新闻的概率。DKN框架主要包含知识感知卷积神经网络(knowledge-aware convolutional neural network,KCNN)与注意力网络两大部分。其中KCNN用来融合新闻的单词级和知识级表示,并生成知识嵌入矢量。注意力模块用来获得用户相对于当前候选新闻的动态表示,将候选新闻与每条点击新闻自动匹配,并以不同的权重汇总用户的历史记录。最终,用户的嵌入和候选新闻的嵌入将由深度神经网络(DNN)处理,以进行CTR预测。
准备工作
问题定义
文中将新闻推荐问题定义为给定用户的点击历史以及新闻标题中的单词与知识图中的实体之间的联系,预测用户 i 是否会点击他之前从未见过的候选新闻 t_j 。
用户i的点击历史记录表示为{t^i_1,t^i_2,...,t^i_Ni}
t ^ i_j(j = 1,...,N_i)是用户i点击的第j个标题
N_i是用户i点击的新闻总数。
t= [w1,w2,...],表示新闻标题,由一系列单词组成
w表示标题中的每个单词,可以与知识图中的实体e相关联
知识图嵌入
一个典型的知识图谱由数以百万计的实体-关系-实体三元组(h , r , t )组成,其中h、r和t分别表示三元组的头、关系和尾。给定知识图谱中所有的三元组,知识图谱嵌入的目标是学习每个实体和关系的低维表示向量。文中主要介绍了如下四种基于翻译的知识图谱嵌入方法:
方法
DKN的框架如图所示。主要包含KCNN模块、注意力模块以及最后生成预测概率的DNN模块。
输入:候选新闻标题与用户点击的新闻标题
输出·:候选新闻的点击预测概率
step1:获取输入新闻标题的知识(标题中每一个单词对应的实体向量表示以及上下文向量表示)
step2: 通过KCNN,获得用户点击历史记录的一组嵌入向量,将单词语义信息与实体知识信息连接起来。
step3:将嵌入向量送入注意力模块来自动将候选新闻与用户点击的历史新闻进行匹配,并以不同的权重汇总用户的历史兴趣。
step4:最后连接候选新闻嵌入和用户嵌入,并将其送入深度神经网络(DNN),以计算用户单击候选新闻的预测概率。
知识提取
知识提取是该模型中最基础的部分,它由4个步骤组成。
消除文本歧义:利用实体链接技术,通过将它们与知识图中的预定义实体相关联来消除文本中的歧义。
构造子图:基于这些识别出的实体,构造一个子图,并从原始知识图中提取它们之间的所有关系链接。之后,将知识子图扩展到已识别实体中。
知识图谱嵌入:利用TransE ,TransH ,TransR 和TransD等方法学习实体嵌入。
获取每个实体的上下文信息(知识图中其直接邻居的集合),即:
给定实体e的上下文,将上下文嵌入计算
为其上下文实体的平均值:
知识感知卷积神经网络(KCNN)
输入转换
在经过知识提取获得标题中每个词向量的实体嵌入(e_I)与实体上下文嵌入(~e_i)之后,需要对这些词矩阵w_{1:n }与与获取的知识进行特征提取。与之前直接将词嵌入与知识直接连接不同的是,作者提出了一种多渠道和单词实体对齐的KCNN,用于组合单词语义和知识信息。结构图如下:
为了更好的保留词与实体之间的联系,文中使用转换函数来对实体嵌入e_i、实体上下文嵌入~e_i进行转换。转换后的实体嵌入:
转换后的上下文嵌入:
其中:
转换函数g()既可以为线性也可以为非线性
M为变换矩阵,b是偏差。
单词嵌入w_{1:n}、变换后的实体嵌入g(e_{1:n})和变换后的上下文嵌入g(〜e_{1:n})具有相同的大小,并用作类似于彩色图像的多个通道。因此,文中将三个嵌入矩阵对齐并堆叠为:
丨如果wi没有对应的实体,则将ei和ei设置为零
特征提取
在获得输入之后可以使用KCNN进行特征提取,主要分为如下三步:
step 1: 对于输入的嵌入矩阵 W的子矩阵W_{i:i + l-1} 进行卷积操作,得到特征 c^h_i,对每一个嵌入矩阵的子矩阵进行卷积操作后,可以得到特征图 ( feature map):
其中:
h为卷积核
l(l≤n)是卷积核的大小
f为非线性函数
step2:然后在特征图上使用 max-time-time pooling 操作来得到最重要的特征
step3:最后使用多个卷积核(具有不同的窗口大小)来获得多个特征,然后将这些特征串联在一起以形成最终的句子表示形式。
丨词嵌入矩阵的初始值 可以从大型语料库中预先学习或随机初始化
注意力模块
由于用户对新闻主题的兴趣可能多种多样,并且在考虑用户 i 是否会点击候选新闻 t_j 时,用户 i的历史点击新闻可能会对候选新闻 t_j 产生不同的影响。为了表征用户的不同兴趣,文中使用注意力网络来建模用户点击的新闻对候选新闻的不同影响,如下图所示:
输入:用户i点击的历史新闻标题的嵌入e(t^ i _Ni );当前用户的候选新闻 t_j的嵌入e(t_j)
输出:注意力权重
step1:将输入的嵌入进行串联,然后将使用深度神经网络 H 计算归一化的影响权重:
step2:得到影响权重s之后,将用户 i 点击的历史新闻标题嵌入乘上影响权重,即可得到当前用户的嵌入e(i)。
输出
在给定用户 i 嵌入e(i)和候选新闻 t_j 嵌入e(t_j),在经过深度神经网络可以得到预测用户 i 点击新闻 t_j 的概率
实验
数据
数据集上的数据来自Bing新闻的服务器日志。每条日志主要包含时间戳,用户ID,新闻URL,新闻标题和点击计数(0为无点击,1为点击)。文中使用2016年10月16日至2017年6月11日的随机样本和平衡数据集作为训练集,2017年6月12日至2017年8月11日的样本数据作为测试集。此外,作者还在Microsoft Satori知识图中搜索数据集中所有出现的实体以及它们的邻居的实体,并以置信度大于0.8提取其中的所有边(三重边)。下图以及表1展示了新闻数据集和提取的知识图的基本统计信息和分布。
实验设置
实体嵌入方法:TransD
KCNN中转换函数g():非线性变换函数
单词嵌入和实体嵌入的维数:100
卷积核的数量:100
优化器:Adam
评价指标:F1和AUC值
为了更好地展现DKN的优越性,文中对比了LibFM、KPCNN、DSSM、Deep FM等方法的性能,表2为不同模型的实验对比结果:
由上表我们可以看到在所有的模型中DMF效果最差,是因为新闻通常具有高度的时间敏感性,并且生命周期短,因此基于CF的推荐方法在新闻推荐场景中不能很好地工作。
在上表中我们还可以清晰看到DKN效果最好,主要归功于:1)DKN使用单词实体对齐的KCNN进行句子表示学习,可以更好地保留单词与实体之间的关联性;2)DKN使用注意力网络来区分用户的点击历史记录,从而更好地捕获用户的多样化阅读兴趣。
在对比不同模型的性能之后,作者还进行了不同的DKN变体的对比试验,如表3所示:
从表中我们可以得到将实体嵌入与上下文嵌入组合使用、加入注意力网络可以明显提高模型的性能。并且在KCNN中使用非线性转换函数的性能优于线性函数。
-END-
专 · 知
专知,专业可信的人工智能知识分发,让认知协作更快更好!欢迎登录www.zhuanzhi.ai,注册登录专知,获取更多AI知识资料!
欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程视频资料和与专家交流咨询!
请加专知小助手微信(扫一扫如下二维码添加),加入专知人工智能主题群,咨询技术商务合作~
专知《深度学习:算法到实战》课程全部完成!560+位同学在学习,现在报名,限时优惠!网易云课堂人工智能畅销榜首位!
点击“阅读原文”,了解报名专知《深度学习:算法到实战》课程