360搜索的百亿级网页搜索引擎的架构设计与实现( 五 )


基础相关性
下面我给大家简单介绍下基础相关性 。这也是整个检索的一个核心部分,对检索来说,它也是比较耗时的一个模块 。相关性计算它不可能把非常多的策略相关的信息都拿来计算,这样会影响底层收集数据的性能 。我们这里主要做了两个方面的工作,一是基础赋权,二是紧密度计算 。
第一,基础赋权

360搜索的百亿级网页搜索引擎的架构设计与实现

文章插图
 
什么是基础赋权?它是来解决query中的每一个term和它对应的文章的权重计算 。
这里先介绍TF和IDF这两个概念 。
  • TF:代表承载信息量,即这个word在文章中出现的次数;
  • IDF:代表信息承载能力,即这个word在全网的出现次数
一个技术的模型,就是TF*IDF 。但是在实际的应用中不会只有这么简单,还会出现很多问题 。比如一篇文章很长,那么它的TF就不会太准 。现在业界也有一个模型叫BM25,它主要加入了文章长度,和这个词语的term weight的一些概念 。
我们如果想达到更好的效果的话,那么就要在数据挖掘上做一些工作 。比如说我们需要挖掘出每篇文章的主题、关键词,以及关键词的一些限定词这些信息,这样可以针对term做一个分级,拿到词性信息,这样可以更容易、更准确地来描述这个word对文章的权重信息 。
第二,紧密度计算
360搜索的百亿级网页搜索引擎的架构设计与实现

文章插图
 
所谓紧密度计算就是用户的query过来之后,针对query的分词,一是相邻word之间的紧密程度在文章中是怎样的分布;二是跨term的信息,那也就是方向的信息 。
可以简单理解为我要算的就是一个距离问题 。我这里列了一个简单的具体的模型 。我们首先在query中选一个词作为中心点,比如B 。然后我们拿text文本的位置信息减去query的位置信息,然后再通过中心点的一个计算,算出它的相对位置 。比如说A这个term本身它的距离像1这个位置,当然就是说他后边A的距离在算的过程中,你会发现因为它是在B的后面,他的距离可能就会拉长,这样的话它解决的是一个方向性的问题 。(参考: proximity距离)
在后面A的距离大概是4 。所以针对距离变长的这种情况我们会做一些打压 。基础相关性是检索的一个基础 。当然在基础相关性的基础上,我们会把优质的网页集合拿到上层,上层也会做一些rank的计算 。大家可能有的了解比如这种LTR模型来做一些排序的计算,当然也会有一些针对用户策略,包括用户意图的一些策略来打分 。最终返回用户一个丰富的结果集 。
其他相关技术点前面我基本介绍了360搜索的核心模块以及关键技术 。当然搜索还涉及很多其他的技术点,比如:
  • 时效性
  • 机群资源优化
  • 检索性能
  • Cache系统
  • 系统稳定性
  • 大数据实时计算
以上就是360搜索引擎架构的整体设计以及关键技术 。
原文来自:360搜索技术团队 。




推荐阅读