潜搜索——搜索界的趋势

  昨天去天一论坛听了王明院士的讲座,感触颇多,与大家分享。

  现在大家对于百度谷歌等搜索再熟悉不过,但是在我们一开始使用搜索的时候,一定会不适应,因为它们是基于关键词的搜索。查找什么东西,输入几个关键词,而不是一句连续的话,不是咱们平常使用的自然语言,这会出一个什么问题呢,这会大大减弱用户的用户体验,用户体验差了,什么后果,你的产品别人就不想用了。而且更重要的是,现在基于自然语音识别输入渐渐成为一种趋势,如果你的产品不能对自然语言进行处理,这将大大减少这一部分用户量!现在的互联网,谁抢占了用户,谁就有了主动权!

  但是,该怎么对自然语言进行处理呢?打个比方,你在百度上输入加拿大多少人,与输入加拿大住了多少人,前者直接显示结果,后者不然。原本一个一摸一样意思的句子,却处理成不同的结果。为什么会是这种结果,原因就是现在的搜索引擎是基于关键词的搜索。那么到底该用什么样的方法去判断两句话的意思的差别,基于中国语言博大精深的情况下,王明院士提出了一个概念——信息距离,用它来表示两句话之间意思的差距。

  那怎么计算这个信息距离呢,在此之前,先回顾 冯诺依曼—朗道定律告诉我们不可逆地处理1比特的信息需要1KT的能量 而可逆地处理信息不需要消耗能量。。 公式表示为 E(x,y) = max{ K(y|x), K(x|y)},即x,y之间的信息距离是两者相互转化所需要的最小能量。 假如,现在我已经有算法可以计算两个字符串之间的信息距离,那么我只要选取那个最接近的字符串(之前已经在数据库被处理过)进行处理即可。

  比较幸运的是,现在已经有两种计算信息距离的算法(这也是我通过伟大的搜索引擎知道的):压缩和编码定理。在压缩中,可以把任何一个串x用一种压缩方法进行压缩,把压缩后得到数据大小Z(x)是K(x)的上届。如果压缩方法足够准确,我们就可以把Z(x)作为K(x)的近似。基于压缩的信息距离在生物信息学和数据挖掘中得到了广泛应用,比如通过计算DNA序列的信息距离来判断物种之间的亲缘关系。在数据挖掘领域,Keogh等人将基于压缩的信息距离于数据挖掘领域主流会议中提出的51种度量进行比较,发现信息距离的效果是最优的。 

  从这里可以发现压缩算法是基于单个字符串的计算方法,即没有联系上下文。但是现实生活中情况没这么简单。举个例子,“我去” 。 ---你要去学校么?----我去   -----你上课被老师点名了-----我去   这时,我去的意思就多了。 (还记有关于意思意思的故事么= =)。这时就靠编码定理了,编码定理主要通过联系上下文计算字符串之间的信息距离。需要将两个词语的所有上下文进行编码,然后再近似计算相应的K复杂性。由于出现一个单词的文本数量往往十分庞大,我们无法通过压缩的方法来对其K复杂度进行估计。Cilibrasi等人以编码定理为理论依据用一个词语在搜索引擎中的返回页面数来近似K复杂性,并用这种方法来度量词语之间的语义相关性。(貌似是google的技术之一)。

  结尾,感谢王明院士,有部分内容参考http://caai.cn/contents/49/103.html。发扬开源精神,技术共享。

原文地址:https://www.cnblogs.com/huhuuu/p/3372975.html