搜索系统中的召回

对召回的理解

重申,此时召回的目标在于从海量数据中找到可能可以出的结果,这种情况下,要求的是能找到的东西能尽可能找到,因为召回找不到的东西,是不可能在后面的结果里面出现了。

但值得强调的是,很多系统,尤其是最初刚开始建立的系统,排序其实并不是很完善,而应该是召回,甚至在召回阶段可能就要承担一定的排序压力,此时就需要保证较高程度的准确性了,因此情况还是会有所不同。

召回的操作

对于搜索系统,由于用户有非常明确的用户需求,因此所有操作都应该围绕着这句短短的用户query,但是要理解它的含义,却非常困难的,核心难度还是在于他的短,有的时候会非常模糊。因此和推荐系统不同的是,并非把时间花在用户和ITEM之间的分析上,而是query各个层面的分析。

query的各种分析,其核心原因是,要方便后续在数据库里进行查询,大家可以试想一下,做数据库查询需要知道哪些信息,有了这些信息,我们才能实现真正程度的召回:

  • 哪个库哪个表。

  • 哪些字段。

  • 什么条件。

那么,对于原始query,我们需要做什么处理呢:

  • 预处理。这个在之前的文章里面也说过很多次,繁体简体,大写小写,标点符号,数字等等,不赘述了。

  • 改写。这个是搜索里面比较复杂的操作,后面会展开写,举个例子吧,招商银行和招行。

  • 意图分类。对应是确定哪个库哪个表。

  • 实体识别、term weighting等。对应的是哪个字段。

改写

首先是改写,首先需要明确的是,改写这个操作的目标是,要对应到数据库里面的数据,所谓的模糊搜索,能做到多模糊,其实就体现在你的改写能力好不好了,毕竟,数据库的查询能力是不可能做模糊的

首先最简单的改写应该是同义词,这个就非常考验数据挖掘的能力了,怎么构建同义词词表,甚至是垂直领域下的数据挖掘能力,是非常关键的,具体怎么挖掘,这个就需要看大家的智慧啦。补充一下,这个同义词挖掘过程一般都是离线过程,在现阶段一般是直接触发词典来做改写的。

前缀匹配、拼音、拼音前缀、纠错。这个是搜索中的常见操作,用户很多时候不见得会输入所有内容甚至会输入错误,我们需要做补全(自动补全这个也有说法叫做query suggestion)。

  • 前缀匹配同样可以通过词典来处理,约束好相似度(例如用编辑距离)即可。“番”直接改成“番禺野生动物园”可就不太合适了。

  • 拼音结合拼音转换加词典的方式做改写就行,当然太简单也会有一些bad case,需要慢慢来补充迭代吧。

  • 拼音前缀,hdl出海底捞,bd出百度,类似这种,也是可以通过构造实体词典的方式去做。

其他必要的改写,这个就要根据实际业务去做了,举个例子吧,搜索中有一种召回方式是从redis中做召回,这种方式的难度在于当且仅当只有精确匹配才能够找到结果,数据库里面可能没有钢铁侠,只有钢铁侠1,钢铁侠2,钢铁侠3,此时用户输入钢铁侠的时候是不会出结果的,我们需要设置同义词,这种同义词就不是我们常说意义的同义词,这个就需要结合一些规则去做针对性的操作。

其次,应该就是要上一些比较复杂的模型了,不过因为使用的方式是在线,所以再复杂也不会这么复杂。模型实质上也是去找相似的内容,说到相似、近义词,大家应该想到词向量的最近邻相似了,将某个词汇通过word2vector的方法转为向量,然后找到最接近的几个词(一般用相似度或者个数来截断),就能作为改写词。值得注意的是,如果上述方案已经能覆盖较多结果了,其实并没有太高的优先级,模型常伴有一定的不稳定性,说不定哪天就有一些bad case出现,这种case又不好处理。

意图识别

意图识别如上所述的目标对应下游,是为了知道,你要去哪个数据库找,这样说的会直接一些。当然对于大搜,有比较多的广义内容可以出,这可以当做单个品类,不用做意图识别。

意图识别,说白了就是个文本分类的问题,但是你局限在文本分类本身,那肯定会有问题,我先把文本分类的问题说完。

为什么说是文本分类呢,主要因为针对用户query(就是一段文本),你要分析他有什么意图,日历、电影、地图等等,其实就是个分类问题了吧,所以常用的方式就是文本分类,常用的模型如下:

  • fasttext。简单、速度快。

  • textcnn,准确召回啥的会提升较多,但是样本依赖也会提升很多。

  • bert系列,召准提升明显,速度降低,但是样本依赖由于fine tuning所以会减少很多,但是速度有质的下降。

然后来说为什么不能局限在文本分类。

  • 首先,很多东西,不是语义就能处理的,而文本分类本身就是一个语义层面的东西。

  • 某些意图是有时效性,模型可不能有这个更新频率。举个例子,“天气之子”在电影上映之前就没有电影意图。

  • 模型可能会引入一些数据库不存在或者是无关的数据,这时候会出一些bad case。

那么模型的问题应该怎么解,没错,又是词典+模板,触发规则就是判断为特定意图,这个方式其实我个人非常喜欢,说说优点和缺点。

  • 优点是准确率是真的高。

  • 缺点是依赖词典挖掘,召回率低。

实体识别

实体识别这块,我曾经画上了比较多的章节讲过,此处就不赘述啦。

