以人工智能为基础的搜索算法是什么样的?

三年前,Googled的AlphaGo横空出世时,我写了《AlphaGo、深度学习及SEO》这篇帖子,在那之后,我一直非常关注人工智能与搜索算法的进展。

人工智能与搜索算法

我不知道搜索算法什么时候会大规模以AI为基础,也不知道目前AI技术在搜索算法中应用到了什么程度。由于目前人工智能技术的不可解释性,搜索引擎以AI作为算法基础会是非常谨慎的,不然很不容易debug。

不过算法中的一些模块应用AI是肯定的,以前介绍过百度的DNN模型和Google的RankBrain算法,都是AI在搜索算法中的应用。

那么完全以人工智能为基础的搜索算法是什么样的?工作原理和流程是什么?简单说一下我的理解。

人工智能的优势与搜索

目前实现人工智能的主流方法是机器学习中的深度学习分支,在这篇帖子里就不加严格区分了。

简单说,人工智能是给予系统大量训练数据,人工智能自己从中寻找模式和规律。给予AI系统的数据是打了标签的,或者说是告诉了AI系统结果。比如,在围棋中,AI系统有了大量历史棋局数据(后来的Alpha连历史棋局都不需要了,自我对局的数据就行了),以及这些棋局的输赢结果,这个结果就是标签。然后AI系统自我学习棋局盘面与结果(输赢)之间的关系。

在搜索中,AI系统有了页面的大量数据,也就是搜索引擎本身的索引库,还需要标签,也就是要知道哪些页面是高质量的?针对一个查询词,哪些搜索结果是用户满意的?然后AI算法自己学习页面特征(也就是排名因素)和排名之间的关系。

传统的搜索算法是搜索工程师人工选择排名因素,人工给予排名因素一定的权重,根据给定公式,计算出排名。这种方法的弊端是,当数据量大了,排名因素多了的时候,调整排名因素的权重是件很困难的事。最初的权重很可能就是根据常识,再加上拍脑袋,具有很大的主观随意性。当有几百个因素,这些因素又互相影响时,调整这些因素的权重就变成混乱、无法预见结果的事了。

而从海量数据中找模式正是AI的擅长。AI可以快速寻找可能的排名因素,调整排名因素权重,自动迭代计算,拟合出排名因素和用户满意的搜索结果之间的计算公式。

通过训练数据训练出来的计算公式就是AI搜索算法,可以应用于用户更多的搜索了。

谁来打标签?

既然训练AI搜索算法时需要打了标签的数据,那么这些标签数据是从哪来的?这就是搜索引擎质量评估员的作用了。

前不久Google质量评估指南帖子里详细介绍了质量评估员的工作。这些真实用户(他们不是Google员工),在学习质量评估指南后,Google在评估系统中给评估员真实网站、真实查询词数据,评估员进行相关评估,最主要的就是:

  • 给页面质量打分
  • 给特定查询词的搜索结果打分

Google的质量评估员很早就存在了,应该不是为了开发AI算法招募的,而是用来评估传统算法质量的。但他们的评估数据刚好可以被人工智能系统有效使用。

这样,AI系统就知道,针对某个查询词,用户满意的搜索结果是哪些页面,是按什么顺序排名的。

现在,AI系统有了海量页面特征数据,也知道什么样的搜索结果是真实用户满意的,下一步就是训练系统,寻找页面特征和搜索排名之间的关系。

训练人工智能搜索算法

搜索引擎可以把打了标签的搜索结果数据分成两组。一组训练用,一组验证用。

AI算法检查训练组搜索结果中的页面有哪些特征,这些特征又应该给予什么样的权重,根据什么样的计算公式,才能计算出用户满意的(打过标签的)搜索结果。

与传统算法不同的是,需要哪些特征(排名因素),这些特征给予多少权重,不是工程师决定的,是AI系统自己寻找和评估的。这些因素也许是工程师想得到、早就在用的,比如:

  • 页面的关键词密度
  • 页面内容长度
  • 页面上有没有广告
  • 页面有多少外部链接
  • 页面有多少内部链接
  • 页面有多少以查询词为锚文字的链接
  • 页面所在域名有多少外链
  • 页面打开速度多快
  • 等等等等,可能有几百上千个

