Google的最新算法更新BERT可以帮助Google更好地理解自然语言,尤其是在会话搜索中。

BERT将影响大约10%的查询。这也将影响自然排名和精选片段。所以这是不小的改变!

您需要了解Google的新算法-聚企网络科技

但是您是否知道BERT不仅是任何算法更新,还是研究论文和机器学习自然语言处理框架?

实际上,在实施该产品的前一年,BERT引起了产品搜索活动的狂热风暴。

11月20日,我主持了一个搜索引擎杂志网络研讨会所提交黎明安德森,在Bertey董事总经理。

安德森(Anderson)解释了Google的BERT到底是什么,它如何工作,它将如何影响搜索以及是否可以尝试为其优化内容。

这是网络研讨会演示的回顾。

您需要了解Google的新算法-聚企网络科技

搜索中的BERT是什么?

BERT代表变压器的双向编码器表示,实际上有很多东西。

它更广为人知,称为Google BERT的Google搜索算法成分/ tool / framework,旨在帮助Search更好地理解Search中单词的细微差别和上下文,并使这些查询与有用的结果更好地匹配。

BERT也是一个开源研究项目和学术论文。首次出版于2018年十月BERT:深双向变压器的语言理解的岗前培训,纸是由雅各布·德夫林,明伟畅,李肯顿,克里斯蒂娜Toutanova撰写。

此外,BERT是Google生成的自然语言处理NLP框架,然后将其开源,因此整个自然语言处理研究领域实际上可以更好地从整体上理解自然语言。

您可能会发现,在线上大多数BERT提及都与Google BERT更新无关。

其他研究人员正在发表许多有关BERT的实际论文,这些论文并未使用您认为Google BERT算法更新时会使用的东西。

BERT极大地促进了自然语言对NLU的理解,而Google转向开源BERT的举动可能永远改变了自然语言的处理方式。

机器学习的ML和NLP社区对BERT感到非常兴奋,因为它需要花费大量的精力来进行自然语言的研究。它已经对很多单词进行了预训练-整个英语维基百科中有25亿个单词。

Vanilla BERT为机器学习和自然语言多样化任务中的神经网络提供了预先训练的起点层。

虽然BERT已在Wikipedia上进行了预培训,但已对问题和答案数据集进行了微调。

可以微调的那些问答数据集之一称为MS MARCO:由Microsoft构建和开放源代码的人类生成的机读理解数据集。

真正的Bing问题和答案(来自真正的Bing用户的匿名查询)已构建到包含问题和答案的数据集中,供ML和NLP研究人员进行微调,然后他们彼此竞争以建立最佳模型。

研究人员还与SQuAD(斯坦福问题解答数据集)就自然语言理解展开竞争。BERT现在甚至超过了SQuAD上的人类推理基准。

许多主要的AI公司也在构建BERT版本:

Microsoft通过MT-DNN(多任务深度神经网络)扩展了BERT 。

来自Facebook的RoBERTa

之所以创建SuperGLUE Benchmark是因为原始的GLUE Benchmark变得太容易了。

BERT可以解决哪些挑战?

我们人类很容易理解某些事情,包括搜索引擎在内,机器根本无法真正理解。

言语问题

单词的问题在于它们无处不在。越来越多的内容在那里

单词是有问题的,因为很多单词是模棱两可的,多义的和同义的。

Bert旨在帮助解决含糊不清的句子和短语,这些句子和短语由许多具有多种含义的单词组成。

歧义和一词多义

英语中几乎所有其他单词都有多种含义。用口语来说,由于同音词和韵律,情况更糟。

例如,对于带有英语口音的人,“四支蜡烛”和“叉子手柄”。另一个例子:喜剧演员的笑话主要是基于单词的玩法,因为单词很容易被误解。

对于我们人类来说,这不是一个很大的挑战,因为我们具有常识和上下文,因此我们可以理解围绕情境或对话上下文的所有其他单词,但搜索引擎和机器则没有。

对于未来的对话式搜索而言,这并不是一个好兆头。

词的上下文

“单词的含义是它在语言中的使用。” –哲学家路德维希·维特根斯坦,1953年

基本上,这意味着除非在特定上下文中使用过,否则单词没有任何意义。

单词的含义会随着句子的发展而在字面上发生变化,这是由于单词的多个词性可能会出现在给定的上下文中。

您需要了解Google的新算法-聚企网络科技

举个例子,我们仅用短句“我喜欢彼此的样子”就可以看到它。仅使用斯坦福词性标注器,就可以将“喜欢”一词视为两个独立的词性(POS)。

单词“喜欢”可以用作语音的不同部分,包括动词,名词和形容词。

因此,从字面上看,“喜欢”一词没有任何意义,因为它可以表示周围的任何含义。“喜欢”的上下文根据其周围单词的含义而变化。

句子越长,越难追踪句子中所有不同的词性。

在NLR和NLU上

自然语言识别无法理解

自然语言理解要求对上下文和常识推理的理解。对于机器而言,这是非常具有挑战性的,但对于人类而言,则非常简单。

