BERT vs Word2VEC:bert 是在消除词向量的含义吗?

数据挖掘 word2vec 词嵌入 伯特
2021-10-02 23:21:43

Word2vec:Word2vec 为每个标记/单词提供一个向量,这些向量对单词的含义进行编码。尽管这些向量不是人类可解释的,但通过与其他向量(例如,向量dog将与 的向量最相似cat)和各种有趣的方程(例如king-men+women=queen,证明如何好吧,这些向量包含单词的语义)。

word2vec的问题在于每个单词只有一个向量,但在现实世界中,每个单词都有不同的含义,具体取决于上下文,有时含义可能完全不同(例如bank as a financial institutevs bank of the river)。

Bert: Bert/ELMO(动态词嵌入)和 Word2vec 之间的一个重要区别是这些模型考虑了上下文,并且对于每个标记,都有一个向量。

现在的问题是,来自 Bert 的向量是否具有 word2Vec 的行为并解决了含义消歧问题(因为这是上下文词嵌入)?

实验 为了从 google 的预训练模型中获取向量,我使用了 bert-embedding-1.0.1库。我首先尝试查看它是否具有相似性为了测试,我从Dog, Cat, and Bank(金融机构)的维基百科页面中获取了第一段。类似的词dog是: ('dog',1.0) ('wolf', 0.7254540324211121) ('domestic', 0.6261438727378845) ('cat', 0.6036421656608582) ('canis', 0.57225221395492565321) ('mammal', 26956521) ('mammal', 26956521)第一个元素是token,第二个是相似度。

现在进行消歧测试:与Dog,Cat and Bank(金融学院)一起,我添加了一段来自维基百科的River bank 。这是为了检查 bert 是否可以区分两种不同类型的Bank. 这里的希望是,token bank (of river) 的向量将接近riverwater远离bank(financial institute),credit等的向量。financial结果如下: 第二个元素是显示上下文的句子。

('bank', 'in geography , the word bank generally refers to the land alongside a body of water . different structures are referred to as', 1.0)
('bank', 'a bank is a financial institution that accepts deposits from the public and creates credit .', 0.7796692848205566)
('bank', 'in limnology , a stream bank or river bank is the terrain alongside the bed of a river , creek , or', 0.7275459170341492)
('bank', 'in limnology , a stream bank or river bank is the terrain alongside the bed of a river , creek , or', 0.7121304273605347)
('bank', 'the bank consists of the sides of the channel , between which the flow is confined .', 0.6965076327323914)
('banks', 'markets to their importance in the financial stability of a country , banks are highly regulated in most countries .', 0.6590269804000854)
('banking', 'most nations have institutionalized a system known as fractional reserve banking under which banks hold liquid assets equal to only a', 0.6490173935890198)
('banks', 'most nations have institutionalized a system known as fractional reserve banking under which banks hold liquid assets equal to only a', 0.6224181652069092)
('financial', 'a bank is a financial institution that accepts deposits from the public and creates credit .', 0.614281952381134)
('banks', 'stream banks are of particular interest in fluvial geography , which studies the processes associated with rivers and streams and the deposits', 0.6096583604812622)
('structures', 'in geography , the word bank generally refers to the land alongside a body of water . different structures are referred to as', 0.5771245360374451)
('financial', 'markets to their importance in the financial stability of a country , banks are highly regulated in most countries .', 0.5701562166213989)
('reserve', 'most nations have institutionalized a system known as fractional reserve banking under which banks hold liquid assets equal to only a', 0.5462549328804016)
('institution', 'a bank is a financial institution that accepts deposits from the public and creates credit .', 0.537483811378479)
('land', 'in geography , the word bank generally refers to the land alongside a body of water . different structures are referred to as', 0.5331911444664001)
('of', 'in geography , the word bank generally refers to the land alongside a body of water . different structures are referred to as', 0.527492105960846)
('water', 'in geography , the word bank generally refers to the land alongside a body of water . different structures are referred to as', 0.5234918594360352)
('banks', 'bankfull discharge is a discharge great enough to fill the channel and overtop the banks .', 0.5213838815689087)
('lending', 'lending activities can be performed either directly or indirectly through due capital .', 0.5207482576370239)
('deposits', 'a bank is a financial institution that accepts deposits from the public and creates credit .', 0.5131596922874451)
('stream', 'in limnology , a stream bank or river bank is the terrain alongside the bed of a river , creek , or', 0.5108630061149597)
('bankfull', 'bankfull discharge is a discharge great enough to fill the channel and overtop the banks .', 0.5102289915084839)
('river', 'in limnology , a stream bank or river bank is the terrain alongside the bed of a river , creek , or', 0.5099104046821594)

