SIGIR2020 | 当知识图谱邂逅个性化检索

2020 年 12 月 14 日 机器学习与推荐算法

前言

今天给大家分享一篇 SIGIR 2020 的文章:KEPS,用图谱来辅助优化个性化搜索。整篇文章首先充满学术风,充分且完备的设计了模型和实验,其次很多思路也可以在工业界中进行借鉴。一开始我只是大概扫了一下作者列表,看的过程中就觉得应该是学术界和工业界合作的一篇文章,果然是人大和微软都有署名~

顾名思义,这篇文章的主要工作是一个基于知识图谱来优化的个性化搜索模型,命名为 KEPS。整个工作可以分为四部分:首先是构建一个个性化的实体链接网络;然后再进行用户画像的构建;接下来就可以利用搜索意图和用户画像对文档进行个性化排序;最后再根据用户的点击结果对实体链接进行调整。

首先是个性化搜索的情况,本质上是根据用户的历史行为来判断现在搜索的目的。这种做法的缺点是不能利用到一些外部信息,比如樱花和日本之间的关系就无法获得;另外一方面是利用实体链接的方法,可以获得外部信息,但是不善于处理模糊语义,比如 cherry 到底是在说樱桃,还是说键盘?

直觉上很容易想到,将这两者结合起来,就可以互相弥补,实现一个有效的个性化搜索功能

上面这幅图展示了用户输入 “cherry review” 时的一个流程,从用户的历史行为可以看到这里 cherry 这个实体指的是樱桃花。接着通过实体链接图谱,找到樱花和 Tokyo,Sakura 之间的联系,进而就可以得到一些相关的文档了。

整体流程

接下来我们简单的介绍一下文章整体的思路,下面这幅图给出了本文四部分主要的流程框架:

首先是 personalized entity linking,主要是为了更好的识别 query 意图;接下来是 user profile constructing,根据 query 意图来构建用户偏好模型;第三部分是 personalized ranking,根据前面得到的 query 意图和用户偏好来构建一个对文档相关性进行个性化排序的模型;最后是 post ranking entity linking adjustment,根据用户点击的反馈来调整前面 query 实体链接的概率,进一步优化本次搜索序列中接下来的搜索结果。

personalized entity linking

首先我们搞清楚一个实体链接网络是什么形式的,一张图,节点是不同的实体,边是实体之间的链接关系。在本文中边就是两个实体之间链接的概率,更具体的说,本文中的边表示的是「用户输入的 query 中提到的实体 i 和某个实体意图 j 链接的概率」

上面的式子是一个计算过程,在给定 query 和历史行为 H 的情况下,实体 i 是 意图 j 的概率为 p_ij。所谓的个性化的实体链接,其实就是针对不同的用户历史,这里的 p_ij 都会是不同的取值,那么问题就转变到了如何构建出来个性化的 p_ij,具体的内容通过下面这幅图进行介绍:

以中间为界,可以将上下两部分分为 query 的实体和文档的历史交互记录,以及 query 的实体和对应意图之间的历史交互记录。而每一部分又可以左右分为长期的历史行为和短期的历史行为。

在这里需要补充一个作者提到的关键点,作者认为用户的历史查询可以分为多个 session,每个 session 是一个短期历史行为,而整个历史行为则是作为长期历史。比如用户当前想搜索一些关于旅游的信息,那么当前这个 session 中他搜索的行为都是一个主要目的,本次搜索就对下一次起到重要影响。

上面 p_ij 公式中的 f(*) 函数的内容就如下:

这两个式子分别计算了当前 e_ij 和当前 query 的关联程度,以及 e_ij 和历史行为的关联程度,在历史行为部分也分别考虑了长期和短期。

通过这种办法可以构建出一个个性化的实体链接图,实体与意图之间的边就是 p_ij。接下来介绍用户画像的构建方法。

user profile constructing

使用前面的实体链接来反映用户的搜索意图,对应的来检索用户与此意图相关的搜索历史,通过相应的文档点击历史来构建用户偏好。在本文中,使用 key-value memory network 来保存用户的历史。与第一部分类似,本文既考虑实体的历史记录,也考虑文档的历史记录。整体结构如下:

这里作者利用 memory network 来构建用户偏好,分别从实体的 memory network 和文本的 memory network 两部分来构建,以前者为例,我们简单的介绍一下。

entity memory network

这里将用户历史行为中的 query 「实体」向量作为 key,然后点击过的文本向量作为 value,然后利用下面的公式来计算用户短期历史的实体偏好,长期历史只需要将公式中所有的 s 换成 l ,同样的计算思路。

这里的 k 表示 memory network 中的 key, v 表示 value,所以简单点理解计算思路就是,利用实体 key 和前面的实体链接概率图来作为权重,再对 value 进行加权,获得最终的偏好表示。

文章中对得到结果进行了进一步处理,但是和这个思路一致,将得到的偏好和当前 query 结合起来再查询一次 memory network,也就是图中标注的 read 2 hop。

text memory network

文本的 memory network 也是类似的思路,不同之处在于前面的 entity memory network 将 query 的实体向量和文档的向量分别作为 key 和 value,而这里将 query 本身的向量作为 key,将对应点击过的所有文本向量的平均值作为 value。

不同的 key 和 value 其实是提供了不同的特征表达方式,而考虑到直接用 query 的 embedding 不能充分的表示当次搜索的意图,作者还添加了 t_s 短期兴趣作为 query 的补充。所以计算方法就成了如下这样:

