query 改写
什么是 query 改写
query 改写是搜索系统中最基础也是最重要的一个模块,简单来讲就是把用户输入的 keyword 转换成最贴近搜索系统内部的可识别的 keyword。
搜索引擎检索 keyword 的时候主要是匹配和排序,匹配也常常被称作“召回”,在搜索和推荐领域会有一个“召回率”的指标,在此不做展开。query 改写则会直接影响召回的指标
query 改写可以分成几个大的功能:纠错(ERROR Correction)、意图改写、记录 keyword
举个电商行业的例子:
用户搜索关键字: 男士鞋
倒排索引:
doc1: 男士鞋白色百搭
doc2: 男鞋红色运动型
doc3: 鞋子蓝色透气舒适
doc4: 女生跑步鞋
如果不进行 query 改写那么它就会返回在索引中与 “男士鞋” 完全匹配的文档,此时只有 doc1 能够被召回,此时显然不是我们想要的,如果 改写 query 会是什么样的?
男士鞋 -> 男|男士|鞋
将 keyword 按一定的逻辑进行拆分,然后推测用户想要搜什么,也就是拆分后的字或者词哪个是重要的。这样就能返回 doc1 和 doc2 以及可能会返回 doc3 ,这就有一定的概率性,牺牲一定的准确度来获得更多商品的召回。
怎么去做 query 改写
- n-gram (N 元语法模型)
- 知识图谱
- 协同过滤
n-gram
- 原文作者:浮华生
- 原文链接:https://www.ahianzhang.com/post/query-rewrite/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。