-->

AI内参_41_039_查询关键字理解三部曲之扩展

你好,我是洪亮杰。

今天我和你分享的主题是查询关键字,理解三部曲之扩展。

我们在本周的前两篇文章中,分别介绍了查询关键字分类和查询关键字解析的基本概念和思想。

今天我来讲一个稍微有一些不同的查询关键字理解模块、查询关键字扩展、查询关键字扩展。

想要解决的问题和分类以及解析略微不同,其主要目的不仅仅是希望能够对用户输入的关键字进行理解,还希望能够补充用户输入的信息,从而达到丰富查询结果的效果。

我先来说一说查询关键字扩展的效念,为什么要提供查询关键字扩展的主要原因,还是用户输入的查询关键字信息不足?还记得我们上次提到的苹果价格这个例子吗?在这个例子中,用户到底是希望查询苹果作为一种水果的价格,还是苹果作为手机的价格,其实无法真正从这个查询关键字中得出。

因此,作为搜索引擎,如果为用户户提供一些扩展选项,也就是一个被改写过的查询关键字,会提供更好的用户体验和更加精准的搜索结果。

查询关键字扩展除了显示出来,能够让用户有更好的体验之外,还有一个作用是增加文档的召回,从而为提高搜索结果奠定基础。

设想这样一个例子,用户搜索iphone六back up,希望了解如何备份iphone六的信息。

因为苹果手机的绝大多数机型的备份流程都大同小异。

因此,如果把iphone六给扩展到iphone六他机型,然后看是否有比较好的介绍备份的网页可以显示。

值得注意的是在扩展的过程中,也有可能失去精度。

比如假设苹果对iphone七的备份流程做了很大的改进,那么其他机型的流程也许就不适用了。

所以当用户搜索iphone七backup的时候,如果我们扩展到了其他机型,那让用户看到的很可能就是不那么相关的信息了。

因此,对精度和召回的平衡成了查询关键字扩展的一个重要的权衡点。

查询关键字扩展的另外一个重要应用,就是对同义词和缩写的处理。

比如塔纳德,特朗普是美国现任总统。

那么如果用户在搜索这些词,比如done not trump trump US, president POTUS,这个POTUS是president of the united states的简称。

当用户搜索这些类似的词汇的时候,搜索引擎应该提供相似的结果。

而从词汇的直接联系上,这些词汇在表面形式上可能有很大的差异,比如trump和POTUS.因此需要其他手段学习到这些词语内涵的同义。

知道了查询关键字扩展的含义以后,我们就来看看有哪些技术可以为查询关键字扩展提供支持。

根据上面提供的一些例子,你可以看到这里的核心就是找到搜索结果意义上的同义词。

那么,在搜索中如何挖掘同义词呢?今天我在这里分享两种词路。

第一种思路是根据查询关键字和查询结果之间的自然结合产生的同义效果,这需要对用户的搜索行为数据进行大规模的挖掘。

这里的基本假设是这样的,假设我们有两个搜索关键字,a和b从a的搜索结果中,用户可能点击了一些网页。

从b的结果中,用户可能点击了另外的一些网页。

如果这些被点击的网页恰好非常类似,那么我们就可以认为a和b其实是同义的。

查询关键字更加完整的做法是把查询关键字和网页,更别表示成图中的两类节点。

每个关键字节点和多个网页节点建立联系,或者边象征这些网页对应这个关键字的相关页面。

而从每个网页的角度上看,多个关键字节点又和同一个网页节点相连,表示这些关键字都有可能和某个网页相关。

拿上面提到的特朗普的例子来说,美国白宫的首页作为一个节点的话,就有可能会有trump US precedent以及POTUS这几个查询关键字相关。

因此,你可以看到寻找同一次的工作,就变成了如何在这个图上进行相似节点,特别是相似关键字节点的挖掘工作。

如果把查询关键字的节点放在一边,把网页节点放在一边,我们就看到了典型的二分图。

二分图的特点是同边的节点之间没有连接,比如关键字和关键字之间没有连接,而所有的连接都发生在不同边的节点之间,比如关键字和网页之间。

二分图的聚类问题是机器学习界的经典的问题。

而利用二分图的聚类问题来做查询关键字的同义词挖掘,也是很多研究人员尝试的方向。

文末,我列了几个参考文献,比如参考文献。

二就是利用二分图上的随机游走以及随机游走所产生的到达时间来挖掘出类似的关键字。

如果你有兴趣可以查看这篇经典论文,说了基于用户行为信息和关键字挖掘的思路以后,我们再来看看第二种思路。

第二种思路的核心是从海量的文本信息中分析出词语之间的相关度。

这里面需要注意的是,这些词语的相关度有可能是语言本身带来的,比如如单词、mail和man,也可能是语境带来的。

比如谈论手机的网页中,对于iphone六和iphone七的谈论。

总之,这一个思路的想法就是如何为每一个词组都建一个表达,从而通过这个表达找到同义词。

近年来流行的一个做法是为单词找到数值表达,也就是通常所说的嵌入。

如果两个词在嵌入空间,通常是欧式空间,中距离相近,那么我们就可以认为这两个词是同义词。

如何为词组产生嵌入向量呢?这里面也有很多做法比较通用的算法。

Word to wake目标是通过一个文档的每一句话中某一个词周围的词来预测这个词出现的概率。

可以设想一下,在苹果手机的很多帮助文档或者帮助站点中描述如何帮助iphone六或者iphone七来做数据备份的字句都是相似的,甚至可能唯一的区别就是描述机型的名字。

因此,在这样的情况下,通过文字周围的上下文信息来对单词本身的嵌入向量进行学习,可以有效的学习到单词的语义。

而通过语义我们就能够找到其他的同义词。

当然,要想真正应用到查询关键字扩展中,可能还需要有其他的调试。

比如文末,我列的参考文献四就是其中的一种。

如果你感兴趣,建议去精读。

最后,我需要说明的是,第一种思路需要已经有不少的用户交互数据。

而第二种思路,可以通过其他的语料,比如维基百科加以学习,并不需要用户数据,这也是另一个值得参考的信息点。

今天我为你讲了查询关键字理解中的查询关键字扩展问题。

你可以看到查询关键字扩展从技术上的两种流派,一个是通过用户的交互数据来产生一个图,并且利用图挖掘技术来得到查询关键字之间的关系。

另外一个就是通过产生词汇的嵌入向量,得到同义词。

一起来回顾一下要点。

第一,简要介绍了查询关键字扩展的内涵。

由于用户输入的查询关键字信息不足,通过查询关键字扩展,可以提供更好的用户体验和更加精准的搜索结果。

二、详细介绍了查询关键字扩展的两个主要技术,最后给你留一个思考题,如何来测试查询关键字扩展的优劣呢?欢迎你给我留言,和我一起讨论。