计算思路和前面一致,这里是用短期历史作为例子,长期也是同样的思路。

personalized ranking

通过前面的两个部分,可以得到用户的意图概率,用户的偏好画像,然后就可以进一步来对候选的 item 进行排序,这里以文档排序为例,计算公式可以简化为这样:

相当于分别计算文档和用户意图的相关性,候选文档和用户偏好的相关性,以及候选文档与输入的 query 之间的相关性。三部分的 embedding 向量进行拼接,经过一个 MLP 层就是最终的排序得分。

以文档与意图的相关性进行示例:

每次的计算中,同时考虑了文档和长期与短期,文本与实体,共两个维度,四种组合的相关性,并将最终结果拼接起来作为最后的计算结果。

这样就充分考虑了前面的工作成果,并将其结合起来作为对候选文档的个性化打分的依据,输出一个个性化的排序结果。

post ranking entity linking adjustment

在给用户展示了排序好的文档后,根据用户的当次点击情况,可以再作为标签反馈,对实体链接图进行调整。

作者在文中举了这样一个例子,首先,每次搜索的一个 session 中,用户搜索的意图背景可以看做是相似的。在这样的前提下,假如用户搜了 Java 相关的内容,当他再搜编程书的时候,我们就可以优先展示 Java 相关的编程书籍。

具体的调整思路,也就是根据用户点击的文档,以及其中提到的实体,来更新前面构建的个性化实体链接图:

训练与实验

最终作者将所有的内容整合起来,用一个 pair-wise 的损失函数来直接进行训练,一次传播中对涉及的所有参数都进行更新,具体的 loss 就比较简单了:

d+  和 d- 两个分别表示正样本和负样本,也就是给用户展示了以后,用户点击与每点击的文档。

实验部分作者做了很多工作,感兴趣的同学可以去找论文看看,作者除了对比了一些 baseline 的搜索方法,也对比了一些 sota 的工作。

除了与别的工作作对比之外,作者也进行了很多自身的对比,比如删除自己模型的不同部分,分别进行效果的验证。大家可以在后台输入关键词获得论文,再自行欣赏。

总结

这篇文章整体的思路还是比较清晰,很多设计不是非常新颖,但却考虑的很周到,事业设计也很完备。我们组做搜索,感觉对于长短期历史行为的设计,的确得到了一些启发,可以做的更精细些。相关从业者的小伙伴可以灵活借鉴其中的一些思路,对自己的工作提供帮助,

想看论文的小伙伴,可以在后台输入「KEPS」,获得论文的网盘链接(PS:因为之前下载的比较早,后来有朋友想看这篇文章说找不到,不知道是啥原因,我后来也没找到,所以放到了网盘里,供大家有需要的小伙伴学习。

喜欢文章的同学点个再看哟~

喜欢的话点个在看吧👇
登录查看更多
1

相关内容

【博士论文】搜索引擎中的实体推荐关键技术研究
专知会员服务
44+阅读 · 2020年12月9日
【CIKM2020】学习个性化网络搜索会话
专知会员服务
14+阅读 · 2020年9月20日
个性化推荐系统技术进展
专知会员服务
65+阅读 · 2020年8月15日
基于知识图谱的推荐系统研究综述
专知会员服务
328+阅读 · 2020年8月10日
【SIGIR 2020】 基于协同注意力机制的知识增强推荐模型
专知会员服务
89+阅读 · 2020年7月23日
【SIGIR2020-微软】知识图谱上的增强推荐推理
专知会员服务
74+阅读 · 2020年5月30日
知识图谱实体链接:一份“由浅入深”的综述
PaperWeekly
9+阅读 · 2020年1月8日
知识图谱的自动构建
DataFunTalk
55+阅读 · 2019年12月9日
论文浅尝 | 知识图谱相关实体搜索
开放知识图谱
14+阅读 · 2018年12月18日
论文浅尝 | 基于知识图的问答变分推理
开放知识图谱
7+阅读 · 2018年5月6日
推荐系统之用户行为分析
架构文摘
7+阅读 · 2017年12月17日
【知识图谱】肖仰华 | 基于知识图谱的用户理解
产业智能官
16+阅读 · 2017年10月6日
肖仰华 | 基于知识图谱的用户理解
机器学习研究会
10+阅读 · 2017年9月29日
Arxiv
0+阅读 · 2021年4月27日
Arxiv
0+阅读 · 2021年4月22日
Arxiv
20+阅读 · 2019年9月7日
Arxiv
9+阅读 · 2018年3月23日
VIP会员
相关资讯
知识图谱实体链接:一份“由浅入深”的综述
PaperWeekly
9+阅读 · 2020年1月8日
知识图谱的自动构建
DataFunTalk
55+阅读 · 2019年12月9日
论文浅尝 | 知识图谱相关实体搜索
开放知识图谱
14+阅读 · 2018年12月18日
论文浅尝 | 基于知识图的问答变分推理
开放知识图谱
7+阅读 · 2018年5月6日
推荐系统之用户行为分析
架构文摘
7+阅读 · 2017年12月17日
【知识图谱】肖仰华 | 基于知识图谱的用户理解
产业智能官
16+阅读 · 2017年10月6日
肖仰华 | 基于知识图谱的用户理解
机器学习研究会
10+阅读 · 2017年9月29日
Top
微信扫码咨询专知VIP会员