丁香园 | 搜索中的 Query 扩展技术(二)

搜索中的 Query 扩展技术

丁香园大数据 NLP

一、前言

这一期我们继续来聊 Query 扩展的问题,在上一期我们梳理了目前 Query 扩展技术可以大致分为相关性建模翻译模型建模两种思路。
(传送门:搜索中的 Query 扩展技术)
在介绍现有 Paper 工作的同时,结合我们自身场景,如果对文档能够构建概述主旨的 concept 短语。那么利用文档中的 entity 与 concept 就可以使用贝叶斯一众的概率模型构建一个相关性网络。随后在 Query 端,完成实体链接,获取其中的 entity,最后利用相关性模型就可以实现 Query 扩展的功能。

image.png

在此基础上,本文将讨论如何进一步改进扩展效果,以及目前在该领域都有哪些工作思路可以借鉴。

二、相关模型 or 生成模型?

看到上图,细心的同学一定发现了,相关性模型的基础是 Query 中的 term,或者如我们使用的 entity。如果 Query 较短,比如仅包含一个单一实体时,这类方法是比较适合的。但是当 Query 较长,包含复杂语义时,再使用相关性模型做 Query 扩展可能会造成语义偏差过大的情况:

所以,我们的结论是,可以根据 Query 的长度来选择扩展的策略。当 Query 较短时,仅包含单一实体时,用户并没有表达出明确的搜索意图,除了满足字面匹配的准确性,Query 扩展是为了补充近似于“推荐”的功能;而对于长 Query 的情况,文本中不仅出现单个实体词,也会存在多个实体,并相互作为限制词、定语,或者描述实体词的属性等。总的来说,Query 越长,用户的意图越聚焦,希望获取的内容越具体,这种情况下,Query 扩展是为了实现在准确捕捉语义后,扩展出相同语义的不同表述

三、捕捉复杂语义

所以,当 Query 存在复杂语义时,具体需要解决哪些问题呢?我们总结了以下三个方面

a. Query 中包含多于一个的实体词,或包含除实体词以外的文本。这种情况通常表达的是对某个实体附加了限定条件(如:HP 的治疗方案),或者在表达与多个实体相关的事件(如:上海 疫情)。这类 Query 包含了某个完整的语义,在处理时不能割裂成多个词,而是想办法 encode 整个 Query,比如各种 embedding 的方法;

b. 用户对某个事物的表述是多种多样的,并不是所有 Query 的表述都是精确的,某些情况下由于分词的原因或者 BM25 计算的原因,不标准的表述可能无法搜索到期望的内容。此时 Query 扩展能够补充的,是在忠实执行原文本的检索后,也提供一个标准表述下检索结果。(比如:胃溃疡的治疗文件 –> 胃溃疡的诊疗指南);

c. 某些时候,用户对想要搜索的内容有个大致的概念,但是可能一时想不起具体的名字,搜索 Query 会以围绕目标展开,由多个相关的 Query 组成一个 session(比如:冰与火之歌 -> 马王 -> 海王主演 -> 杰森莫玛)。这类问题目前也有不少工作研究了如何通过 Query Session 来捕捉到复杂语义;

四、Query 扩展思路

在任务形态上,常见有两种类型,一种是首先获得一批 Candidates,模型负责对 Query 与 Candidate 的 pair 打分,最高分者为目标 Query 或扩展的 Term;另一种是由模型直接生成目标 Query 或 Term。

查阅已有工作,与我们在此讨论相关的存在 Query ExpansionQuery Suggestion 两个子领域,前者会更偏重在检索时,使用扩展出的 Query 来扩充检索内容;后者更偏重 Query 的 reform,比如在搜索引擎使用时的 Query 补全这类功能。而对于如何对 query 做 encode 的部分,许多技术思路是类似的,本文就不再深究两个子领域的细微差异。

1.编码完整 Query

想要对整个 Query 做编码,很自然就会想到使用 embedding 的方式。具体编码的方式就很多了,比如用 Word2Vec 叠加、LSTM 或者 Transformer 都可以。

《Deep Neural Networks for Query Expansion using Word Embedding》

