大模型算法工程师经典面试题————为什么 Bert 的三个 Embedding 可以进行相加?

参考:为什么 Bert 的三个 Embedding 可以进行相加?  https://www.zhihu.com/question/374835153

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

Token Embedding、Segment Embedding、Position Embedding的意义我已经清楚了,但是这三个向量为什么可以相加呢?相加后向量的大小和方向就变了,语义不就变了吗?

标准答案

引用 【苏剑林老师的回答】

参考:https://kexue.fm/archives/4122

Embedding的数学本质,就是以one hot为输入的单层全连接。

也就是说,世界上本没什么Embedding,有的只是one hot。

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

通俗易懂点解释:三个向量concat之后走一次全连接,等价于各自embedding之后相加。

从数学角度解释

引用 【铁心核桃】

参考:https://www.zhihu.com/question/374835153/answer/2108264167

BERT的词嵌入由符号嵌入(Token Embedding)、片段嵌入(Segmentation Embedding)和位置嵌入(Position Embedding)合成得到,表示为:

 

上述三个嵌入分量都可以表达为“独热”(one-hot)编码表示输入与嵌入矩阵的乘积形式,即

角度1——从形象角度理解

上面的嵌入合成有点像在调颜色,先有一个基于字典的符号嵌入,“花里胡哨”的;然后按照符号类型属性(BERT为句子的隶属关系)添加颜色,相同的符号类型添加相同的颜色,于是具有相同属性符号的颜色就接近了一些;然后再按照位置,进一步添加不同的颜色。

角度2——从网络角度理解

(1)按照分别过网络再做求和融合的角度理解

三个one-hot编码向量与嵌入矩阵相乘,等价于构造三个以one-hot编码向量作为输入,输入维度分别为 |V| 、|S| 和 |P|,输出维度均为 H 的全连接网络。求和即为特征融合。如下图所示

(2)按照先做Concat融合再过网络的角度理解

        三个one-hot编码向量与嵌入矩阵相乘,按照矩阵分块,可以改写为

 

        对应的全连接网络变为一个大网络,输入维度为 |V| + |S| + |P| ,输出维度还是 H 。对应的网络结构图形如下图所示

角度3——从空间映射角度理解

三个嵌入的合成,是将符号空间、符号属性空间和位置空间三个看似“风马牛不相及”的空间表示,通过线性映射到一个统一的、同质的特征空间上去,然后再以求和的方式做坐标综合,如下图所示

 

如果按照角度2的到底先融合还是后融合的两个视角,那上面说的是先映射后融合模式。当然,我们也可以按照角度2做先融合后映射的思考。先做如下铺垫 

对应上面铺垫和我们的问题,可以知道 c=3 , M1 、 M2 和 M3 分别对应上面的符号空间、符号属性空间和位置空间。按照笛卡尔积的从“每个空间取点组团”的定义,我们的对三个one-hot编码的Concat操作即作出了 |V| + |S| + |P| 维积流形中的一个点。然后再做的一个的线性映射,等于去获取该点的 HHH 维内蕴坐标。

致谢

为什么 Bert 的三个 Embedding 可以进行相加?  https://www.zhihu.com/question/374835153

 

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值