预备知识:Transformer:1.https://blog.csdn.net/longxinchen_ml/article/details/865330052.苏剑林. (2018, Jan 06). 《《Attention is All You Need》浅读(简介+代码) 》[Blog post]. Retrieved from https://kexue.fm/archives/47653.  https://blog.csdn.net/weixin_40005743/article/details/85460869残差网络    :https://blog.csdn.net/u014665013/article/details/81985082

介绍

个性化搜索的关键是根据用户的搜索历史,明确当前查询的含义

  1. 以前的个性化研究试图在历史数据的基础上建立用户档案来定制排名。然而,基于用户概要文件的方法并不能真正消除当前查询的歧义。在构建用户配置文件时,它们仍然保留一些语义偏差。同一个查询通常表示不同的查询意图。因此,很难通过返回相同的文档列表来满足所有用户的需求。为了解决这一问题,个性化搜索试图对用户的偏好进行建模,并以此为基础对搜索结果进行重新排序。传统的个性化搜索策略通过从查询日志中提取个性化特征来建立用户模型。他们证明了用户历史点击数据的价值,以定制排名。
  2. 基于深度学习的方法学习发现深层语义关联的表征,著提高了检索质量。以前的方法已经表明,用户发出的大多数查询都是短而含糊的。当接收到不明确的查询时,捕捉用户的真实意图是个性化的关键步骤。现有的研究大多集中在根据用户历史数据建立用户档案,并根据当前查询重点突出相关部分对候选文档进行重新排序。然而,它们并没有从本质上消除当前查询的歧义,而是从历史行为中总结出用户的兴趣。由于当前查询的模糊性,在构建用户概要文件时,这仍然会导致语义偏差。例如,对于当前的查询“java”,它结合了“java编程语言”和“java岛”的语义,由于“java”的模糊性,这样的用户配置文件是有偏见的。直观地说,在用户搜索历史的特定上下文中,“java”的语义表示应该是唯一的,能够反映清晰的信息需求。
  3. 现有的上下文感知文档排序方法主要是通过递归神经网络或卷积神经网络对上下文信息进行编码。然而,这些方法关注的是局部关系,这些关系仍然面临长期依赖的挑战。
  4. 然而,由于查询通常很短,并且只包含几个关键字,仅依靠有限的单词是不足以推断用户意图的。有必要使用搜索历史来消除当前查询的歧义。另外,由于用户在搜索时行为的随机性,查询有时会因拼写错误或表达式偏离而难以表达所需的信息。在这种情况下,用户的真实意图不能简单地通过消歧来获得。受BERT中的mask语言模型的启发,我们认为对信息需求的一系列查询具有特定的模式。
  5. 具体来说,本文提出了一个上下文感知的神经检索模型,它包含了丰富的上下文信息,包括查询词、短期历史和长期历史,以改进当前查询的表示。它包括两个基于Transformer的子模型:查询消歧模型和个性化语言模型。前者用于根据当前查询的条件和历史交互进行多次消歧,后者则试图学习用户的个性化搜索模式,以更准确地推断用户的意图。最后,通过两个子模型的交互,我们可以得到一个具有特定意图的上下文感知查询表示,并计算其与每个候选文档的相关性,从而使结果个性化。

模型:HTPS


假设一个用户的历史数据HHH由短期历史HsH^sHs和长期历史HlH^lHl组成。前者包括当前会话中的一系列查询和候选文档,HsH^sHs={qqqs^ss1_11​,DDDs^ss1_11​},{qqqs^sst_tt​−_-−​1_11​,DDDs^sst_tt​−_-−​1_11​},其中ttt是当前时间戳。后者包含以前会话中用户过去的交互,HlH^lHl={qqql^ll1_11​,DDDs^ss1_11​},{qqql^lln_nn​,DDDl^lln_nn​}},其中nnn是在以前的会话中发出的查询数。给定一个新的查询qqq和搜索引擎返回的候选文档DDD={d1d_1d1​,d2d_2d2​,…},我们的任务是根据当前查询qqq和历史数据HHH对DDD中的每个元素进行评分,文档ddd的分数表示为ppp(ddd| qqq,HHH)。不同于以往从历史数据HHH中提取个性化特征的方法,本文试图以此为基础增强当前查询qqq的表示。根据细化查询表示形式qHq^HqH和每个候选文档的匹配分数生成个性化搜索结果。 最终分数可以计算为

