为什么Bert的三个Embedding可以进行相加?

这个问题是知乎的这个问题:为什么Bert的三个Embedding可以进行相加?

我觉得解释合理的是这个回答,这个回答解释的是相加的意义

这里的相加是特征交叉而不是特征池化。

神经网络中相加是构造特征交互的方法,类似的还有elementwise乘,减法。

Bert这类的方法一个极大的优势就是通过BPT和字级别把词向量空间的稀疏性压缩下来,如果你在普通的embedding+nn里做这件事情,是有得有失的,好处是长尾的词变得更稠密了,使网络容易学习,对应的缺点就是损失了学的好的词的个性化。这样的操作更有利于神经网络的泛化。

我们怎么在其中找一个平衡点呢?通过特征的交叉,分别是token,position,segment。高阶的交叉带来更强的个性化表达能力,即带来丰富语义的变化。规避了transformer因为位置信息丢失造成的上下文语义感知能力。既能高速并行,又能上下文敏感,这简直让lstm羡慕死了。

而相加,是神经网络特征交叉的一种形式,注意,多个enbedding的向量空间是不同的,不然,相加和池化就没有区别了,只带来信息的聚合,而不是个性化的表达。

这套方法论起源于因子分解机FM。核心是寻找泛化和记忆的平衡,而搞定长尾是又是解决大部分NLP问题的有效方法。预训练又是另外一大神器,结合这个问题想想为什么ELMo没有取得这么好的效果,不得不不说,太妙了。

其他的回答如苏剑林的回答,回答了为什么可以相加。

现在我们将token,position,segment三者都用one hot表示,然后concat起来,然后才去过一个单层全连接,等价的效果就是三个Embedding相加

发布了25 篇原创文章 · 获赞 1 · 访问量 1428

猜你喜欢

转载自blog.csdn.net/Matrix_cc/article/details/104927328
今日推荐