召回数据

上面内容的处理都是为了有更规范的信息进入数据库,能够更加精准的找到所需内容。这块写起来我想了超级久不知道怎么说,真的不好总结,我写一些我的理解吧。

数据库

一般会在什么数据库召回呢,首先一个强需求是速度足够快,不能一个查询数据库找一年对吧,因此常用的是这两种查询系统:

  • Redis,K-V查询,速度很快。

  • Elastic Search,为了搜索为建立的查询数据库。

相关性

虽说是召回,但是召回阶段还是要做一个分析,召回的内容和用户query之间的匹配程度,这个主要结果是为了后续的排序做支持(注意,最后的排序绝对不是文本相似度那么简单)。那么,具体有的方法如下:

  • 规则,有些改写,可能会导致相似度很差,例如拼音转文字,这种要认为定相似度。

  • BM25这种基于词频类型的相似度计算。

  • 文本相似度模型。

相关性截断和过滤

并不是所有的召回都可以直接给下游排序的,有些内容需要在召回阶段干掉,减轻排序压力。主要方法如下:

  • 根据相关性,过滤其实相关性不高的数据。

  • 不合法数据,可以通过敏感词词典等方式解决。

至此,完成召回过程。

后记

当前,大部分推荐系统和搜索系统的文章,多半会把精力集中在排序阶段,召回阶段多半讲完word2vector和协同过滤就完事了,主要原因是召回阶段的细节操作太多,也不好总结,建议大家还是多动手多思考,才能有更深的理解。

(0)

相关推荐

  • 搜狗微信搜索排序规则

      搜狗微信搜索已经出来几年了,独家收录订阅号及文章内容,一搜即达.虽然当时是天空一声巨响,微信搜索闪亮登场,但是没有达到预期的效果,大多数都是互联网人士在用,很多普通人完全不知道.虽然如此,但微信搜 ...

  • 地理文本处理技术在高德的演进(下)

    在[上篇]里,我们介绍了地理文本处理技术在高德的整体演进,选取了几个通用query分析的点进行了介绍.下篇中,我们会选取几个地图搜索文本处理中特有的文本分析技术做出分析,包括城市分析,wherewha ...

  • 当知识图谱遇上个性化搜索

    前言 首先是个性化搜索的情况,本质上是根据用户的历史行为来判断现在搜索的目的.这种做法的缺点是不能利用到一些外部信息,比如樱花和日本之间的关系就无法获得:另外一方面是利用实体链接的方法,可以获得外部信 ...

  • 搜索系统中的纠错问题

    纠错是搜索引擎中一个非常有特色的模块,对用户输入的内容进行改写从而让用户得到正确的结果,有的时候也会带有一些惊喜度,所以纠错技术是一个搜索体验的加分项,近期突然对这块有兴趣,所以就了解了一下.(学习周 ...

  • 空气源热泵采暖系统中到底要不要加缓冲水箱

    缓冲水箱是系统的必需品,不能缺少,因为它对整个系统的作用是至关重要的,下面重点说一下: 第一个,如果不使用缓冲水箱,由于环路中的循环水量有限,那么就会引起主机在很短的时间内达到设计温度,主机就会停止工 ...

  • 导弹防御系统中红外光电识别技术分析

    目标识别问题是弹道导弹防御系统中的核心难题之一,针对弹道导弹突防中威胁目标群飞行各阶段呈现出的不同红外特性,介绍了天基红外系统和拦截弹的最新研究进展及其红外目标识别技术手段.在温度测量.测辐射强度.红 ...

  • 当你掏出手机那一刻,你就可以被人肉搜索!揭秘人肉搜索(中)

    欢迎大家来到校尉说!我是发丘校尉 发丘校尉 前言:这两天我通过对上一篇文章"仅仅通过一个网名就找到了一个人所有的隐私信息!人肉搜索(上)"评论区的分析可以看出:有许多朋友对自己的网 ...

  • 苹果iOS 14系统中,可能被你忽视的6个小技巧,真的很实用

    相信很多人都将手中iPhone,升级到了iOS 14版本,对比上一个版本,在功能和使用感受上,都有了很大提升. 当然也有很多朋友用的是老机型,不敢乱升级.我给的建议是,iPhone X以上机型还是值得 ...

  • 中小学的正高级教师是什么概念?相当于公务员系统中的正县级吗?

    前几天听到一个说法,讲"中小学的正高级教师待遇与正处级公务员相当".这种说法究竟有没有道理?搞清楚这个问题就要先弄明白中小学的正高级教师是一个什么样的概念. 国内的中小学教师职称制 ...

  • 简述溢流阀在系统中的应用

    液压面授课时间地点: 5月18-22日 上海(液压设计) 5月25-28日 成都 6月22-25日 上海(液压系统比例/伺服控制技术与智能原件应用) 微信:18001326538. 来源:腾讯视频.上 ...

  • [视频]C2000 DSP 在电力电子系统中的应用

    [视频]C2000 DSP 在电力电子系统中的应用

  • 汽机系统中均压箱原理及其作用

    一.均压箱及其均压箱的作用 1.均压箱实际上是一个由一个管理制定的箱体一样的压力容器,通常由进汽及出汽管理相互连接,常用于小型汽轮机组汽轮机轴封系统.均压箱就是均衡压力将前轴封漏出的蒸汽导入后轴封,既 ...