其中ppp(ddd,qqq)是文档和查询之间的即席关联。ppp(ddd,qHq^HqH)表示相对于由历史数据增强的上下文感知查询表示的个性化相关性。函数ψψψ(·)是以tanh(·)为激活函数的多层感知器(MLP),用于将不同权重的各个部分的得分组合起来。

Multi-stage Query Disambiguation 多级查询消歧

该模型将查询条件、短期历史和长期历史分别整合在一起。一个异构的Transformer结构将它们编码为上下文,以澄清当前查询的含义。整个过程分为:

  1. 单词级消歧,它考虑了周围术语的影响;
  2. 短期消歧,将用户在短期历史中的交互作为语境;
  3. 长期消歧,它利用长期历史中用户交互的语境。
Word-level disambiguation 词级消歧

对于歧义查询中的模糊词,周围词的上下文提供了捕捉其真实含义和进一步理解查询意图的机会。例如,“apple”一词在“apple fruit”和“apple company”中因上下文不同而具有不同的含义。与预先训练的词向量不同,我们认为即使是同一个词,在不同的语境中也应该用不同的向量来表示。对于当前的查询qqq,假设它由mmm个术语组成,表示为qqq={e1e_1e1​,e2e_2e2​,…,eme_mem​}。我们的目的是学习基于整个文本的Word-levelTrnsformer对每个术语的上下文感知表示,表示为:

其中qqq∈∈∈RRRm^mm∗^∗∗d^dd和qpq_pqp​∈∈∈RRRm^mm∗^∗∗d^dd表示查询qqq中的单词嵌入和位置嵌入。Trm(·)是一个Transformer层,它包含一个多头自我注意(MMMSSS)层和一个位置前馈(PPPFFF)层。为了防止在网络深入时出现困难的训练,我们将残差链接应用到每一层。

式中,LN(·)是稳定输出的层标准化。D(·)是我们设定的0.1概率的Dropout层。多头自我注意被证明比传统的注意机制表现得更好,因为它能够对不同的焦点应用权重。具体地说,它首先将输入投影到具有不同参数的子空间中,并对每个头部使用单个注意(Att)。最终输出为链接它们:(参考Transformer)

为了使模型具有不同维度之间的相互作用,添加了一个位置前馈网络来增强非线性投影的表示。它由两个核大小为1的卷积组成。我们有:

其中C1C_1C1​(·)和C2C_2C2​(·)是两个参数不同的卷积,它们在所有位置共享。最后,公式(2)中的Transformer层的输出被视为当前查询中的上下文感知表示EwE^wEw={eeew^ww1_11​,eeew^ww2_22​,…,eeew^wwm_mm​}。为了减少下游的计算成本,我们用词级消歧qwq^wqw来表示查询,即:

为了覆盖更多的情况,继续使用qwq^wqw作为下一阶段的输入来消除当前查询的歧义。

Short-term disambiguation 短期消歧

用户发出的查询通常很短,甚至是一个单词。在这种情况下,词级消歧并不能完全消除多义现象。有一种常见的情况是,用户经常在会话中针对单个信息需求呈现一系列查询。在这个过程中的查询和点击数据提供了丰富的上下文信息来推断当前用户的意图。因此,通过合并短期历史的上下文来进一步消除当前查询的歧义。形式上,对于短期历史HsH^sHs中的每个查询,我们将查询条件与其满足的文档连接起来,以“[SEP]”作为分隔符。在单词级消歧之后,我们将输出作为当前查询的上下文信息。所有的输出形成了短期上下文,表示为HHHs^ssw^ww={hhh1_11​s^ssw^ww,…,hhht_tt​−_-−​1_11​s^ssw^ww}。我们将HHHs^ssw^ww与qwq^wqw相连接,并应用短期Transformer得到精确的表示qsq^sqs:

