├── search_engine ├── img │ ├── 微信截图_20210625202504.png │ ├── 微信截图_20210625204123.png │ ├── 微信截图_20210626142753.png │ ├── 微信截图_20210626144431.png │ ├── 微信截图_20210626144624.png │ ├── 微信截图_20210626144819.png │ ├── 微信截图_20210626144853.png │ └── 微信截图_20210626151100.png ├── REINA │ ├── img │ │ └── 微信截图_20220403133813.png │ └── readme.md ├── PLMbasedRankingInBaiduSearch │ ├── img │ │ ├── 微信截图_20211108104430.png │ │ ├── 微信截图_20211108104855.png │ │ ├── 微信截图_20211108110345.png │ │ └── 微信截图_20211108110953.png │ └── readme.md ├── PLMforWeb-scaleRetrievalInBaiduSearch │ ├── img │ │ ├── 微信截图_20211109101330.png │ │ ├── 微信截图_20211109102419.png │ │ ├── 微信截图_20211109104617.png │ │ ├── 微信截图_20211109110236.png │ │ ├── 微信截图_20211109111911.png │ │ ├── 微信截图_20211109112450.png │ │ ├── 微信截图_20211109114158.png │ │ ├── 微信截图_20211109114540.png │ │ ├── 微信截图_20211109124829.png │ │ ├── 微信截图_20211109125028.png │ │ ├── 微信截图_20211109125514.png │ │ ├── 微信截图_20211109125538.png │ │ ├── 微信截图_20211109125557.png │ │ ├── 微信截图_20211109125605.png │ │ └── 微信截图_20211109130723.png │ └── readme.md └── readme.md └── README.md /search_engine/img/微信截图_20210625202504.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/img/微信截图_20210625202504.png -------------------------------------------------------------------------------- /search_engine/img/微信截图_20210625204123.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/img/微信截图_20210625204123.png -------------------------------------------------------------------------------- /search_engine/img/微信截图_20210626142753.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/img/微信截图_20210626142753.png -------------------------------------------------------------------------------- /search_engine/img/微信截图_20210626144431.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/img/微信截图_20210626144431.png -------------------------------------------------------------------------------- /search_engine/img/微信截图_20210626144624.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/img/微信截图_20210626144624.png -------------------------------------------------------------------------------- /search_engine/img/微信截图_20210626144819.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/img/微信截图_20210626144819.png -------------------------------------------------------------------------------- /search_engine/img/微信截图_20210626144853.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/img/微信截图_20210626144853.png -------------------------------------------------------------------------------- /search_engine/img/微信截图_20210626151100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/img/微信截图_20210626151100.png -------------------------------------------------------------------------------- /search_engine/REINA/img/微信截图_20220403133813.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/REINA/img/微信截图_20220403133813.png -------------------------------------------------------------------------------- /search_engine/PLMbasedRankingInBaiduSearch/img/微信截图_20211108104430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMbasedRankingInBaiduSearch/img/微信截图_20211108104430.png -------------------------------------------------------------------------------- /search_engine/PLMbasedRankingInBaiduSearch/img/微信截图_20211108104855.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMbasedRankingInBaiduSearch/img/微信截图_20211108104855.png -------------------------------------------------------------------------------- /search_engine/PLMbasedRankingInBaiduSearch/img/微信截图_20211108110345.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMbasedRankingInBaiduSearch/img/微信截图_20211108110345.png -------------------------------------------------------------------------------- /search_engine/PLMbasedRankingInBaiduSearch/img/微信截图_20211108110953.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMbasedRankingInBaiduSearch/img/微信截图_20211108110953.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109101330.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109101330.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109102419.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109102419.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109104617.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109104617.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109110236.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109110236.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109111911.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109111911.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109112450.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109112450.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109114158.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109114158.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109114540.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109114540.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109124829.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109124829.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109125028.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109125028.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109125514.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109125514.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109125538.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109125538.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109125557.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109125557.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109125605.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109125605.png -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109130723.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/km1994/nlp_paper_study_search_engine/HEAD/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/img/微信截图_20211109130723.png -------------------------------------------------------------------------------- /search_engine/REINA/readme.md: -------------------------------------------------------------------------------- 1 | # 【关于 REINA】 那些的你不知道的事 2 | 3 | > 作者:杨夕 4 | > 5 | > 项目地址:https://github.com/km1994/nlp_paper_study 6 | > 7 | > NLP 面经地址:https://github.com/km1994/NLP-Interview-Notes 8 | > 9 | > 个人介绍:大佬们好,我叫杨夕,该项目主要是本人在研读顶会论文和复现经典论文过程中,所见、所思、所想、所闻,可能存在一些理解错误,希望大佬们多多指正。 10 | > 11 | > 论文:Training Data is More Valuable than You Think: A Simple and Effective Method by Retrieving from Training Data 12 | > 13 | > 发表会议:ACL 2022 14 | > 15 | > 论文地址:https://www.microsoft.com/en-us/research/publication/training-data-is-more-valuable-than-you-think-a-simple-and-effective-method-by-retrieving-from-training-data/ 16 | > 17 | > github:https://github.com/microsoft/REINA 18 | 19 | 20 | ## 一、摘要 21 | 22 | Retrieval-based methods have been shown to be effective in NLP tasks via introducing external knowledge. However, the indexing and retrieving of large-scale corpora bring considerable computational cost. Surprisingly, we found that REtrieving from the traINing datA (REINA) only can lead to significant gains on multiple NLG and NLU tasks. We retrieve the labeled training instances most similar to the input text and then concatenate them with the input to feed into the model to generate the output. Experimental results show that this simple method can achieve significantly better performance on a variety of NLU and NLG tasks, including summarization, machine translation, language modeling, and question answering tasks. For instance, our proposed method achieved state-of-the-art results on XSum, BigPatent, and CommonsenseQA. 23 | 24 | - 动机:通过引入外部知识,基于检索的方法已被证明在 NLP 任务中是有效的。然而,大规模语料库的索引和检索带来了相当大的计算成本。 25 | - 论文方法:发现从训练数据 (REINA) 中检索只能导致多项 NLG 和 NLU 任务的显着收益。检索与输入文本最相似的标记训练实例,然后将它们与输入连接起来以馈入模型以生成输出。 26 | - 实验结果表明,这种简单的方法可以在各种 NLU 和 NLG 任务上取得明显更好的性能,包括摘要、机器翻译、语言建模和问答任务。例如,我们提出的方法在 XSum、BigPatent 和 CommonsenseQA 上取得了最先进的结果。 27 | 28 | ## 二、论文动机 29 | 30 | - 通过引入外部知识,基于检索的方法已被证明在 NLP 任务中是有效的。然而,大规模语料库的索引和检索带来了相当大的计算成本。 31 | 32 | ## 三、论文方法 33 | 34 | 1. 先把训练集构建为[key,value]的形式、其中key、value分别为原任务的输入输出; 35 | 2. 之后,对于每个新的输入 x ,REINA会去[key,value]集合里面检索和 x 最相似的K个key,并把其对应的value 与输入 x 做拼接,构造新的输入值(比如 [x1,v1,...,vK] )来精调训练模型、或者做测试推理。注意做精调训练时,需要在检索到的top K value集中过滤掉真实值(即训练输入 x 对应的Ground Truth)。 36 | 37 | ![](img/微信截图_20220403133813.png) 38 | 39 | ## 四、实验结果 40 | 41 | 42 | 43 | ## 五、总结 44 | 45 | 46 | 47 | ## 参考资料 48 | 49 | 1. [RelationPrompt:通过提示语言模型的数据生成来解决零样本关系三元组抽取任务](https://zhuanlan.zhihu.com/p/490792345) -------------------------------------------------------------------------------- /search_engine/PLMbasedRankingInBaiduSearch/readme.md: -------------------------------------------------------------------------------- 1 | # 【关于 PLM based Ranking in Baidu Search 】 那些你不知道的事 2 | 3 | > 作者:杨夕 4 | > 5 | > 论文:Pre-trained Language Model based Ranking in Baidu Search 6 | > 7 | > 论文地址:https://arxiv.org/abs/2105.11108 8 | > 9 | > 论文出处:KDD'21 10 | > 11 | > 项目地址:https://github.com/km1994/nlp_paper_study 12 | > 13 | > NLP 面经地址:https://github.com/km1994/NLP-Interview-Notes 14 | > 15 | > 推荐系统 百面百搭:https://github.com/km1994/RES-Interview-Notes 16 | > 17 | > 个人介绍:大佬们好,我叫杨夕,该项目主要是本人在研读顶会论文和复现经典论文过程中,所见、所思、所想、所闻,可能存在一些理解错误,希望大佬们多多指正。 18 | 19 | 20 | ## 一、摘要 21 | 22 | - 动机: 23 | - 作为搜索引擎的核心, Ranking System 在满足用户的信息需求方面起着至关重要的作用; 24 | - 基于 PLM 的 Neural Rankers 难以直接应用: 25 | - (1)推理时延高:大规模神经 PLM 的计算成本过高,尤其是对于网络文档中的长文本,禁止将它们部署在需要极低延迟的 Online Ranking System 中; 26 | - (2) 目标不一致问题:基于 PLM 的训练目标 与 临时检索场景目标 存在不一致问题; 27 | - (3) 兼容性问题:搜索引擎通常涉及 committee of ranking components,如何 让 Fine-tuning PLM 得到的 Ranking System 与其 兼容,存在问题; 28 | - 论文方法:在线搜索引擎系统中部署最先进的中文预训练语言模型(即 ERNIE)时,贡献了一系列成功应用的技术来解决这些暴露的问题。 29 | - 首先,阐述了一种新颖的做法,以经济高效地汇总 Web 文档,并使用廉价但功能强大的 Pyramid-ERNIE 架构将结果汇总内容与查询联系起来。 30 | - 然后,赋予了一种创新范式来精细地利用大规模嘈杂和有偏见的点击后行为数据进行面向相关的预训练。 31 | - 提出了一种 针对 在线排名系统 的 human-anchored 微调策略 ,旨在稳定各种在线组件的排名信号。 32 | - 实验结果:大量的离线和在线实验结果表明,所提出的技术显着提高了搜索引擎的性能。 33 | 34 | ## 二、动机 35 | 36 | 1. 传统的排序方法,依赖于人工制造的特征这很容易丢失query与doc之间的语义关系; 37 | 2. 基于 PLM 的 Neural Rankers 虽然 能够 捕获 query 和 doc 间 的 语义关系,但是 如果直接 应用于 Online Ranking System 存在以下问题: 38 | - (1)推理时延高:大规模神经 PLM 的计算成本过高,尤其是对于网络文档中的长文本,禁止将它们部署在需要极低延迟的 Online Ranking System 中; 39 | - (2) 目标不一致问题:基于 PLM 的训练目标 与 临时检索场景目标 存在不一致问题; 40 | - (3) 兼容性问题:搜索引擎通常涉及 committee of ranking components,如何 让 Fine-tuning PLM 得到的 Ranking System 与其 兼容,存在问题; 41 | 42 | ## 三、论文贡献 43 | 44 | 1. Content-aware Pyramid-ERNIE: 45 | 1. QUITE算法:快速提取 doc 和 query 摘要信息; 46 | 2. Pyramid-ERNIE 架构:快速计算 doc 和 query 间 相关性; 47 | 2. Relevance-oriented Pre-training:设计了一种创新的面向相关性的预训练范式来精细地 挖掘 大规模的点击后行为数据(校准嘈杂和有偏见的用户点击),以对齐人类专家 标注 的相关性信号; 48 | 3. Human-anchored Fine-tuning:利用 human-anchored 微调策略,并进一步减轻 目标不一致问题 问题. 49 | 50 | ## 四、方法解读 51 | 52 | ### 4.1 Content-aware Pyramid-ERNIE 53 | 54 | #### 4.1.1 动机 55 | 56 | - 现有的 large-scale search system, 只 计算 query 和 doc 的 title,并用 该分数 来 表示 query 和 doc 内容的相关性,存在问题: 57 | - doc 的 title 和 content 可能存在差异性 问题; 58 | - doc 的 content 长度太长,以至于 高计算复杂度 问题; 59 | 60 | #### 4.1.2 QUery-WeIghted SummaryExTraction (QUITE) 61 | 62 | - 动机: 63 | - content 过长; 64 | - content 只有部分段落 包含 关键信息; 65 | - 方法:使用 QUITE 方法 提取出 doc content 的摘要 66 | 67 | ![](img/微信截图_20211108104430.png) 68 | 69 | #### 4.1.3 Pyramid-ERNIE 70 | 71 | 利用 Pyramid-ERNIE 计算 query 与 doc 的 title 和 content summary 的 相关性 72 | 73 | ![](img/微信截图_20211108104855.png) 74 | 75 | ### 4.2 Relevance-Oriented Pre-training withCalibrated Large-Scale User Clicks 76 | 77 | - 动机:PLM 直接学习 点击行为 来 学习 Ranking 信息 存在问题: 78 | - 点击数据中包含大量的假正例,也就是噪声信息; 79 | - 曝光偏置问题,线上得到曝光的商品往往有更多的点击行为,盲目学习线上行为可能导致离线评估和线上指标的不一致 80 | - 点击行为与query文本相关性可能是不一致的,这点妨碍了与训练模型直接学习点击数据 81 | - 解决方法:利用一些后验特征 来判定 点击行为(eg:点击跳过比率,停留时间等) 与 query-doc 的 相关性 82 | 83 | 1. 人工标注 7w query-doc pair; 84 | 2. 利用 这些标注数据 训练 一个五分类的基于树的点击矫正模型; 85 | 3. 使用该模型预测大量的未标注数据; 86 | 4. 最终得到了矫正数据,然后进行PLM的训练。训练使用的是triplet loss。 87 | 88 | ![](img/微信截图_20211108110345.png) 89 | 90 | ### 4.3 Human-anchored Fine-Tuning 91 | 92 | - 动机:兼容性问题:搜索引擎通常涉及 committee of ranking components,如何 让 Fine-tuning PLM 得到的 Ranking System 与其 兼容,存在问题; 93 | - 方法:利用 human-anchored 微调策略 94 | - 人工标注 1kw query-doc pair 训练 Pyramid-ERNIE 95 | - 损失函数:pairwise and pointwise loss 96 | 97 | ![](img/微信截图_20211108110953.png) 98 | 99 | 100 | ## 参考 101 | 102 | 1. [Pre-trained Language Model based Ranking in Baidu Search](https://arxiv.org/abs/2105.11108) 103 | 2. [论文笔记 | Pre-trained Language Model based Ranking in Baidu Search](https://zhuanlan.zhihu.com/p/386780882) 104 | 105 | 106 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 【关于 NLP】 那些你不知道的事 —— 搜索引擎篇 2 | 3 | > 作者:杨夕 4 | > 5 | > 介绍:研读顶会论文,复现论文相关代码 6 | > 7 | > NLP 百面百搭 地址:https://github.com/km1994/NLP-Interview-Notes 8 | > 9 | > **[手机版NLP百面百搭](https://mp.weixin.qq.com/s?__biz=MzAxMTU5Njg4NQ==&mid=100005719&idx=3&sn=5d8e62993e5ecd4582703684c0d12e44&chksm=1bbff26d2cc87b7bf2504a8a4cafc60919d722b6e9acbcee81a626924d80f53a49301df9bd97&scene=18#wechat_redirect)** 10 | > 11 | > 推荐系统 百面百搭 地址:https://github.com/km1994/RES-Interview-Notes 12 | > 13 | > **[手机版推荐系统百面百搭](https://mp.weixin.qq.com/s/b_KBT6rUw09cLGRHV_EUtw)** 14 | > 15 | > 搜索引擎 百面百搭 地址:https://github.com/km1994/search-engine-Interview-Notes 【编写ing】 16 | > 17 | > NLP论文学习笔记:https://github.com/km1994/nlp_paper_study 18 | > 19 | > 推荐系统论文学习笔记:https://github.com/km1994/RS_paper_study 20 | > 21 | > GCN 论文学习笔记:https://github.com/km1994/GCN_study 22 | > 23 | > **推广搜 军火库**:https://github.com/km1994/recommendation_advertisement_search 24 | ![](other_study/resource/pic/微信截图_20210301212242.png) 25 | 26 | > 手机版笔记,可以关注公众号 **【关于NLP那些你不知道的事】** 获取,并加入 【NLP && 推荐学习群】一起学习!!! 27 | 28 | > 注:github 网页版 看起来不舒服,可以看 **[手机版NLP论文学习笔记](https://mp.weixin.qq.com/s?__biz=MzAxMTU5Njg4NQ==&mid=100005719&idx=1&sn=14d34d70a7e7cbf9700f804cca5be2d0&chksm=1bbff26d2cc87b7b9d2ed12c8d280cd737e270cd82c8850f7ca2ee44ec8883873ff5e9904e7e&scene=18#wechat_redirect)** 29 | 30 | 31 | - [【关于 NLP】 那些你不知道的事 —— 搜索引擎篇](#关于-nlp-那些你不知道的事--搜索引擎篇) 32 | - [介绍](#介绍) 33 | - [NLP 学习篇](#nlp-学习篇) 34 | - [理论学习篇](#理论学习篇) 35 | - [【关于 搜索引擎】那些你不知道的事](#关于-搜索引擎那些你不知道的事) 36 | - [参考资料](#参考资料) 37 | 38 | ## 介绍 39 | 40 | ### NLP 学习篇 41 | 42 | #### 理论学习篇 43 | 44 | ##### [【关于 搜索引擎】那些你不知道的事](https://github.com/km1994/nlp_paper_study_search_engine) 45 | 46 | - [【关于 搜索引擎】 那些你不知道的事](https://github.com/km1994/nlp_paper_study_search_engine/) 47 | - [搜索系统的架构设计](#搜索系统的架构设计) 48 | - [搜索 QP(query理解)的架构设计](#搜索-qpquery理解的架构设计) 49 | - [搜索j介绍](#搜索j介绍) 50 | - [搜索排序 介绍](#搜索排序-介绍) 51 | - [Embedding 搜索](#embedding-搜索) 52 | - [动机](#动机) 53 | - [Embedding 搜索优点](#embedding-搜索优点) 54 | - [Embedding的学习形式](#embedding的学习形式) 55 | - [Embedding 搜索 所关心的问题](#embedding-搜索-所关心的问题) 56 | - [参考资料](#参考资料) 57 | - [Query纠错](#query纠错) 58 | - [Query纠错 之 原理](#query纠错-之--原理) 59 | - [Query纠错 之 文本错误类型](#query纠错-之-文本错误类型) 60 | - [动机](#动机-1) 61 | - [常见的错误类型](#常见的错误类型) 62 | - [Query纠错 之 纠错结果类型](#query纠错-之-纠错结果类型) 63 | - [动机](#动机-2) 64 | - [介绍](#介绍) 65 | - [纠错结果类型](#纠错结果类型) 66 | - [搜索引擎两大问题](#搜索引擎两大问题) 67 | - [问题一:召回](#问题一召回) 68 | - [什么是召回?](#什么是召回) 69 | - [基于关键词的召回方法](#基于关键词的召回方法) 70 | - [什么是 基于关键词的召回方法 ?](#什么是-基于关键词的召回方法-) 71 | - [基于关键词的召回方法存在哪些问题?](#基于关键词的召回方法存在哪些问题) 72 | - [Q1:索引粒度如何选择问题](#q1索引粒度如何选择问题) 73 | - [Q2:保证 召回 有相关文档数问题](#q2保证-召回-有相关文档数问题) 74 | - [Q3:召回 候选 query 多样性问题](#q3召回-候选-query-多样性问题) 75 | - [Q4:召回 候选 query 无语义效果问题](#q4召回-候选-query-无语义效果问题) 76 | - [基于语义的召回方法](#基于语义的召回方法) 77 | - [什么是 基于语义的召回方法?](#什么是-基于语义的召回方法) 78 | - [基于语义的召回方法 的思路](#基于语义的召回方法-的思路) 79 | - [基于语义的召回方法 存在问题](#基于语义的召回方法-存在问题) 80 | - [参考资料](#参考资料-1) 81 | - [问题二:相关性](#问题二相关性) 82 | - [什么是 相关性?](#什么是-相关性) 83 | - [相关性 存在哪些问题?](#相关性-存在哪些问题) 84 | - [相关性方法介绍](#相关性方法介绍) 85 | - [计算场景角度](#计算场景角度) 86 | - [计算方法角度](#计算方法角度) 87 | - [参考资料](#参考资料-2) 88 | - [搜索未来新趋势](#搜索未来新趋势) 89 | - [1. 多模态搜索](#1-多模态搜索) 90 | - [2. 更语义搜索](#2-更语义搜索) 91 | - [3。 多轮搜索](#3-多轮搜索) 92 | 93 | - [【关于 GECToR】 那些你不知道的事](https://github.com/km1994/nlp_paper_study_search_engine/tree/master/search_engine/PLMbasedRankingInBaiduSearch/) 94 | - 论文:Pre-trained Language Model based Ranking in Baidu Search 95 | - 论文地址:https://arxiv.org/abs/2105.11108 96 | - 论文出处:KDD'21 97 | - 动机: 98 | - 作为搜索引擎的核心, Ranking System 在满足用户的信息需求方面起着至关重要的作用; 99 | - 基于 PLM 的 Neural Rankers 难以直接应用: 100 | - (1)推理时延高:大规模神经 PLM 的计算成本过高,尤其是对于网络文档中的长文本,禁止将它们部署在需要极低延迟的 Online Ranking System 中; 101 | - (2) 目标不一致问题:基于 PLM 的训练目标 与 临时检索场景目标 存在不一致问题; 102 | - (3) 兼容性问题:搜索引擎通常涉及 committee of ranking components,如何 让 Fine-tuning PLM 得到的 Ranking System 与其 兼容,存在问题; 103 | - 论文方法:在线搜索引擎系统中部署最先进的中文预训练语言模型(即 ERNIE)时,贡献了一系列成功应用的技术来解决这些暴露的问题。 104 | - 首先,阐述了一种新颖的做法,以经济高效地汇总 Web 文档,并使用廉价但功能强大的 Pyramid-ERNIE 架构将结果汇总内容与查询联系起来。 105 | - 然后,赋予了一种创新范式来精细地利用大规模嘈杂和有偏见的点击后行为数据进行面向相关的预训练。 106 | - 提出了一种 针对 在线排名系统 的 human-anchored 微调策略 ,旨在稳定各种在线组件的排名信号。 107 | - 实验结果:大量的离线和在线实验结果表明,所提出的技术显着提高了搜索引擎的性能。 108 | 109 | - [【关于 PLM for Web-scale Retrieval in Baidu Search 】 那些你不知道的事](https://github.com/km1994/nlp_paper_study_search_engine/tree/master/search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/) 110 | - 论文:Pre-trained Language Model for Web-scale Retrieval in Baidu Search 111 | - 论文地址:https://arxiv.org/abs/2106.03373 112 | - 论文出处:KDD'21 113 | - 介绍: Retrieval 是网络搜索中的一个关键阶段,它从十亿规模的语料库中识别出一个与查询相关的候选集。在 retrieval 阶段发现更多语义相关的候选集 有助于 向最终用户展示更多高质量的结果。 114 | - 动机: 115 | - 【语义匹配】:**如何 解决 用户 query 多样化和口语化问题?** 116 | - 【冷启动问题】:**对于 大多数 第一次出现的 query 和 doc,如何让 Retrieval Models 捕获 其对应语义信息?** 117 | - 【工程实践】:**如何 将 Retrieval Models 应用于 Baidu Search?** 118 | - 论文方法:论文描述了作者在 Baidu Search 中开发和部署的 Retrieval Models 。 119 | - 该系统利用了最近最先进的中文预训练语言模型,即通过知识整合 (ERNIE) 的增强表示,它促进了系统的表达语义匹配。 120 | - 基于 ERNIE 的 Retrieval Models 拥有: 121 | - 1)expressive Transformer-based semantic encoders:能够 帮助 Retrieval 充分捕获 query 和 doc 对应语义信息; 122 | - 2)多阶段训练范式:ERNIE 预训练模型 分别采用 不同的语料数据 进行 多阶段训练,提高模型 泛化能力; 123 | - 系统工作流程:基于 ERNIE 的 Retrieval Models 结合 传统 Retrieval Models 和 Deep Retrieval Models,并 采用 lightweight post-retrieval filtering module 引入更多的统计特征(例如,点击率、停留时间),来对上述 Retrieval Models 的 检索结果 进行 统一过滤,; 124 | - 最终,该系统完全部署到生产环境中,并进行了严格的离线和在线实验。 125 | - 实验结果: 126 | - 该系统可以执行高质量的候选 retrieval ,特别是对于那些需求不常见的尾部查询。 127 | - 由预训练语言模型(即 ERNIE)推动的新 retrieval system 可以在很大程度上提高我们搜索引擎的可用性和适用性。 128 | 129 | 130 | ## 参考资料 131 | 132 | 1. [【ACL2020放榜!】事件抽取、关系抽取、NER、Few-Shot 相关论文整理](https://www.pianshen.com/article/14251297031/) 133 | 2. [第58届国际计算语言学协会会议(ACL 2020)有哪些值得关注的论文?](https://www.zhihu.com/question/385259014) 134 | -------------------------------------------------------------------------------- /search_engine/PLMforWeb-scaleRetrievalInBaiduSearch/readme.md: -------------------------------------------------------------------------------- 1 | # 【关于 PLM for Web-scale Retrieval in Baidu Search 】 那些你不知道的事 2 | 3 | > 作者:杨夕 4 | > 5 | > 论文:Pre-trained Language Model for Web-scale Retrieval in Baidu Search 6 | > 7 | > 论文地址:https://arxiv.org/abs/2106.03373 8 | > 9 | > 论文出处:KDD'21 10 | > 11 | > 项目地址:https://github.com/km1994/nlp_paper_study 12 | > 13 | > NLP 面经地址:https://github.com/km1994/NLP-Interview-Notes 14 | > 15 | > 推荐系统 百面百搭:https://github.com/km1994/RES-Interview-Notes 16 | > 17 | > 个人介绍:大佬们好,我叫杨夕,该项目主要是本人在研读顶会论文和复现经典论文过程中,所见、所思、所想、所闻,可能存在一些理解错误,希望大佬们多多指正。 18 | 19 | 20 | ## 一、引言 21 | 22 | - 介绍: Retrieval 是网络搜索中的一个关键阶段,它从十亿规模的语料库中识别出一个与查询相关的候选集。在 retrieval 阶段发现更多语义相关的候选集 有助于 向最终用户展示更多高质量的结果。 23 | - 动机: 24 | - 【语义匹配】:**如何 解决 用户 query 多样化和口语化问题?** 25 | - 【冷启动问题】:**对于 大多数 第一次出现的 query 和 doc,如何让 Retrieval Models 捕获 其对应语义信息?** 26 | - 【工程实践】:**如何 将 Retrieval Models 应用于 Baidu Search?** 27 | - 论文方法:论文描述了作者在 Baidu Search 中开发和部署的 Retrieval Models 。 28 | - 该系统利用了最近最先进的中文预训练语言模型,即通过知识整合 (ERNIE) 的增强表示,它促进了系统的表达语义匹配。 29 | - 基于 ERNIE 的 Retrieval Models 拥有: 30 | - 1)expressive Transformer-based semantic encoders:能够 帮助 Retrieval 充分捕获 query 和 doc 对应语义信息; 31 | - 2)多阶段训练范式:ERNIE 预训练模型 分别采用 不同的语料数据 进行 多阶段训练,提高模型 泛化能力; 32 | - 系统工作流程:基于 ERNIE 的 Retrieval Models 结合 传统 Retrieval Models 和 Deep Retrieval Models,并 采用 lightweight post-retrieval filtering module 引入更多的统计特征(例如,点击率、停留时间),来对上述 Retrieval Models 的 检索结果 进行 统一过滤,; 33 | - 最终,该系统完全部署到生产环境中,并进行了严格的离线和在线实验。 34 | - 实验结果: 35 | - 该系统可以执行高质量的候选 retrieval ,特别是对于那些需求不常见的尾部查询。 36 | - 由预训练语言模型(即 ERNIE)推动的新 retrieval system 可以在很大程度上提高我们搜索引擎的可用性和适用性。 37 | 38 | ## 二、动机 39 | 40 | - 【语义匹配】:**如何 解决 用户 query 多样化和口语化问题?** 41 | - 【冷启动问题】:**对于 大多数 第一次出现的 query 和 doc,如何让 Retrieval 捕获 其对应语义信息?** 42 | - 【工程实践】:**如何 将 Retrieval 模型 应用于 Baidu Search?** 43 | 44 | ## 三、论文方法 45 | 46 | - 基于 ERNIE 的 Retrieval Models 拥有: 47 | - 1)expressive Transformer-based semantic encoders:能够 帮助 Retrieval 充分捕获 query 和 doc 对应语义信息; 48 | - 2)多阶段训练范式:ERNIE 预训练模型 分别采用 不同的语料数据 进行 多阶段训练,提高模型 泛化能力; 49 | - 系统工作流程:基于 ERNIE 的 Retrieval Models 结合 传统 Retrieval Models 和 Deep Retrieval Models,并 采用 lightweight post-retrieval filtering module 引入更多的统计特征(例如,点击率、停留时间),来对上述 Retrieval Models 的 检索结果 进行 统一过滤,; 50 | - 最终,该系统完全部署到生产环境中,并进行了严格的离线和在线实验。 51 | 52 | ## 四、论文细节分析 53 | 54 | ### 4.1 检索模型 55 | 56 | #### 4.1.1 任务定义 57 | 58 | - 任务:对于 给定 query q,Retrieval Models 如何 从 大规模的 Corpus D 中 检索出 相关候选文档集; 59 | - 公式定义:计算 query 与 doc 间的 相关性分数: 60 | 61 | ![](img/微信截图_20211109101330.png) 62 | 63 | #### 4.1.2 模型结构介绍 64 | 65 | 1. 参数共享:query 和 doc 共享 bi-encoder(ERNIE) 的网络参数。以此降低 模型参数量,以控制 模型复杂度; 66 | 2. 先验知识引入:将 先验知识 引入 模型,以 正则化模型 和 节约 存储空间; 67 | 3. Poly attention:利用 Poly attention 计算 query 和 doc 间相似度分数,为建模查询语义提供了更大的灵活性。 68 | 69 | #### 4.1.3 模型训练介绍 70 | 71 | ![](img/微信截图_20211109102419.png) 72 | 73 | 1. 全局上下文特征提取:每个 $c_i$ 通过 关注 所有 query encoder {C, F1,...,FN} 来 提取 全局上下文特征; 74 | 75 | ![](img/微信截图_20211109104617.png) 76 | 77 | > 注:所有查询词语义的不同聚合,反映了 fine-grained 的查询需求。 78 | 79 | 1. query和doc的相关性得分计算: 使用 dot-produc 将每个全局上下文特征与 doc 表示进行比较,然后进行 max-pooling 以最终确定相关性分数 80 | 81 | ![](img/微信截图_20211109110236.png) 82 | 83 | #### 4.1.4 模型预测介绍 84 | 85 | ![](img/微信截图_20211109111911.png) 86 | 87 | - 动机:在检索/预测阶段,由于实际问题,论文采用了略有不同的策略。在具有海量网络文档的实际应用中,**必须预先计算文档表示以构建索引,从而通过快速最近邻搜索实现高效检索**。在这种情况下,基于等式(3)的相关性计算显然是不可行的,因为**现有的索引方案很难支持这种具有最大池化的度量**。 88 | - 解决方法:对 query 端的多个输出 emb 做 Mean-pooling,然后与doc向量的相关性得分 89 | 90 | ![](img/微信截图_20211109112450.png) 91 | 92 | - 优点:利用基于索引的最近邻搜索,极大地提高了模型的适用性。 93 | 94 | > 备注:前面已经提到,在训练和预测阶段之间计算相关性分数是不一致的。在实践中,论文 发现这种不一致不会破坏语义检索的模型性能。因此,通过上下文代码学习到的bagging distinct features ,论文可以实现查询的更好、更异构的表示,从而与文档的语义匹配更强大。 95 | 96 | #### 4.1.5 Optimization 97 | 98 | - maximum likelihood estimation 引入:最大化 query 检索正例的概率和 99 | 100 | ![](img/微信截图_20211109114158.png) 101 | 102 | - contrastive probability 引入: 103 | - 动机:如何 将 相关doc 和 不相关的doc 分开 104 | - 方法:利用 contrastive probability 计算 query召回单个正例的概率: 105 | 106 | ![](img/微信截图_20211109114540.png) 107 | 108 | > 其中 t 是温度,越大得到的softmax概率越平滑。 109 | 110 | ### 4.2 Training Data Mining 111 | 112 | - 训练数据 挖掘: 113 | - 搜索日志数据,其中使用点击信号记录查询和文档,即用户是否点击了文档。对于每个查询,我们将那些点击的 doc 作为正面,将那些曝光未点击的 doc 作为负面,因为 clicks 可以 粗略地表明了用户意图的满意度; 114 | - 人工标注数据:人工将doc分为0-4分,然后得分高的样本为正样本,得分低的样本为负样本 115 | 116 | - In-batch negative mining 117 | - 动机:online retrieval 会检索出 大量不相关 的 doc; 118 | - 做法:为了模仿这种环境,使用batch内负采样的到无关的样本。为了更好区分,将一个query下: 119 | - strong negative:曝光未点击的样本和评分较低的样本; 120 | - random negative:batch 内其他 query 的正样本和负样本; 121 | 122 | ![](img/微信截图_20211109124829.png) 123 | 124 | ### 4.3 TRAINING PARADIGM 125 | 126 | ![](img/微信截图_20211109125028.png) 127 | 128 | #### 4.3.1 Stage 1: Pretraining 129 | 130 | ![](img/微信截图_20211109125514.png) 131 | 132 | 使用百科,新闻等数据进行预训练,从而获得通用的语言知识,可以提升模型的泛化性; 133 | 134 | #### 4.3.2 Stage 2: Post-pretraining 135 | 136 | ![](img/微信截图_20211109125538.png) 137 | 138 | 使用搜索的query和title进行预训练,更符合搜索场景下的语料分布; 139 | 140 | #### 4.3.3 Stage 3: Intermediate Fine-tuning 141 | 142 | ![](img/微信截图_20211109125557.png) 143 | 144 | 基于海量的点击日志进行微调,这个任务更加接近最终的微调任务,可以让最终结果表现的更好,收敛也更快; 145 | 146 | #### 4.3.4 Stage 4: Target Fine-tuning 147 | 148 | ![](img/微信截图_20211109125605.png) 149 | 150 | 基于小规模精标数据上进行微调 151 | 152 | ### 4.4 DEPLOYMENT 153 | 154 | #### 4.4.1 Embedding Compression and Quantization 155 | 156 | - 动机:由于 PLM 模型太大,而且计算复杂,所以 离线doc 侧的存储消耗过大 以及 线上query侧传输和检索耗时 问题 157 | - 解决方法: 158 | - Compression:使用mlp对 ERNIE 输出进行 Compression ,从768到256,最终效果有一定损失但效率提升了3倍 159 | - Quantization:使用int8 量化技术 应用于输出 embedding,效率提升了4倍 160 | 161 | #### 4.4.2 System Workflow 162 | 163 | - 动机:无论是 传统 Retrieval Models 和 Deep Retrieval Models 都无法处理所有类型的查询。相反,将两种类型的检索方法集成在一起更有希望提供更好的整体性能 164 | 165 | ![](img/微信截图_20211109130723.png) 166 | 167 | - offline and online stages 168 | - Offline database and index construction:根据 语义匹配模型 预先计算好doc的Embedding,然后构建Embedding ANN Indexes用于向量检索,构建Embedding Database用于在过滤阶段计算语义特征; 169 | - Online integrated retrieval:在线计算query的向量,然后检索得到最近的doc,这部分doc与文本匹配得到的doc一起进入召回候选集合; 170 | - ERNIE-enhanced post-retrieval filtering:对于候选集合的doc,使用统计特征和语义特征计算得分,然后过滤掉一部分doc进入下面的排序阶段 171 | 172 | ## 参考 173 | 174 | 1. [Pre-trained Language Model for Web-scale Retrieval in Baidu Search](https://arxiv.org/abs/2106.03373) 175 | 2. [论文笔记 | Pre-trained Language Model for Web-scale Retrieval in Baidu Search](https://zhuanlan.zhihu.com/p/386584736) 176 | 3. [大规模搜索+预训练,百度是如何落地的?](https://mp.weixin.qq.com/s?__biz=MzIxMzkwNjM2NQ==&mid=2247504279&idx=1&sn=8d02ecbde4076932d4d5260379d32780&chksm=97ad3745a0dabe532b697b4407c4f947ce94a5a6a6cae0df534fd290a97fd2bdd2467bd81e86&scene=21#wechat_redirect) 177 | 4. [向量召回 - 基于内容的embedding训练](https://mp.weixin.qq.com/s/ggWHuUh7_1pNqnza1QQPjg) -------------------------------------------------------------------------------- /search_engine/readme.md: -------------------------------------------------------------------------------- 1 | # 【关于 搜索引擎】 那些你不知道的事 2 | 3 | - [【关于 搜索引擎】 那些你不知道的事](#关于-搜索引擎-那些你不知道的事) 4 | - [搜索系统的架构设计](#搜索系统的架构设计) 5 | - [搜索 QP(query理解)的架构设计](#搜索-qpquery理解的架构设计) 6 | - [搜索j介绍](#搜索j介绍) 7 | - [搜索排序 介绍](#搜索排序-介绍) 8 | - [Embedding 搜索](#embedding-搜索) 9 | - [动机](#动机) 10 | - [Embedding 搜索优点](#embedding-搜索优点) 11 | - [Embedding的学习形式](#embedding的学习形式) 12 | - [Embedding 搜索 所关心的问题](#embedding-搜索-所关心的问题) 13 | - [参考资料](#参考资料) 14 | - [Query纠错](#query纠错) 15 | - [Query纠错 之 原理](#query纠错-之--原理) 16 | - [Query纠错 之 文本错误类型](#query纠错-之-文本错误类型) 17 | - [动机](#动机-1) 18 | - [常见的错误类型](#常见的错误类型) 19 | - [Query纠错 之 纠错结果类型](#query纠错-之-纠错结果类型) 20 | - [动机](#动机-2) 21 | - [介绍](#介绍) 22 | - [纠错结果类型](#纠错结果类型) 23 | - [搜索引擎两大问题](#搜索引擎两大问题) 24 | - [问题一:召回](#问题一召回) 25 | - [什么是召回?](#什么是召回) 26 | - [基于关键词的召回方法](#基于关键词的召回方法) 27 | - [什么是 基于关键词的召回方法 ?](#什么是-基于关键词的召回方法-) 28 | - [基于关键词的召回方法存在哪些问题?](#基于关键词的召回方法存在哪些问题) 29 | - [Q1:索引粒度如何选择问题](#q1索引粒度如何选择问题) 30 | - [Q2:保证 召回 有相关文档数问题](#q2保证-召回-有相关文档数问题) 31 | - [Q3:召回 候选 query 多样性问题](#q3召回-候选-query-多样性问题) 32 | - [Q4:召回 候选 query 无语义效果问题](#q4召回-候选-query-无语义效果问题) 33 | - [基于语义的召回方法](#基于语义的召回方法) 34 | - [什么是 基于语义的召回方法?](#什么是-基于语义的召回方法) 35 | - [基于语义的召回方法 的思路](#基于语义的召回方法-的思路) 36 | - [基于语义的召回方法 存在问题](#基于语义的召回方法-存在问题) 37 | - [参考资料](#参考资料-1) 38 | - [问题二:相关性](#问题二相关性) 39 | - [什么是 相关性?](#什么是-相关性) 40 | - [相关性 存在哪些问题?](#相关性-存在哪些问题) 41 | - [相关性方法介绍](#相关性方法介绍) 42 | - [计算场景角度](#计算场景角度) 43 | - [计算方法角度](#计算方法角度) 44 | - [参考资料](#参考资料-2) 45 | - [搜索未来新趋势](#搜索未来新趋势) 46 | - [1. 多模态搜索](#1-多模态搜索) 47 | - [2. 更语义搜索](#2-更语义搜索) 48 | - [3。 多轮搜索](#3-多轮搜索) 49 | 50 | ## 搜索系统的架构设计 51 | 52 | - 前言:搜索系统 是由 多个处理不同任务的模块构成,多个模块相互配合和兜底返回用户看到的结果。 53 | - 本质:召回+排序(可以应用于 推荐系统、计算广告等任务) 54 | 55 | ![](img/微信截图_20210625202504.png) 56 | 57 | - 搜索系统 处理流程: 58 | 59 | 1. 前端CGI负责接收用户的检索请求,发送至RU模块(ROOT UNIT);【注:RU是一个总控模块,负责和其它模块的调用交互】 60 | 2. RU会请求QP(QUERY PROCESSER)模块获取query的分析结果,生成检索下发项(不止一个),也可以看成是确定检索策略的过程; 61 | 1. 调用 QFRD 模块去获取 query 的**时新性**; 62 | 2. 调用 QC 去获取 query 的**纠错结果**; 63 | 3. RU 利用 QP 生成的检索策略**去索引集群中求交召回**,这里索引集群分为三种类型:【注:这样设计的原因是当全量文章比较多时会对检索造成比较大的压力,实际使用中优先召回GDU中的doc。】 64 | 1. FDU(Fresh Doc Unit)存储一些比较新的文章; 65 | 1. 每个索引集群下面又连着 **feature server(获取离线计算的doc特征,用于排序计算)**和 **doc server(获取doc的正文)**; 66 | 2. GDU存储一些优质的文章; 67 | 3. WDU存储全量的文章。 68 | 4. RU 获取召回结果后,会将 召回 doc 送入到排序模块依次执行以下操作:【注:精排 相对于 粗排 处理的候选 doc 数量降低,所以可以采用 精度更高的模型 和 复杂特征】 69 | 1. 先做 粗排序(query-doc的单点排序); 70 | 2. 然后做 精排序(query-doc list的整体排序)。 71 | 5. RU 会请求 Filter 模块过滤一些非法信息; 72 | 6. 通过 ABU 获取摘要和飘红结果用于搜索结果的展示。其中cache模块的加入可以缩短命中cache的query检索耗时。 73 | 74 | ### 搜索 QP(query理解)的架构设计 75 | 76 | - 介绍:QP(query理解)是搜索系统中一个关键的模块,负责对用户的检索串(query)进行理解,然后将分析结果送至下游模块进行使用; 77 | 78 | ![](img/微信截图_20210625204123.png) 79 | 80 | - 搜索 QP(query理解) 处理流程: 81 | 82 | 1. 首先利用偏运营对 query 进行干预模块,其主要目的是为了及时临时干预出现的一些 badcase。 83 | 2. 同时并行的去调用 QC 纠错和 QFRD 时新性结果,这两个模块相对于其它模块是比较独立的模块,因此可并行调用。 84 | 3. 对query分词后,先对query做意图分类,并利用意图识别结果来指导query中的成分提取。 85 | 4. 在识别成分的基础上对query进行改写,以便进行更好的召回。 86 | 5. 其次并行的去调用同义词、词权重、紧密度模块,在词权重和紧密度结果的基础上,对query进行丢词。 87 | 6. 最后经过后处理模块做一些QP结果的合法性检测和偏业务场景的策略。 88 | 7. 最后综合所有模块的结果形成用于检索下发的QPResult。 89 | 90 | - 举例说明 91 | 92 | ![](img/微信截图_20210626151100.png) 93 | 94 | 95 | ## 搜索j介绍 96 | 97 | ### 搜索排序 介绍 98 | 99 | - 动机:搜索排序 是否就是 相关性排序? 100 | - 介绍:搜索排序 有别于 相关性排序。相关性排序 只是将 和用户输入 query 最相关的检索出来,但是 对于 搜索排序,不仅需要考虑 相关性还需要考虑以下因素: 101 | 102 | 1. **时效性**:当用户在阿里发财报的当天去搜“阿里财报”时,之前发布的财报旧文章从相关性上来说肯定没问题,而用户是想了解最新的财报,所以需要有限把新文章排到前面,这里称为时新性维度,其是衡量搜索引擎对突发性、周期性事件的快速响应程度。时效性检索在总搜索次数中可能占大头,毕竟都是热点事件导流的搜索需求; 103 | 2. **权威性**:耳熟能详的PageRank便是为此而生,更泛的去理解,权威性可以理解成内容质量,如果用户看了一篇高质量的文章、权威的官方解答,相比于看了一篇标题党文章,其体验肯定是截然不同,这里成为权威性,其是衡量搜索引擎对内容质量的理解程度 。同时内容质量也影响着搜索生态是否能健康发展,百度医疗搜索便是一个活生生的例子; 104 | 3. **多样性**:*多样性又可分为话题多样性和资源类型多样性*。 105 | 1. 话题多样性:指当用户输入泛query时,其特点是无明显意图,但存在较多潜在意图。比如搜“糖尿病“,比较理想结果是top结果把关于糖尿病的病因、症状、预防、药物...等都能覆盖,则是一个好的话题多样性。 106 | 2. 资源类型多样性是指,相比于都是文章类的结果,混合着文章、视频、音频等的搜索结果用户体验会更好; 107 | 4. **场景性**:场景性则是具体搜索业务绑定的,也可理解成规则调序。比如置顶、插入在固定位置、根据检索和资源类型预定义一些槽位映射等。尤其当出现类似新冠肺炎的突发事件时,短时间排序模型很难立即调整,通常需要规则调序先顶上。 108 | 109 | - 不同因素间的重要长度: 110 | - 相关性排序保证相关>不相关; 111 | - 时效性排序保证相关&新>相关&旧>不相关; 112 | - 权威性排序保证相关&高质量>相关&低质量>不相关; 113 | - 多样性排序保证相关&多样>相关&重复>不相关; 114 | 115 | - 参考资料 116 | 117 | 1. [搜索排序 = 相关性排序?](https://mp.weixin.qq.com/s/mjLWl0S3rZudlWMnx6sLdA) 118 | 119 | ### Embedding 搜索 120 | 121 | #### 动机 122 | 123 | 万物皆可embedding,尤其在推荐系统中。 124 | 125 | > eg:
126 | > airbnb将user和house表示成向量帮助用户获取更准确的house推荐;
127 | > youtoube将user和video分别表示成向量,提供给用户最好的视频推荐。
128 | 129 | 那在搜索系统中里是否也可以用embedding来表示query和doc,然后进行召回排序?如果此路行的通,那embedding搜索能否革了文本搜索的命? 130 | 131 | #### Embedding 搜索优点 132 | 133 | Embedding有个好处是**方便和统一**,通过端对端的模型训练去学习item的表示。并且加大数据规模,加强计算能力,理论上可以学习到更好的表示。搜索的doc是多种模态的,有文章、视频、图片、音乐… *如果能用embedding统一表示这些多模态的doc,那后面则可以用统一的召回和排序算法。同时也可以避免不同模态doc的字段不可比的问题*,比如视频、图片的文本信息相比于文章是比较少的。然而,笔者先验认为embedding目前还革不了文本搜索的命。 134 | 135 | #### Embedding的学习形式 136 | 137 | 1. 首先学习细粒度的embedding(词/像素...),再根据细粒度embedding去计算更长/复杂item的embedding(句子/文章/图片/视频...),实际中尤其是文本领域大都采用这种方式; 138 | 2. 基于用户行为日志去学习item的整体embedding,比如用户的点击行为可表示成序列,那用户/item则是序列中的元素,那可采用普通的embedding训练方法去获取embedding表示。这种方法需要丰富的用户行为; 139 | 140 | #### Embedding 搜索 所关心的问题 141 | 142 | 1. **Embedding的稳定性**:增删改操作是否影响 Embedding。 143 | 144 | > 比如一篇文章多加上/减去几个无关的字,embedding是否和原embedding很接近,还是抖动很大?
145 | > 比如在电商搜索,item的修改是经常发生的(比如商品的营销标题),修改前后学习到的embedding是否稳定;
146 | > 比如在视频搜索,同一份视频会以加logo,在最前面插入一些广告等方式被复制变成新的视频,这时视频的内容仍然是相似的,embedding学习该怎么去保证学得到相似的表示?
147 | 148 | 2. **长尾的embedding** 149 | 150 | 中长尾问题又是搜索中比较难解决的问题。在文本搜索里,**长尾query难解决主要是没有资源或者query的语义难学习**。但是当长尾query有少量资源时,文本搜索靠文本匹配一定能够将对应doc召回。那embedding是否做到?无论是上文提到的方法1还是方法2,对于中长尾都比较难去学习embedding。 151 | 152 | > 比如query=“科比”的embedding能学习很好,但query=“科比和麦迪单挑谁能更胜一筹”的embedding能否学好就不一定了; 153 | 154 | 3. **搜索强调精准** 155 | 156 | 区别于推荐,**搜索的特性是需要将最相关的item排在top位置**。那embedding检索能够支持这种特性?文本搜索是可以做到,因为最相关的,通常文本匹配度都是匹配比较好的; 157 | 158 | 4. **Embedding能否支持分层计算** 159 | 160 | 文本搜索考虑耗时通常采用分层排序,对大量候选item的轻计算粗排序和少量item的重计算细排序,那么embedding能否支持这种特性还是embedding采用的单层排序就够了? 161 | 162 | 5. **Embedding是单个还是多个** 163 | 164 | item可能不止一个字段,并且不同字段可能反映不同维度的信息。是学习单个统一的embedding还是为不同字段学习多个embedding?如果学习多个embedding,这些embedding该如何融合或者如何在召回和排序中使用。 165 | 166 | 6. **不同模态embedding可比性** 167 | 168 | 如果通过统一模型同时学习不同模态item的embedding,得到的embedding是可比的。但大多场景很难同时学习或者学习复杂度高,并且多模态或多任务方法还不太成熟,单独去学习item的emebedding能否保证可比性? 169 | 170 | 7. **Embedding搜索可控性** 171 | 172 | 本检索在一定程度上是可控的,因为召回的item和query是至少存在共同的词。Embedding通过向量相似度计算并不能保证一定存在共同的词,那会不会误召回一些很飘的item?碰到这种badcase该如何解决? 173 | 174 | 8. **Embedding能否解决一词多义** 175 | 176 | embedding在多词一义上取得了不错的效果,但是对于消歧问题呢?目前来看,其还只能覆盖一些非常明显的歧义case,比如苹果、黎明… 177 | 178 | 9. **Embedding扩展性** 179 | 180 | 除了相关性,embedding是否能cover排序的其他因子呢?比如时新性、多样性...:文本检索在一定程度上是可控的,因为召回的item和query是至少存在共同的词。Embedding通过向量相似度计算并不能保证一定存在共同的词,那会不会误召回一些很飘的item?碰到这种badcase该如何解决? 181 | 182 | #### 参考资料 183 | 184 | 1. [Embedding搜索能代替文本搜索吗?](https://mp.weixin.qq.com/s/cbIqkGg8IwjnSKpEd54wZg) 185 | 186 | ### Query纠错 187 | 188 | #### Query纠错 之 原理 189 | 190 | - 动机:属于 Query纠错 中比较常见且核心的模块; 191 | - 流程:召回 和 排序 192 | - 召回,即获取可能正确的候选纠错串; 193 | - 排序,在候选纠错串中挑选纠错概率最大的作为纠错结果; 194 | - 思路: 195 | 196 | 如果把纠错当成一个黑盒,其输入可称为原串:用户query(q),输出可称为纠错串:纠错后的query(r)。纠错算法就是选出r使得q纠成r的概率最大,用贝叶斯公式表示就是: 197 | 198 | ![](img/微信截图_20210626142753.png) 199 | 200 | 所以纠错可以分解成: 201 | 202 | 1. p(q|r):计算原串到纠错串的转移概率,常见方法有编辑距离,q和r的共点击概率,以及分别抽取q和r的相应特征,用模型预测p(q|r)等; 203 | 2. p(r):衡量纠错串作为正常query的概率,比如语言模型,高频query,实体知识库等,即如果r的语言模型得分很高或者是个搜索次数比较多的query,其作为正确纠错串的概率就越大。 204 | 205 | 纠错后续的流程和不同方法大都是围绕着这两个概率来计算。 206 | 207 | 还有个问题是纠错是和资源相关的,如果某个错误query下的资源很多,虽然能正确纠成正确的query,但此时也可能不会去纠错。所以p(q|r)、p(r)、p(q)在纠错中都会使用。由此可见,纠错是个比较复杂的系统,后续将分别介绍以下内容: 208 | 209 | 1. 文本错误类型 210 | 2. 纠错结果类型 211 | 3. 纠错的召回方法 212 | 4. 片段纠错 213 | 5. 生成式纠错 214 | 6. 先检后纠 215 | 7. 纠错如何用于排序 216 | 217 | - 参考资料:[Query纠错(1) - 原理](https://mp.weixin.qq.com/s/D2vsnEB3bJ0deS3jQvzzaQ) 218 | 219 | #### Query纠错 之 文本错误类型 220 | 221 | ##### 动机 222 | 223 | - 动机:首先看下为什么会出现query错误。常见的输入方式是拼音输入法,用户输入拼音,输入法提示候选词,由于误选或无需要候选词时,query就有可能出错。 224 | 225 | > eg: 226 | > 当新的网络词汇出现时,如"耗子尾汁";
227 | > 当一些陌生的词出现时,如"芈月传";
228 | > 当一些错别字出现时,“尿酸高通风 -> 尿酸高痛风”;
229 | > 很多人都知道其拼音,实际哪些字并不确定。
230 | > 此外,通过复制粘贴来搜索,也可能导致搜索query不完整或带入无关字符。
231 | 232 | ##### 常见的错误类型 233 | 234 | 1. 少字:微信跳一 -> 微信跳一跳 235 | 2. 多字:微信跳一跳跳 -> 微信跳一跳 236 | 3. 错字:微信 挑一挑 -> 微信跳一跳 237 | 4. 拼音:tiaoyitiao -> 跳一跳 238 | 5. 中英文混拼:held住 -> hold住 239 | 6. 中文拼音混拼:跳yi跳 -> 跳一跳 240 | 7. 知识错误:南山平安金融中心 -> 福田平安金融中心 241 | 8. 音转:灰机 -> 飞机 242 | ... 243 | 244 | > 注: 这里有个细节值得注意,是否是错误还和是否被很多人来用有关,比如“西红柿首富”先验看是个错的电影名,正确的应该是“西虹市首富”,但是由于最开始的很多用户、自媒体都使用了“西红柿首富”,反而使得其是个正常的query,现在百度也专门有个“西红柿首富”的电影词条。这种问题对具体的纠错处理以及纠错应用都有比较大的影响。 245 | 246 | #### Query纠错 之 纠错结果类型 247 | 248 | ##### 动机 249 | 250 | 从前面结果来看,qc的错误类型是非常多的,并且比较细,使得准确完成这些纠错本身就是个很困难的事情,所以对不同query,纠错系统产生的纠错结果的置信度也不一样。因此考虑到置信度,会对纠错结果标记为不同的纠错类型,并且影响下游的搜索策略和结果展示。具体纠错类型将在下一篇文章中介绍。后续将分别介绍以下内容: 251 | 252 | ##### 介绍 253 | 254 | 纠错是搜索召回阶段的一个模块,利用纠错后query去召回一些可能的相关文章,在排序阶段去和未纠错query召回结果做融合,通常是采用按页整体插入的方式。取决于原query召回doc数、纠错query召回doc数等后验,使用纠错的方式也不同,不同的使用方式也导致了不同的纠错结果类型。 255 | 256 | ##### 纠错结果类型 257 | 258 | 1. 全纠错 259 | 260 | 搜索结果都是纠错query的,但在页面展示时依然保留给用户“仍然搜索yyy”的提示,用户可以选择不纠错。 261 | 262 | ![](img/微信截图_20210626144431.png) 263 | 264 | 2. 混合纠错 265 | 266 | 检索结果是原query和纠错query的混排,给用户纠错提示。以一定的置信度下发纠错串和原串,由搜索模块决定使用哪个串还是说两个串都是用并返回两部分的结果,最终在页面展示提示,通常使用了纠错串则是“包含xxx结果。仍然搜索yyy”,使用了原串则是“是否想要搜索xxx”; 267 | 268 | ![](img/微信截图_20210626144624.png) 269 | 270 | 1. 提示纠错 271 | 272 | 不参与排序,给用户纠错提示,最多有3个相关纠错。 273 | 274 | ![](img/微信截图_20210626144819.png) 275 | 276 | 因此qc结果类型分类其实也是依据置信度来分类,非常置信的用全纠错,不置信的用提示纠错,介于两者中间的用混合纠错。 277 | 278 | 纠错是个挑战非常大的模块,也会存在一些错误结果,主要分为三类: 279 | 280 | ![](img/微信截图_20210626144853.png) 281 | 282 | 4. 纠错的召回方法 283 | 5. 片段纠错 284 | 6. 生成式纠错 285 | 7. 先检后纠 286 | 8. 纠错如何用于排序 287 | 288 | 289 | 290 | ## 搜索引擎两大问题 291 | 292 | ### 问题一:召回 293 | 294 | #### 什么是召回? 295 | 296 | - 介绍:从 **庞大的资源库** 中 **更高效** 检索出 与 query 相关的 候选 doc 集合; 297 | - 存在问题: 如果 召回的 候选 doc 集合 与 query 不相关,那么**即使后面的相关性排序做好的再好,也是徒劳**。 298 | 299 | #### 基于关键词的召回方法 300 | 301 | ##### 什么是 基于关键词的召回方法 ? 302 | 303 | 基于关键词的召回方法 主要是 利用一些 关键词召回方法(eg:关键词匹配、倒排表等)从 资源库 中召回 一些含有 相同关键词的 候选 query。 304 | 305 | #### 基于关键词的召回方法存在哪些问题? 306 | 307 | ##### Q1:索引粒度如何选择问题 308 | 309 | 召回是通过**倒排索引求交**得到的,可能存在以下问题: 310 | 311 | - 当以词为粒度,粒度较细,召回的文章的数目较多,但也可能由于倒排过长把一些相关的结果误截断; 312 | - 当以更大的phrase粒度,粒度较粗,召回的文章相对更相关,但也容易造成召回的结果过少。 313 | 314 | ##### Q2:保证 召回 有相关文档数问题 315 | 316 | 召回问题: 317 | 318 | 1. 非必留,同义词问题。由于 用户输入 query 和 资源库中候选 query 存在描述不一致问题。 319 | 320 | > eg:用户 query:深大图书馆怎么样?
321 | > 解析: 候选库 中 可能 只存在 “深圳大学” 相关的 候选 query,那么需要将 “深大” 映射到 “深圳大学” 才能 召回 相关性高的 query 322 | 323 | 2. 语法错误问题。 用户输入 query 中 会重新一些 编写错误的实体问题。 324 | 325 | > eg:用户 query:深镇大学图书馆怎么样?
326 | > 解析: query 中 “深镇大学” 属于错别字,用户可能想知道的是“深圳大学”,那么需要将 “深镇大学” 映射到 “深圳大学” 才能 召回 相关性高的 query 327 | 328 | 3. 用户query也会存在和doc不是完全匹配问题。对于一些 长 query,容易出现 不完全匹配。 329 | 330 | > eg:用户 query:无问西东电影的主演是谁?
331 | > 解析: query 中 “无问西东电影的主演是谁?” 如果要求原搜索串完全命中,可能导致召回结果数过少或零结果。这里分析“电影”是一个冗余的信息,“是谁”是一个不重要的词,其参不参与倒排的求交并不影响召回doc的相关性,这时召回时可以直接把这2个词直接丢掉。 332 | 333 | ##### Q3:召回 候选 query 多样性问题 334 | 335 | - 动机:尤其是对于短query。因为相比于长query,短query往往是一些实体,召回doc数往往不是关键问题,用户也希望有一些惊喜的结果,避免搜索结构都是一些类似或重复结果。 336 | - 方法:query事件扩展,query改写都是为了解决召回的多样性问题。 337 | 338 | > eg:用户 query:武汉大学
339 | > 解析:如果只是返回一些武汉大学的百科、高考录取信息,可能对用户并没有什么吸引力。这是如果能将武汉大学能和最近比较热的“武汉大学 樱花”、“武汉大学 和服”关联起来,可能会有侧重召回扩展内容相关的doc,增加结果多样性。 340 | 341 | ##### Q4:召回 候选 query 无语义效果问题 342 | 343 | - 动机:基于关键词的召回方法 只能 召回 关键词相关 的 候选 query 集,但是对于一些 语义相关 的 query 无法召回。 344 | 345 | > eg:用户 query:周星星的简介
346 | > 解析:query 中 “周星星”,确实是 “周星驰”,也就是 用户想知道 “周星驰”的相关信息,那么需要将 “周星星” 映射到 “周星驰” 才能 召回 相关性高的 query 347 | 348 | #### 基于语义的召回方法 349 | 350 | ##### 什么是 基于语义的召回方法? 351 | 352 | 基于语义的召回方法 主要是 利用一些 语义召回方法(eg:向量召回等)从 资源库 中召回 一些含有 相同关键词的 候选 query。 353 | 354 | ##### 基于语义的召回方法 的思路 355 | 356 | 1. 分别 将query和doc表示成embedding; 357 | 2. 然后基于embedding 计算 从 资源库中检索出 一些语义相似的 候选 query; 358 | 359 | ##### 基于语义的召回方法 存在问题 360 | 361 | 虽然 基于语义的召回方法 能够召回一些相关doc,但其不能保证一些最相关的文章被一定会被召回回来。存在以下问题: 362 | 363 | 1. 语义漂移问题。候选 query 可能 与 query 存在差异性。 364 | 365 | > eg:用户 query:吃苹果的好处
366 | > 解析:基于语义的召回方法 可能 从 库中 检索出 “吃梨的好处”,这个时候,可能不是用户想要的,但是,“苹果“ 和 “梨” 都属于一种水果,又没有错误。 367 | 368 | 2. 难以调试问题。embedding模型往往是黑盒模型,很难debug。 369 | 370 | #### 参考资料 371 | 372 | 1. [搜索引擎的两大问题(1) - 召回](https://mp.weixin.qq.com/s/fcIL5yBbjohbfBtMBVEAWg) 373 | 374 | ### 问题二:相关性 375 | 376 | #### 什么是 相关性? 377 | 378 | - 动机:召回 得到的 候选query 集,但是 不一定所有 候选query 都和 查询query 相关,那么需要 怎么从 中找出 真正相似的 候选query 呢? 379 | - 介绍:相关性计算就需要充分的理解 query和doc,所以需要对 query和doc 进行相关性计算 380 | - 举例说明: 381 | - 从quey角度,需要知道query中的哪些词比较重要,有没有实体成分,意图是什么?是要找药品的介绍还是要找药品的购买网站?query的时效性如何?是要找最新的事件新闻还是一般的事件介绍? 382 | - 从doc角度来看,需要理解doc的话题类型,doc的核心词,doc的文本质量,是否是标题党,是否是推销、广告、色情等页面? 383 | 384 | #### 相关性 存在哪些问题? 385 | 386 | 充分的理解query和doc是非常有难度的,更进一步去计算query和doc相关性计算也存在很大挑战,比如以下几种场景问题: 387 | 388 | 1. query是**歧义**的,当用户搜索苹果时,是要找水果还是要找苹果手机? 389 | 2. query的意图不完全体现在term的匹配上,比如用户搜索“北京到上海的火车票”,doc“北京到上海的火车票的乘车体验”,虽然query完全紧邻命中doc,但用户要找的是 “火车票”,并不是 “火车票的乘车体验”; 390 | 3. query 和 doc 的mismatched term对相关性也有很大的影响,而传统的相关性计算只考虑了matched term对相关性的贡献; 391 | 4. query 和 doc 很多时候需要从语义维度来判断是否相关,比如 query “苹果手机多少钱?”和“ iphone xs max 的官方标价?”; 392 | 393 | #### 相关性方法介绍 394 | 395 | ##### 计算场景角度 396 | 397 | - query是**变化**的,需要在线动态计算,因此通常都是一些简单快速的方法,做轻一些; 398 | - doc **相对静态**的,偏离线运算,因此可以使用很复杂的模型事先把doc的相关属性计算好,做重一些。 399 | 400 | ##### 计算方法角度 401 | 402 | 1. 字面相关性 403 | 404 | - 思路:主要是根据term的匹配度来计算相关性 405 | - 存在问题:无法处理一词多义或者多词一义,并且会忽略词之间的顺序 406 | - 常用方法:BM25方法 407 | 408 | 2. 语义相关性 409 | 410 | - 思路:计算query的doc和语义相关性。其核心思想在于分别将query和doc标称一个低位稠密向量,然后用其cosine距离表示其相似性。 411 | - 常用方法:SVD,Topic Model,Embedding(类似word2vec,doc2vec,sent2vec,lstm等)等等 412 | - 存在问题: 413 | - 如何学习长文本、有oov的文本的embedding一直没有得到很好的解决。 414 | - bert 效果比较差 415 | - 是不太具有解释性,出现badcase只能大概猜个可能的原因。虽然embedding是个趋势,但字面相关性仍然是一个不可或缺的模块,起个断后的作用。 416 | 417 | #### 参考资料 418 | 419 | 1. [搜索引擎的两大问题(2) - 相关性](https://mp.weixin.qq.com/s/XoH_ge6Kz-wKYo6LedIcZw) 420 | 421 | ## 搜索未来新趋势 422 | 423 | ### 1. 多模态搜索 424 | 425 | 从网页端到手机端,获取用户多模态的输入(图片、语音、视频等)变得更为容易,像主流的app都已提供语音、相机等入口。同时5G时代的来临,数据传输速度更快,相比于只使用若干个关键词的文本搜索表达方式,表达能力更丰富的多模态输入作为一种自然+高效的形态会越来越流行、越方便。同时多模态输入,所见即所得,一方面缓解用户不知道如何用关键词来表达自己的需求,一方面也缓解了搜索引擎理解复杂query的难度。当然这里也会产生一些新的技术挑战。比如语音搜索中,如何更好的方言语音识别,口语化语音识别;视频搜索中,如何准确理解每个像素的重要性和语义,类似文本中理解每个词的词权重和语义,分词就类似图像中的物体检测和识别。像微信识物,淘宝拍照搜索都属于这种,但是目前流量并不大,优化的空间也比较大。多模态搜索始于4g,繁荣5g智能时代。 426 | 427 | ### 2. 更语义搜索 428 | 429 | 相比于关键字搜索,语义搜索则是透过现象看本质,也是一种更精准的搜索,也是一种不仅仅只看title的搜索,理解doc的文本在搜索会越来越重要。比如搜索“梦字去掉林是什么”,语义搜索则是直接出现“夕”,而不仅仅只是返回一些词重叠的标题。结合产品形态,具体有以下几点: 430 | 431 | 1. 语义排序:传统的搜索方式都是基于关键词对结果进行排序,而基于 Transformer 的语义排序引擎则能够理解文本背后的含义。 432 | 2. 语义摘要:相关性只是一方面,搜索结果中的标题和摘要也非常重要。好的标题和摘要能够让用户“一眼”看出结果是不是自己想要的。 433 | 3. 语义高亮:语义高亮的简单理解是:给一段搜索结果画重点,并用文字加粗的形式进行展示。通过语义高亮,用户可以直接获得所需的答案,或者通过快速扫描结果页面就可以查找到所需的文档,甚至直接获得一段摘要。 434 | 4. 语义问答:疑问句查询是搜索引擎经常遇到的搜索方式,这背后用户往往想要优先获得一个简短、确切的答案,而不是文档。语义搜索可以通过机器学习阅读语料库中的所有文档,然后进行总结,并将答案置顶展示。 435 | 436 | ### 3。 多轮搜索 437 | 438 | 传统的搜索虽说有session的说法,但是对于每个query大都是还是独立处理的。搜索体验中,经常会碰到一些很难在一次搜索中得到满足,通常要多次换不同的query才会得到想要的答案。类似现在比较火热的虚拟人,后面的产品形式可能搜索即对话,对话即搜索,一切以满足用户的需求为主。目前有一些类似作用的产品形态,比如结合query意图知识的多伦hint,比如搜索“拉萨布达拉宫介绍”,则给出“布达拉宫门票预约”“大昭寺小昭寺攻略”这样的hint。在医疗中,有一种特殊的预问诊形态,通过多轮交互尽可能的全面收集用户的疾病信息,帮助后面的分析和诊断。这里通过对多轮的query及上下文理解用户的精准需求是个挑战。 439 | 440 | - 参考资料:[搜索的一些新趋势](https://mp.weixin.qq.com/s/9T8J3O_OnmNOIk040cjUEA) 441 | 442 | 443 | --------------------------------------------------------------------------------