这里,bank 最相似向量的结果(作为河岸,token 取自第一行的上下文,这就是为什么相似度得分为 1.0。所以,第二个是最接近的向量)。从结果可以看出,第一个最接近的token的含义和上下文有很大的不同。即使是token riverwater andstream`的相似度也较低。

因此,向量似乎并没有真正消除含义的歧义。这是为什么?上下文标记向量不是应该消除单词含义的歧义吗?

4个回答

BERT 和 ELMo 是该领域的最新进展。但是,它们与词义消歧的典型任务之间存在细微但主要的区别:word2vec(以及包括 GloVe 和 FastText 在内的类似算法)通过提供有关语言成分的知识来区分。它们提供语义知识,典型的词类型(即字典中的词),因此它们可以告诉你一些关于“香蕉”和“苹果”等词的含义的信息。

然而,这种知识是在原型的水平上,而不是它们在文本中的个别实例(例如“苹果和香蕉共和国是美国品牌”与“苹果和香蕉是流行的水果”)。相同的嵌入将用于相同单词类型(字符串)的所有实例(以及所有不同的含义)。

在过去的几年里,分布式语义方法被用来增强词嵌入,为每个词的含义学习几个不同的向量,例如 Adaptive Skipgram。这些方法遵循词嵌入的方法,枚举语言的组成部分,但分辨率更高。您最终会得到一个词义词汇表,并且相同的嵌入将应用于该词义的所有实例。

BERT 和 ELMo 代表了一种不同的方法。他们没有提供关于单词类型的知识,而是构建了一个上下文相关的,因此是特定于实例的嵌入,因此“苹果”这个词在“苹果收到负面投资推荐”和“苹果报告新记录”的句子中会有不同的嵌入销售”。本质上,“apple”这个词没有嵌入,而且你不能查询“最接近苹果的词”,因为每个词类型都有无限数量的嵌入。

因此,BERT 和 ELMo 处理词义之间的差异,但不会揭示词的不同意义。

我认为你的陈述中有一些误解。请考虑以下几点

  • BERT 不提供词级表示。它提供子词嵌入和句子表示。对于某些词,可能只有一个子词,而对于另一些词,该词可能被分解为多个子词。子词的表示不能以任何有意义的方式组合成词表示。

  • ELMO 确实提供了单词级别的表示。

  • 词嵌入不反映含义,而是反映上下文窗口内的共现统计。这意味着两个反义词可能具有相似的表示,因为它们可以在短上下文窗口内出现在相似的上下文中。

  • 连续表示空间上的距离不能很好地与解开的概念(如含义)混合,例如,两个反义词是否应该比两个不相关的词更接近?

话虽如此...

  • 如果您想要一个执行词义消歧 (WSD) 的模型,则应在有可用数据的情况下在 WSD 数据集上训练模型。
  • 如果您没有数据,您可以尝试类似本文中的最近邻方法,其中作者专门展示了针对不同上下文词嵌入的“bank”方法(见下图)。您还应该看看这篇其他文章,他们还研究了与 WSD 相关的 BERT 表示的几何学。

在此处输入图像描述

要问的最重要的问题是:您需要它的目的是什么?

  1. 声称 Word2Vec 在不考虑上下文的​​情况下为单词创建向量时,您是不对的。实际上,向量是使用窗口创建的(窗口的大小是 W2V 中的设置之一),以便获取相邻的单词,所以是的,它考虑了上下文!这就是为什么你可以有那些著名的方程式:国王男人 = 王后女人,两个同义词或具有相同词性的词之间的高余弦相似度,等等。

  2. 如果您希望有两种含义,为什么不创建两个模型,其中包含来自两个独立部门(银行和一般部门,让我们说)的数据。在这种情况下,每个模型将识别具有不同含义的银行。

再一次,你到底需要什么?

消除单词的多种含义的一种可能方法是在训练期间修改字符串文字。

因为bank,模型会学习bank_FINANCE和分开学习bank_RIVER从字符串文字创建单独的标记是一种允许标记捕获不同含义并消除这些单独含义的歧义的方法。

这通常用于词性,excuse可以是excuse_NOUNexcuse_VERB

添加特定于上下文的元数据以消除相同字符串文字的含义的歧义对于 word2vec 和 BERT 的工作方式类似。