其中Trm last(·)表示只获取最后一个位置的输出,该位置对应于当前查询。这里的位置嵌入p+p^+p+不仅对序列中的相对位置进行编码,而且考虑了层次信息。其基本思想是:短期历史在绝对地位上更接近,应该比长期史更受重视。因此,我们添加一个标识符来区分当前上下文是属于短期(标记为2)还是属于长期历史(标记为1),并以与位置嵌入相同的方式嵌入它。下一阶段将进一步完善输出qsq^sqs。

Long-term disambiguation 长期消歧

对于会话开始时的简短查询,由于缺乏上下文,它们仍然存在偏见。长期历史往往反映了用户稳定而稳固的兴趣,这也提供了一种根据当前查询推断用户意图的方法。因此,为了进一步消除歧义,我们将长期历史编码为上下文。与短期消歧类似,在对HlH^lHl中的每一项进行词级消歧后,我们将输出向量HHHl^llw^ww={hhh1_11​l^llw^ww,…,hhht_tt​−_-−​1_11​l^llw^ww}和qsq^sqs放在一起作为长期Transformer的输入。最后一个位置qlq^lql的输出被认为是长期历史增强的新的查询表示,计算如下:

Personalized language model

本文提出的查询消歧模型的前提是,用户的真实意图隐藏在当前查询中,并且可以逐步将其剥离出来。然而,有时发出的查询与实际信息需求之间存在偏差。例如,一个用户想要找到一种药物的详细信息(假设是阿司匹林),但是他忘记了它的名称。在这种情况下,他可能会用“一种普通消炎药”(偏离表达式)或一个猜测的名字“asp…”进行搜索(拼写错误)。这些查询不包含歧义项,而且很难通过简单的消歧来细化。因此,如图2所示,我们的目标是建立一个个性化的语言模型来预测用户的真实意图。查看整个查询日志,相同的搜索模式通常会出现多次。当一个搜索引擎再次遇到一系列不准确的信息时,也会在一个搜索引擎中再次反映出一系列不准确的信息。我们的目标是学习这种搜索模式,并根据现有查询预测用户的意图。这个过程有两个步骤

Modeling the current search pattern.为当前搜索模式建模

给定当前会话中发出的查询集QsQ^sQs={qqqs^ss1_11​,…,qqqs^sst_tt​−_-−​1_11​,qqq},使用长期历史中类似的搜索模式来增强QsQ^sQs的查询表示。将长期历史中的历史查询集合表示为QlQ^lQl={qqql^ll1_11​,…,qqql^lln_nn​},每个查询通过对每个单词的向量求平均来表示。特别是,为了分割搜索模式,我们将“[SEP]”标记添加到会话边界,并将session ID编码到查询嵌入中。具有相同ID的一系列查询可以反映单个信息需求。最后,我们将前一个会话QlQ^lQl中的查询和当前会话QSQ^SQS中的查询连接起来,并应用一个低层Transformer对当前会话的搜索模式进行建模。

其中[QlQ^lQl,QsQ^sQs]s_ss​是会话ID的编码。输出集QQQs^ssl^ll是对QsQ^sQs的精细表示,其中包含了个性化的搜索模式。它将有助于预测下一步用户的真实意图。

Predicting the real intent 预测真实意图

现在,我们已经基于用户的个性化搜索模式增强了当前会话的查询表示,我们尝试使用high-level Transformer来预测基于它们的真实意图。具体地说,我们在序列QQQs^ssl^ll的最后一个位置添加了$个“[MASK]”标记,并将其输出 qpq^pqp 视为预期意图。

预测的意图 qpq^pqp 汇总所有现有查询,并推断当前时间最可能的意图。为了更好地优化这个模型,选择下一个查询来监督预测

Gated Joint of Two Models两种模型的门控连接