比如在本工作中展示了一个比较基础的网络结构,Query 词使用 word embedding 表示,序列模型编码整句话,最后使用全连接作为原始 Query 与 Candidate 的交互层。

《Click Feedback-Aware Query Recommendation Using Adversarial Examples》

那么,后续的工作在 encoder 上就会有不同的玩儿法,比如在序列模型上加 attention,在输入加入 adversarial sample (虽然文章作者使用对抗学习作为标题,但是感觉并不足以作为工作的亮点)

另外在结构上的变化是也可以对搜索 Query、点击 Query 和 Candidate Query 的向量做各种求和、内积、拼接等等。

《Using BERT and BART for Query Suggestion》

除了在 encoder 的结果上做调整,另一个思路是用预训练模型:



方法与目前一些主流使用预训练做 QA、IR 任务类似,把原始 Query 与 Candidates 使用分隔符隔开作为输入语料,用生成任务完成预训练。理论上用上了预训练之后,上下文的 context 可以被编码得更好。

2.对 Query Session 建模

除了对单个 Query 编码,目前很多工作也会关注如何对用户一组 Query Session 进行建模,Session 中包含了上下文语境,也包含了 Query 经多次修改最终成为目标 Query 的转移关系。

《Learning to Attend, Copy, and Generate for Session-Basedery Suggestion》

image.png

如果构建 Query Suggestion 的生成模型,baseline 方案一般就是准备好 Query pairs,扔进 NMT 里。本工作是在此基础上做一些改进,首先 input 端将编码整个 search session,其次是在模型中加入 attention 和 copy 机制。这些可以说都是借鉴了文本摘要生成的一些技巧,这项 task 也比较类似,所以最终结果相较 seq2seq 是有所提升的。

3. 挖掘更多维度的特征

除了捕捉 Query Session 内的语义,后续相关工作的关注点也在我们如何利用 query 以外的信息作为特征。

《RIN: Reformulation Inference Network for Context-Aware Query Suggestion》

比如在本篇工作中,整体架构是做了 Candidate Query 判别器、Query 生成以及 Query 改写这三项任务的 Multi task,模型中增强了 session 中相邻 Query 的交互。

重点是在 feature 部分,作者利用 Query 点击的网站,构建起了图结构,使用 Node2Vec 获得各节点的向量,将向量融合进了 Query 编码中。

《Context Attentive Document Ranking and Query Suggestion》

对 Query 与 Website 的点击关系可以展开成 Term 到 Website 的关联,相应的,对文档一侧也可以对 Term 做展开。

image.png

这里就对 Document 的信息做了进一步的编码,一起融合进网络中,以此提高对上下文语义的感知度。同时,排序的相关 Loss 也被计算在内,协同优化 Query Suggestion 的效果。

五、总结

对于较长的 Query 如何做 Query 扩展,我们在本文记录了相关工作调研,总结起来需要注意的是:Query 编码整体与其他 NLP 任务类似,注意负样本的采样,可以尝试各种 attention、copy 和交互方法;可以尝试将具体 task 目标融入到扩展任务中(比如 IR 的各指标);最后是我们一直秉承的观念,平时多注意数据结构化工作,在下游任务中才有额外的 feature 用得上。

参考文献

[1] Deep Neural Networks for Query Expansion using Word Embeddings

[2] Improving Search Query Suggestion With User Feedback

[3] Using BERT and BART for Query Suggestion

[4] Context Attentive Document Ranking and Query Suggestion

[5] A Hierarchical Recurrent Encoder-Decoder for Generative Context-Aware Query Suggestion

[6] RIN- Reformulation Inference Network for Context-Aware Query Suggestion

[7] Click Feedback-Aware Query Recommendation Using Adversarial Examples

[8] ReQue- A Configurable Workflow and Dataset Collection for Query Refinement

[9] Learning User Reformulation Behavior for Query Auto-Completion

[10] Learning to A‚ttend, Copy, and Generate for Session-Based ƒery Suggestion

[11] Click Feedback-Aware Query Recommendation Using Adversarial Examples


本文地址:https://www.6aiq.com/article/1605633072404
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出