也许是工程师压根儿没想过的,也许有些是表面上看起来毫无关系、毫无道理的,比如:

  • 页面正文用的几号字
  • 文章作者名字是三个字
  • 页面第一次被抓取是星期几
  • 页面外链数是单数偶数

以上只是举例,为了说明,AI寻找的不是因果关系,而是相关关系。只要AI看到排名好的页面有哪些特征就够了,至于把这些特征与排名联系起来是不是看着有道理,并不是AI关心的,也是不必要关心的。

当然,有些因素可能是负面的,比如域名长度,很可能与高排名是负相关的。

AI系统被训练的过程就是找到这些排名因素(无论人类看着是否有道理),给予这些因素一定权重,拟合出一个计算公式,刚好能排出用户满意的那个搜索结果。这个拟合过程应该是迭代的,一个权重数值、一个公式不行,自动调整,再次计算,直到比较完美拟合出评估员打过标签的搜索结果。这个训练过程也许要几天,也许几个星期,要看数据量。

AI搜索算法验证

被训练过的AI搜索算法就可以应用于其它没在训练数据里的查询词了。

首先用前面提到的验证组数据验证一下,如果新训练出来的算法给出的搜索结果与验证组数据(同样是评估员打过标签的)吻合,说明算法不错,可以上线了。如果AI算法给出的搜索结果与验证组搜索结果里的页面不同,或者页面基本相同但排序差别很大,可能就要重新训练AI系统了。

当然,要做到所有查询词,AI算法给出的搜索结果与评估员打过最满意标签的搜索结果完全一样,是不大可能的。估计只要排在前面,比如前20名的页面顺序差异在一定的容错范围内就可以了。排在越前面,需要越低的容错率,比如排在第一第二的页面不对,比排在第三页之后的页面不对严重多了。

验证过的算法就可以上线,接受真实用户的检验了。这里很可能牵扯到一个SEO们普遍认为与排名有关、但搜索引擎一直否认的排名因素:用户体验数据是否是排名因素?

很多SEO排名因素统计表明,页面点击率、跳出率、用户停留时间、访问深度与排名有很高的相关性,但Google一直明确否认这些数据是排名因素。当然,对百度来说,点击率显然是排名因素。

原因很可能就是,搜索引擎需要用这些用户体验数据验证搜索算法质量,如果用户普遍点击率降低、跳出率提高,说明新上线的算法有问题,需要调整。虽然搜索引擎没有直接使用用户数据来排名,但算法的目标就是提高用户数据,使得这两者之间高度相关。

新的AI算法上线后,搜索引擎监控的用户数据说明用户满意,算法就成功了,等待下一轮的优化。

以上纯属猜测。

作者: Zac@SEO每天一贴
版权属于: 中新虚拟主机
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。

26 条评论 “以人工智能为基础的搜索算法是什么样的?

  1. 虽然谷歌可能不会在算法中使用用户体验数据, 但是可以确定的是,谷歌验证算法的时候一定会关注用户体验数据(比如点击率,跳出率,停留时间等),只有当用户体验数据表现更好的时候, 新的算法才会被推出, 或者说谷歌的人工智能算法才会迭代。 既然人工智能算法具有不可解释性,作为SEO人员,关注用户体验数据或许是最好的选择。

    很巧的是, 昨天刚好在学习谷歌的RankBrain, 然后写了一篇学习笔记, 发布在我的公众号《赛门的运营进化论》上, 欢迎大家一起交流学习。

  2. 老师你好,感谢无私分享。
    想问一个简单却有些困惑的问题:
    什么是收录?什么是索引?之前我也没怎么细分这个概念,看到有人说先收录后索引,有人说先索引再收录,有人说百度说过索引就是收录,把我整糊涂了。
    到底是哪个先?还是是一样的。如果不一样,索引怎么查询数量,收录怎么查询数量呢?

  3. 就怕太过依赖AI算法导致以后自己不会弄了,再加上每代人的想法不一样,搜索习惯千差万别,都需要AI算法不断的训练,中间不知道要出多少问题,且行且珍惜!

留个言呗:

您的邮箱不会被显示在页面上。标有*的是必填项。