消歧表示qlq^lql和估计用户意图qpq^pqp都是推断用户信息需求的重要参考。我们认为,在不同的条件下,它们的贡献是不同的,并且它们的权重应该随着发出的查询的变化而动态调整。为了自动学习两个子模型对最终结果的贡献,我们设计了一个门单元来控制这两个部分的流量。形式上,当前查询qfq^fqf的最终表示是通过将qlq^lql和qpq^pqp与门权重zzz聚合而生成的:

其中zzz是根据当前查询的特点和两部分的MLP来学习的。注意,为了使zzz在0和1之间,这里的激活函数是sigmoid(·)。

最终表示qfq^fqf结合查询消歧模型和个性化语言模型的信息,通过计算匹配得分对结果进行重新排序。

Re-ranking Search Results

最后,每个候选文档的最终分数可以通过上面收集的上下文感知查询表示来计算。为了更广泛的匹配范围,我们对候选文档进行词级消歧,输出向量用dwd^wdw表示,这是ddd的上下文感知表示,
对于公式(1):

对于个性化的相关性ppp(ddd,qHq^HqH),我们收集了每个阶段经过历史增强的精细化查询表示,包括

  1. 具有短期和长期消歧的查询和qsq^sqs和qlq^lql
  2. 预测用户意向qpq^pqp
  3. 查询最终表示qfq^fqf
    对于包含不同程度歧义语义偏差的查询,我们将它们全部匹配到文档dwd^wdw,并使用MLP自动调整每个部分的权重。我们有:

    其中sRs^RsR(·)表示基于表示的相似性。本文将其作为余弦相似度来实现。对于adhoc relevance ppp(ddd,qqq),我们考虑原始查询和文档术语的匹配,以及它们的精确表示qwq^wqw和dwd^wdw。此外、为每个文档提取了关于点击和主题的几个附加特征FFFq_qq​、_、、​d_dd​。这些特征被输入MLP以计算相关的分数。从形式上讲,adhoc relevance 包括三个部分:

    其中sIs^IsI(·)是基于交互的相似性。在给定一个查询文档对的基础上,利用查询和文档中每个项之间的余弦相似度构造交互矩阵。然后应用k核来处理不同范围的匹配。最终匹配分数FFFk_kk​(MMM)是通过将它们与MLP进行聚合而生成的:


式中,µkµ_kµk​按核数分布在-1和1中,σσσk_kk​设为0.1。最后,根据最终的相关性得分对结果进行重新排序,得到符合用户信息需求的个性化搜索结果。

Training and Optimization

Ranking loss

我们采用LambdaRank算法[5]对排序模型进行成对训练。每对都是构造好的正例(点击文档)和负例(没有点击文档)我们的目标是最大化他们之间的差距。形式上,给定一个正文档did_idi​和一个负文档djd_jdj​,用sigmoid规范化ppp(did_idi​ |qqq,HHH)−ppp(djd_jdj​ |qqq,HHH)来计算did_idi​比djd_jdj​更关的预测概率。排序模型的损失函数由真实标签pip_ipi​j_ jj​−^-−与预测概率pip_ipi​j_ jj​之间的加权交叉熵计算:

其中权值λλλi_ii​j_jj​对应于调换did_idi​和djd_jdj​位置时排名质量的变化。

Prediction loss.

为了进一步优化参数,我们考虑了附加的监督信息,以便更好地训练个性化语言模型。在假设会话中的下一个查询比之前的查询更准确地表达真实意图的基础上,我们将下一个查询作为监督来优化模型。换句话说,我们确信基于现有查询的预测用户意图应该接近下一个查询。因此,预测的用户意图qpq^pqp和下一个查询qqqt_tt​+_++​1_11​之间的损失是:

其中qqqt_tt​+_++​1_11​表示下一个查询中每个单词的平均向量,sim(·)是余弦相似度。请注意,如果当前查询是会话的最后一个查询,则目标查询仍然是其自身。最后,我们同时最小化排名损失和预测损失,以更新模型中的参数:

