人工智能在搜索算法中的应用

作者: seozzy 分类: 每日一贴 发布时间: 2017-10-31 09:02

2016年以来,IT行业最大的技术突破应该是人工智能了,不仅在一年左右时间,在最后一个人类曾经自以为机器很难战胜人类的游戏项目上完胜人类,前几天更是出现了逆天的AlphaGo Zero,完全不用借鉴人类知识,自学3天就超越了人类。

人工智能领域最牛X的公司,国外是Google,国内是百度。都是搜索引擎。这恐怕也不是什么巧合,而是因为搜索引擎是最适合开发人工智能的公司,他们拥有最大量的数据,包括文字、图片、视频,还有地图、路况、用户使用数据等等。

搜索引擎公司的AI成果在多大程度上运用到了他们的核心业务-搜索中?他们都没有明确地对外说明,从搜索工程师的零碎发言中猜测,至少目前还没有大规模使用,并没有改变搜索算法的基础。毕竟人工智能虽然概念存在了几十年,但效果突飞猛进只是近几年的事,还没有出现通用人工智能,在围棋这种规则简单明确的领域中牛X,迁移到规则模糊的系统中,比如搜索,还需要一些时间。

但我想,人工智能大规模应用于搜索算法是早晚的事。据说以前百度大搜索部门和人工智能/深度学习部门之间是有些矛盾的,现在吴恩达离开了百度,陆奇对百度又进行了很多人事调整,搜索部门对人工智能的排斥也许就大大降低了。

其实人工智能已经在搜索算法中有所运用。举两个例子。

百度DNN模型

前几个月看到了百度朱凯华的一篇《AI赋能的搜索和对话交互》演讲报道。数年前和朱凯华还做过一次访谈,那时候他还是Google的主任架构师,是著名的猫算法的主要参与者之一,现在他是百度的首席架构师了。演讲内容很多,感兴趣的搜索标题就能找到全文,很值得深入读一下。这么长时间SEO行业很少人注意到这篇这么有价值的关于搜索算法的公开信息,还是挺意外的。

演讲里提到了百度2013年上线的DNN模型,极大提高了语义相关性的判断范围和准确性,2013年百度相关性提高的34%来自于DNN模型,2014年全年相关性提升的25%来自DNN模型。DNN模型使用的就是深度学习方法,通过100亿的用户点击数据训练模型,有超过1亿个参数。下面介绍的Google RankBrain是2015年上线的,所以百度是世界上第一个将人工智能应用到实际搜索算法中的公司。

下图是DNN训练的示意图:

百度DNN模型是人工智能在算法中的第一次应用

简单说,就是对同一个查询词,模型分析了真实用户点击了的页面的标题,和没有点击的页面标题,从而更深入理解哪些标题是满足了用户需求的。经常出现的情况是,页面标题并不包含查询词,用户却更愿意点击这些页面,说明这些页面满足了用户需求,这些页面的标题,即使不包含查询词,也是与查询词语义相关的。这是经典的页面-关键词相关性算法无法计算出来的。

演讲中提到的例子:

百度DNN模型案例

在DNN上线之前,用户搜索“ghibli车头任何放置车牌“时,由于相关信息很少,没有什么页面是以这个查询词为标题或者页面出现这些关键词的,所以搜索结果质量不高,传统搜索算法只能按关键词匹配返回一些ghibli相关信息,却没几乎有“车头任何放置车牌”的信息。

DNN上线之后的搜索结果是这样的:

百度DNN模型上线效果

可以看到,搜索结果中还是没有以“ghibli车头任何放置车牌“为标题的页面,但解决了用户的需要,算法理解了“前”、“前面”和“车头”是一个意思,“放哪里啊”、“怎么装”、“咋挂”和“任何放置“是一个意思,所以”ghibli车牌咋挂“这种页面回答了“ghibli车头任何放置车牌“这个查询,虽然他们包含的关键词是不一样的。

这种对相关性的理解不是传统以关键词匹配为基础的搜索算法能算出来的,而是真实用户的点击数据告诉搜索算法的。用户搜索“ghibli车头任何放置车牌“时,经常点击”ghibli车牌咋挂“、”ghibli前面车牌照怎么装“这些页面,DNN模型被训练后知道,这些词之间是语义相关的。

Google RankBrain

2015年上线的Google RankBrain解决的也是对查询词的深入理解问题,尤其是比较长尾的词,找到与用户查询词不完全匹配、但其实很好回答了用户查询的那些页面。和百度DNN是非常类似的。Google没有具体说明RankBrain的训练方法,估计和百度DNN也是类似的。

2015年RankBrain上线时,15%的查询词经过RankBrain处理,2016年所有查询词都要结果RankBrain处理。

Google自己经常举的RankBrain例子是这个查询:

What’s the title of the consumer at the highest level of a food chain

这个查询词相当长尾,完全匹配的结果比较少,而且查询中的几个词容易有歧义,比如consumer通常是消费者的意思,food chain也可以理解为餐饮连锁,但这个完整的查询和商场、消费者、饭馆之类的意思没有任何关系,RankBrain能理解其实用户问的是食物链顶端的物种是什么名字。同样,搜索结果不能按照传统的关键词匹配来处理。

这种长尾查询数量很大,每天Google收到的查询里有15%是以前都没出现过的。这种查询要靠关键词匹配就比较难以找到高质量页面,数量太少,甚至没有,但理解了查询的语义和意图,就能找到满足用户需求的、关键词并不完全匹配的页面。

对SEO的影响以后再详细写,这里只是先简单提示一下:页面要包含关键词,这在目前的关键词优过程中是必然的,现在搜索引擎能理解两句不同的话意思是一样的了,以后创作或编辑页面内容时,是不是还一定要包含关键词呢?

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!