自然语言理解不是结构化数据

结构化数据有助于消除歧义,但是两者之间的热乱又如何呢?

并非所有人或事物都映射到知识图上

仍然有很多空白需要填补。这是一个例子。

您需要了解Google的新算法-聚企网络科技

如您在这里看到的,我们拥有所有这些实体以及它们之间的关系。这是NLU出现的地方,因为它的任务是帮助搜索引擎填补命名实体之间的空白。

搜索引擎如何填补命名实体之间的空白?

生活在一起的词是紧密相连的:

同现。

同现提供了上下文。

同现会改变单词的含义。

共享相似邻居的词也紧密相连。

相似性和相关性。

语言模型在超大型文本语料库或大量单词集合上进行训练,以学习分布相似性…

您需要了解Google的新算法-聚企网络科技

…并建立用于词嵌入的向量空间模型。

您需要了解Google的新算法-聚企网络科技

NLP模型学习相似性和相关性距离的权重。但是,即使我们了解实体(事物)本身,也需要了解单词的上下文

单个单词本身没有语义,因此需要文本衔接。衔接是文本或句子中的语法和词汇链接,将文本结合在一起并赋予其含义。

语义上下文很重要。如果没有周围的单词,“ bucket”一词在句子中可能意味着任何东西。

他踢了桶。

我还没有将其排除在外。

桶里装满了水。

其中的重要部分是词性(POS)标记:

您需要了解Google的新算法-聚企网络科技

BERT如何工作

过去的语言模型(例如Word2Vec和Glove2Vec)建立了无上下文的词嵌入。另一方面,BERT提供“上下文”。

为了更好地理解BERT的工作原理,让我们看一下首字母缩写的含义。

B:双向

以前,所有语言模型(例如,Skip-gram和单词连续袋)都是单向的,因此它们只能在一个方向上移动上下文窗口-“ n”个单词(目标单词的左侧或右侧)的移动窗口了解单词的上下文。

您需要了解Google的新算法-聚企网络科技

大多数语言建模者都是单向的。他们只能从左到右或从右到左遍历单词的上下文窗口。仅在一个方向上,但不能同时在两个方向上。

BERT是不同的。BERT使用双向语言建模(这是第一个)。

您需要了解Google的新算法-聚企网络科技

BERT可以在单词上下文语言建模的任何一侧看到整个句子,并且几乎可以一次看到所有单词。

ER:编码器表示

编码内容被解码。这是一种进出机制。

T:变形金刚

BERT使用“变形金刚”和“隐蔽语言建模”。

过去自然语言理解的一大问题是无法理解单词所指的上下文。

例如代词。在对话中很容易忘记别人在谈论谁。即使是人类,也很难一直跟踪对话中提到的某人。

对于搜索引擎而言,这有点相似,但是他们很难跟踪您说他,他们,她,我们,它等等的时间。

因此,变形金刚的注意力部分实际上集中在代词和所有单词的含义上,这些含义和含义共同试图约束在给定上下文中与谁交谈或正在谈论的内容。

屏蔽语言建模阻止了目标单词的出现。需要使用遮罩,因为它可以防止聚焦的单词实际看到自己。

放置好遮罩后,BERT只会猜测丢失的单词是什么。这也是微调过程的一部分。

BERT帮助哪些类型的自然语言任务?

BERT将为以下方面提供帮助:

命名实体确定。

文本蕴含下一个句子的预测。

共指解析。

问题回答。

词义消歧。

自动汇总。

多义解析。

BERT在11个NLP任务中提高了最先进的(SOTA)基准。

BERT将如何影响搜索

BERT将帮助Google更好地理解人类语言

BERT对人类语言细微差别的理解将对Google解释查询的方式产生巨大的影响,因为人们显然在用更长的,质疑性的查询进行搜索。

BERT将帮助扩展会话搜索

BERT也将对语音搜索产生巨大影响(作为问题重重的Pygmalion的替代产品)。

期待国际SEO大跃进

BERT具有这种从单语言到多语言的能力,因为一种语言中的许多模式都可以转换为其他语言。

即使不一定完全了解语言本身,也有可能将很多学习内容转换为不同的语言。

Google将更好地理解“上下文细微差别”和模棱两可的查询

许多人一直抱怨他们的排名受到影响

但我认为那可能更多,因为Google在某种程度上更好地理解了查询的细微差别上下文和内容的细微差别上下文。

因此,也许Google能够更好地理解上下文细微差别和模棱两可的查询。

您是否应该(或可以)为BERT优化内容?

可能不会。

Google BERT是一个更好理解的框架。它本身不能判断内容。只是更好地了解那里有什么。

例如,Google Bert可能会突然了解更多信息,也许那里的页面过分优化,突然可能会受到诸如Panda之类的其他事物的影响,因为Google的BERT突然意识到某个特定页面与某件事并不相关。

这并不是说您正在为BERT进行优化,最好只是自然地编写代码。