其中ααα是控制平衡的超参数。我们采用Adam优化器使最终损失最小。

实验


Encoding History with Context-aware Representation Learning for Personalized Search(2020SIGIR)相关推荐

  1. GRAIL Efficient Time Series Representation Learning论文阅读笔记(二)

    GRAIL Efficient Time Series Representation Learning 有效的时间序列表示学习 作者 芝加哥大学的John Paparrizos和Michael J. ...

  2. GRAIL Efficient Time Series Representation Learning论文阅读笔记(三)

    GRAIL Efficient Time Series Representation Learning 有效的时间序列表示学习 作者 芝加哥大学的John Paparrizos和Michael J. ...

  3. GRAIL Efficient Time Series Representation Learning论文阅读笔记(一)

    GRAIL Efficient Time Series Representation Learning 有效的时间序列表示学习 作者 芝加哥大学的John Paparrizos和Michael J. ...

  4. Unsupervised Degradation Representation Learning for Blind Super-Resolution(基于无监督退化表示学习的盲超分辨率处理)

    文章目录 Abstract(摘要) 1. Introduction 2. Related Work 2.1. Single Image Super-Resolution 2.2. Contrastiv ...

  5. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

  6. Deep Learning论文笔记之(六)Multi-Stage多级架构分析

    Deep Learning论文笔记之(六)Multi-Stage多级架构分析 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些 ...

  7. Learning Cocos2d-x for WP8(7)——让Sprite动起来

    C#(wp7)兄弟篇Learning Cocos2d-x for XNA(7)--让Sprite动起来 本讲将详细介绍Cocos2d-x游戏中动画Animate的创建方式,通过逐帧数组播放动画和创建动 ...

  8. Deep Learning论文笔记之(七)深度网络高层特征可视化

    Deep Learning论文笔记之(七)深度网络高层特征可视化 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但老感 ...

  9. Deep Learning论文笔记之(五)CNN卷积神经网络代码理解

    Deep Learning论文笔记之(五)CNN卷积神经网络代码理解 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但 ...

最新文章

  1. 【★】Web精彩实战之智能迷宫
  2. 解决MySQL server has gone away
  3. 解决Pycharm:Windows Defender might be impacting your build performance.
  4. 刷脸取件遭小学生破解,丰巢智能柜紧急下线相关功能
  5. c语言删除s字符串中所有子串t,从串s中删除所有和串t相同的子串的算法
  6. android调用webservice传参数,android调用webservice接口获取信息
  7. 关于CI框架引入CSS与JS文件
  8. c语言课程笔记格式,C语言课程学习笔记.docx
  9. 消失了一周的小夕在玩什么啦?
  10. 【Linux开发】【Qt开发】Qt界面键盘、触摸屏、鼠标的响应设置
  11. mybatis 高级映射和spring整合之与Spring整合(6)
  12. leecode---40---数组,dfs---求所有的组合为target,有重复数组
  13. 大电流dcdc降压芯片20a_电源篇 - 降压电路(DCDC,非隔离
  14. 解决HP1010打印机在WIN7系统下驱动的问题
  15. FlashFXP导出导入站点
  16. Unity阴阳师画符教学
  17. java的Lambda表达式理解
  18. java 图片添加水印(文字水印+图片水印)
  19. 使用素描图像识别人脸
  20. Java选择题(十八)

热门文章

  1. 转:作为一个HR,说说应届生及一两年往届生的注意情况。
  2. 雅虎NCP:网络黄页的终结者
  3. Microsoft SQL Server 图书管理数据库的建立
  4. 【Python小案例】打工人必备:有了这款倒计时神器,再也不用担心自己的隐私被偷窥啦~(附源码)
  5. wpp trace在windbg输出的方法
  6. 狗眼看人低的十种职业~
  7. 设置QQ的个性在线状态图片
  8. 安徽科技学院 信网学院网络文化节 高庆
  9. 全国大学生智能汽车大赛(一):摄像头识别赛道代码
  10. AI将带我们去何方?(上-前言篇)