目前,Google 正在对其核心搜索算法进行一项修改,该算法的改变可能会对多达 1/10 的搜索结果排名造成影响。而 Google 是如何修改其搜索算法的呢?关于 Google 修改算法的技术,笔者援引相关文章进行了不改变原理的编译。
据悉,这一修改是基于 Google 研究人员开发的前沿自然语言处理技术(NLP),它在十个月前就已经应用于其搜索产品中。Google 声称,它可以通过更好地理解单词在句子中的相互关系来改善结果。此前,Google 在一次新闻发布会上讨论过一个例子,他们的搜索算法能够解析短语的含义——“Can you get medicine for someone pharmacy?”
Google 研究员兼搜索副总裁 Pandu Nayak 表示,旧的 Google 搜索算法是将这句话视为“词袋”。因此,它会查看那些重要的单词,即“medicine”和“pharmacy”,然后再简单地返回本地结果。而新的算法能够理解 “for someone” 这个词的语境,从而意识到这是一个关于你是否能向别人拿处方的问题,然后返回到正确的结果。
据了解,调整后的算法基于 BERT(雷锋网按,Bidirectional Encoder Representations from Transformers),即“变压器的双向编码器表示”。重要的是,BERT 不是把句子当做“词袋”来对待的,而是把句子中的所有单词作为一个整体来看待,这么做能够让它意识到“for someone”对句子的意义至关重要, 是不能够被省略的。
值得一提的是,BERT 是通过自我学习去注意到这些词的。Google 搜集了一个英语句子的语料库,随机删除了 15% 的单词,然后 BERT 被设置去指出被删的单词是什么。对此,高级研究员和研究高级副总裁 Jeff Dean 表示,随着时间推移,这种训练会使 NLP 模型更有效地理解上下文。
另外,Google 还引用了另一个例子——“parking on a hill with no curb”。其中,“no”一词对句子的查询至关重要;但在实现 BRET 算法之前的 Google 算法是忽略了这一点的。
Google 表示,在过去的几天里,他们已经推出了新的算法,新算法应该会影响到美国 10% 的英语搜索查询(其它语言和国家暂不讨论)。
雷锋网了解到,为了确保能够改进结果,所有对搜索的更改都要经过一系列的测试。在这些测试中,其中有一项是用 Google 的人工审核队伍来评估搜索结果的质量,以此来训练该公司的算法。不仅如此,Google 还进行了 live A/ live B 测试。
要知道,不是每次查询都会受到 BERT 的影响,它只是 Google 用来对搜索结果排序的许多不同的工具中最新的一个。至于它们是如何协同合作的,这还是一个谜。其实,Google 有意让其中的一些过程保持神秘,以防止有人利用它的系统发送垃圾邮件。
而另一个重要的原因是:当电脑利用机器学习做决定时,很难知道为什么它要作出这些选择。这就涉及到机器学习的“黑匣子”问题,如果结果在某种程度上是错误的话,是很难诊断出原因的。
Google 表示,他们已经努力确保将 BERT 添加到算法中不会增加偏差——这是机器学习的一个常见问题,机器学习的训练模型本来就存在偏差。此外,由于 BERT 是在一个巨大的英语句子语料库中训练的,并且这个语料库也有固有偏见,因此,这也是一个值得关注的问题。
Google 还表示,他们预计自己的算法不会引导流量产生什么重大变化,至少在大型出版商看来是这样的。事实上,只要 Google 的搜索算法出现变化,整个网路都会关注。
另外,值得一提的是,由于 Google 的搜索排名有了变化,一些公司也变得生死未卜。其实,每个通过网络流量赚钱的人都应该注意这一点。当提及搜索结果的质量时,Payak 表示:
- 这是最大的一个......这是我们在过去 5 年里所经历的最积极的变化,可能也是自一开始以来最大的变化之一。
本文转自雷锋网,如需转载请至雷锋网官网申请授权。