深度学习笔记之Transformer(五) Position Embedding铺垫:Word2vec

这篇具有很好参考价值的文章主要介绍了深度学习笔记之Transformer(五) Position Embedding铺垫:Word2vec。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

在Transformer(三)自注意力机制一节中介绍了位置编码 ( Position Embedding ) (\text{Position Embedding}) (Position Embedding),本系列针对位置编码再回首,从公式角度重新认识位置编码。本节作为铺垫,介绍一下词向量模型—— Word2vec \text{Word2vec} Word2vec

回顾:关于词特征表示的 One-hot \text{One-hot} One-hot编码

在循环神经网络简单示例中,我们简单介绍了基于 One-hot \text{One-hot} One-hot向量的文本表征。

  • 关于某种语言的词汇表 V \mathcal V V内包含 ∣ V ∣ |\mathcal V| V个具体词语:
    V = { ω 1 , ω 2 , ⋯   , ω ∣ V ∣ } \mathcal V = \{\omega_1,\omega_2,\cdots,\omega_{|\mathcal V|}\} V={ω1,ω2,,ωV}
    One-hot \text{One-hot} One-hot编码将 ∣ V ∣ |\mathcal V| V均使用长度为 ∣ V ∣ |\mathcal V| V的向量进行文本表征。并满足:
    其中 j j j表示词语在 V \mathcal V V中的下标; ω j ( i ) \omega_j^{(i)} ωj(i)则是某词语 ω j \omega_j ωj的特征表示过程中,第 i i i个特征分量的结果。
    { ∑ j = 1 ∣ V ∣ ω j ( i ) = 1 ω j ( i ) ∈ { 0 , 1 } \begin{cases} \begin{aligned} & \sum_{j=1}^{|\mathcal V|} \omega_j^{(i)} = 1 \\ & \omega_j^{(i)} \in \{0,1\} \end{aligned} \end{cases} j=1Vωj(i)=1ωj(i){0,1}
  • 这种词向量的表示方法优点在于:每一个 One-hot \text{One-hot} One-hot编码必然与 V \mathcal V V中的某个词之间存在恒等映射关系,并且将文本信息转换为 One-hot \text{One-hot} One-hot编码过程中,不存在特征信息丢失的情况。
  • 相应地,该编码方式的缺陷也很明显:首先,每个 One-hot \text{One-hot} One-hot编码仅有 1 1 1位存在有效信息,其余位均为 0 0 0(稀疏编码);其次,无法表达词语之间的相关性信息。因为各向量之间内积结果必然是 0 0 0,从而使得它们之间线性无关
    但这种表达明显违背了语言自身的‘性质’。在对应的语境下,某些词之间存在关联关系。

目标函数构建

关于语料库与任务目标

我们已知的训练信息就是语料库 ( Corpus ) (\text{Corpus}) (Corpus)。这个语料库没有标签,只有一段一段地文本。我们将这些文本整合在一起,表示成一个长度为 T \mathcal T T超长序列
其中这里的 w t ( t = 1 , 2 , ⋯   , T ) w_t(t=1,2,\cdots,\mathcal T) wt(t=1,2,,T)表示基于词的随机变量。
D = { w 1 , w 2 , ⋯   , w t − 1 , w t , w t + 1 , ⋯   , w T } \mathcal D = \{w_1,w_2,\cdots,w_{t-1},w_t,w_{t+1},\cdots,w_{\mathcal T}\} D={w1,w2,,wt1,wt,wt+1,,wT}

而目标是求解基于语料库 D \mathcal D D内产生的词汇表 V \mathcal V V中每个词的分布式向量 ( Distributed Vector ) (\text{Distributed Vector}) (Distributed Vector)表示。而这个向量需要满足如下要求:

  • 能够在有限维数条件下尽量完整地描述某个词的语义信息
  • 向量能够表达出词与词之间的相似度关系

语言自身的角度观察,两个词语之间存在相似度关系的依据是:描述各词语对应的上下文 ( Context ) (\text{Context}) (Context)进行对比,如果对应上下文之间存在相似性,我们推断这两个词之间存在相似性关系。相反,如果已知两个词语之间存在相似性,那么它们所在文本序列的上下文之间同样存在相似性关系

似然函数构建

如何使用概率分布描述上下文信息 ? ? ?关于语料库 D \mathcal D D的联合概率分布表示如下:
P ( w 1 : T ) = P ( w 1 , w 2 , ⋯   , w T ) \mathcal P(w_{1:\mathcal T}) = \mathcal P(w_1,w_2,\cdots,w_{\mathcal T}) P(w1:T)=P(w1,w2,,wT)

  • 如果我们在上下文未知的条件下,想要知道这个长为 T \mathcal T T的序列中,第 t ( t ∈ { 1 , 2 , ⋯   , T } ) t(t \in \{1,2,\cdots,\mathcal T\}) t(t{1,2,,T})个位置的随机变量 w t w_t wt选择某个具体词的概率 P ( w t ) \mathcal P(w_t) P(wt)。由于没有任何额外信息,这等价于:从词汇表 V \mathcal V V中均匀采样出一个样本,而该采样概率是我们想要的具体词的概率,即 P ( w t ) = 1 ∣ V ∣ \begin{aligned}\mathcal P(w_t) = \frac{1}{|\mathcal V|}\end{aligned} P(wt)=V1
    在该条件下, P ( w t ) \mathcal P(w_t) P(wt)的结果是恒定不变的 ( Constant ) (\text{Constant}) (Constant)

  • P ( w t ) \mathcal P(w_t) P(wt)已知的条件下,联合概率分布 P ( w 1 : T ) \mathcal P(w_{1:\mathcal T}) P(w1:T)可表示为:
    其中这里的 Context ( w t ) \text{Context}(w_t) Context(wt)没有进行约束,即表示 w t w_t wt的上下文。即 w 1 , ⋯   , w t − 1 , w t + 1 , ⋯   , w T w_1,\cdots,w_{t-1},w_{t+1},\cdots,w_{\mathcal T} w1,,wt1,wt+1,,wT
    P ( w 1 : T ) = P ( w t ) ⋅ P [ Context ( w t ) ∣ w t ] \mathcal P(w_{1:\mathcal T}) = \mathcal P(w_t) \cdot \mathcal P[\text{Context}(w_t) \mid w_t] P(w1:T)=P(wt)P[Context(wt)wt]

  • 如果不对 Context ( w t ) \text{Context}(w_t) Context(wt)范围进行约束,那么它的计算量是非常复杂的。为了简化运算,我们引入假设 ( 1 ) (1) (1):给 Context \text{Context} Context范围设置成有限的窗口大小。我们假设窗口大小 2 C 2\mathcal C 2C。也就是说:我们仅考虑 w t w_t wt之前与之后的 C \mathcal C C个随机变量对 w t w_t wt产生的影响。因而上述公式可改写成如下形式:
    很明显,这只是一个‘近似相等’,因假设 ( 1 ) (1) (1)的约束将原始的联合概率分布 P ( w 1 : T ) \mathcal P(w_{1:\mathcal T}) P(w1:T)限制成了 P ( w t − C  :  t + C ) \mathcal P(w_{t-\mathcal C \text{ : } t+\mathcal C}) P(wtC : t+C)
    P ( w 1 : T ) = ( 1 ) P ( w t ) ⋅ P ( w t − C  :  t − 1 , w t + 1  :  t + C ∣ w t ) \mathcal P(w_{1:\mathcal T}) \overset{(1)}{=} \mathcal P(w_t) \cdot \mathcal P(w_{t-\mathcal C \text{ : } t-1},w_{t+1 \text{ : } t+\mathcal C} \mid w_t) P(w1:T)=(1)P(wt)P(wtC : t1,wt+1 : t+Cwt)

  • 由于 P ( w t ) \mathcal P(w_{t}) P(wt)是一个定值,因而我们关注的对象在条件概率分布 P ( w t − C  :  t − 1 , w t + 1  :  t + C ∣ w t ) \mathcal P(w_{t-\mathcal C \text{ : } t-1},w_{t+1 \text{ : } t+\mathcal C} \mid w_t) P(wtC : t1,wt+1 : t+Cwt)上面。最终关于 w t w_t wt条件似然 ( Conditional Likelihood ) (\text{Conditional Likelihood}) (Conditional Likelihood)表示如下:
    由于 P ( w t ) \mathcal P(w_t) P(wt)是定值,不会发生变化;因而 P ( w t ) \mathcal P(w_t) P(wt)的‘似然’不在考虑范围内。
    P ( w t − C  :  t − 1 , w t + 1  :  t + C ∣ w t ) \mathcal P(w_{t-\mathcal C \text{ : } t-1},w_{t+1 \text{ : } t+\mathcal C} \mid w_t) P(wtC : t1,wt+1 : t+Cwt)
    由于 w t w_t wt是我们任意指定位置的随机变量,从而得到一个关于 w t w_t wt的条件似然;实际上,我们可以取到 w 1 , w 2 , ⋯   , w T w_1,w_2,\cdots,w_{\mathcal T} w1,w2,,wT内的任意一个位置,每一个位置均对应一个条件似然
    共存在 T \mathcal T T个条件似然。
    P ( w t − C  :  t − 1 , w t + 1  :  t + C ∣ w t ) t = 1 , 2 , ⋯ T \mathcal P(w_{t-\mathcal C \text{ : } t-1},w_{t+1 \text{ : } t+\mathcal C} \mid w_t) \quad t=1,2,\cdots \mathcal T P(wtC : t1,wt+1 : t+Cwt)t=1,2,T
    引入假设 ( 2 ) (2) (2):如果给定对应 w t ( t ∈ { 1 , 2 , ⋯   , T } ) w_t(t \in\{1,2,\cdots,\mathcal T\}) wt(t{1,2,,T})的条件下,任意两个条件似然分布之间相互独立,那么完整的条件似然可以表示为上述 T \mathcal T T个条件似然的乘积结果
    ∏ t = 1 T P ( w t − C  :  t − 1 , w t + 1  :  t + C ∣ w t ) \prod_{t=1}^{\mathcal T} \mathcal P(w_{t-\mathcal C \text{ : } t-1},w_{t+1 \text{ : } t+\mathcal C} \mid w_t) t=1TP(wtC : t1,wt+1 : t+Cwt)
    为了简化上述的连乘形式,在此基础上,增加均值和 log \text{log} log函数,得到均值化的条件对数似然 ( Average Conditional Log Likelihood ) (\text{Average Conditional Log Likelihood}) (Average Conditional Log Likelihood)
    均值和 log ⁡ \log log函数并不影响‘完整条件似然’的单调性。
    1 T ∑ t = 1 T log ⁡ P ( w t − C  :  t − 1 , w t + 1  :  t + C ∣ w t ) \frac{1}{\mathcal T} \sum_{t=1}^{\mathcal T} \log \mathcal P(w_{t-\mathcal C \text{ : } t-1},w_{t+1 \text{ : } t+\mathcal C} \mid w_t) T1t=1TlogP(wtC : t1,wt+1 : t+Cwt)

  • 继续观察 P ( w t − C  :  t − 1 , w t + 1  :  t + C ∣ w t ) \mathcal P(w_{t-\mathcal C \text{ : } t-1},w_{t+1 \text{ : } t+\mathcal C} \mid w_t) P(wtC : t1,wt+1 : t+Cwt),它可看作是 w t w_t wt条件下,窗口内 2 C − 1 2\mathcal C - 1 2C1个词的联合概率分布,继续对其进行分解。引入假设 ( 3 ) (3) (3):在给定 w t w_t wt的条件下, w t − C , ⋯   , w t − 1 , w t + 1 , ⋯   , w t + C w_{t-\mathcal C},\cdots,w_{t-1},w_{t+1},\cdots,w_{t+\mathcal C} wtC,,wt1,wt+1,,wt+C之间独立同分布。基于该假设:可以将 P ( w t − C  :  t − 1 , w t + 1  :  t + C ∣ w t ) \mathcal P(w_{t-\mathcal C \text{ : } t-1},w_{t+1 \text{ : } t+\mathcal C} \mid w_t) P(wtC : t1,wt+1 : t+Cwt)分解成更细致地连乘形式
    该部分需要注意:这里说的是 w t − C ∣ w t , ⋯   , w t − 1 ∣ w t , w t + 1 ∣ w t , ⋯   , w t + C ∣ w t w_{t-\mathcal C} \mid w_t,\cdots,w_{t-1} \mid w_t,w_{t+1} \mid w_t,\cdots,w_{t+\mathcal C} \mid w_t wtCwt,,wt1wt,wt+1wt,,wt+Cwt它们之间独立同分布,而不仅仅是 w t − C , ⋯   , w t − 1 , w t + 1 , ⋯   , w t + C w_{t-\mathcal C},\cdots,w_{t-1},w_{t+1},\cdots,w_{t+\mathcal C} wtC,,wt1,wt+1,,wt+C独立同分布。如果是第二种情况,下面公式不成立。
    I = 1 T ∑ t = 1 T log ⁡ ∏ i ∈ [ − C , C ] ; i ≠ 0 P ( w t + i ∣ w t ) = 1 T ∑ t = 1 T ∑ i = − C ( ≠ 0 ) C log ⁡ P ( w t + i ∣ w t ) \begin{aligned} \mathcal I & = \frac{1}{\mathcal T} \sum_{t=1}^{\mathcal T} \log \prod_{ i \in [-\mathcal C,\mathcal C] ;i \neq 0} \mathcal P(w_{t+i} \mid w_t) \\ & = \frac{1}{\mathcal T} \sum_{t=1}^{\mathcal T} \sum_{i = -\mathcal C(\neq 0)}^{\mathcal C} \log \mathcal P(w_{t+i} \mid w_t) \end{aligned} I=T1t=1Tlogi[C,C];i=0P(wt+iwt)=T1t=1Ti=C(=0)ClogP(wt+iwt)

至此,通过 3 3 3个假设,将完整似然 ∏ t = 1 T P [ Context ( w t ) ∣ w t ] \begin{aligned}\prod_{t=1}^\mathcal T \mathcal P[\text{Context}(w_t) \mid w_t]\end{aligned} t=1TP[Context(wt)wt]简化并分解成了上述形式。基于上述的分解结果,仅需要对 P ( w t + i ∣ w t ) \mathcal P(w_{t+i} \mid w_t) P(wt+iwt)进行建模,就可将该似然求解出来。而 P ( w t + i ∣ w t ) \mathcal P(w_{t+i} \mid w_t) P(wt+iwt)物理意义是:给定一个中心词 w t w_t wt,基于该词所在窗口内的某个词 w t + i ( i ≤ C ) w_{t+i}(i \leq \mathcal C) wt+i(iC)后验概率
重点:由于假设窗口内的其他词 w t − C , ⋯   , w t − 1 , w t + 1 , ⋯   , w t + C w_{t-\mathcal C},\cdots,w_{t-1},w_{t+1},\cdots,w_{t+\mathcal C} wtC,,wt1,wt+1,,wt+C在给定 w t w_t wt情况下是‘独立同分布’的,因此这些词之间已经失去了顺序关系

极大似然估计的角度也能看出来,它将整个似然函数 ∏ t = 1 T P [ Context ( w t ) ∣ w t ] \begin{aligned}\prod_{t=1}^\mathcal T \mathcal P[\text{Context}(w_t) \mid w_t]\end{aligned} t=1TP[Context(wt)wt]分解成若干个 log ⁡ P ( w t + i ∣ w t ) \log \mathcal P(w_{t+i} \mid w_t) logP(wt+iwt)并各自独立地求解最大值。因此基于这种策略求解的 Vector \text{Vector} Vector结果并不包含序列信息

最终,将极大似然估计转换成常见的优化问题
其中 θ \theta θ表示模型参数,并转换成最小化问题。
J ( θ ) = − 1 T ∑ t = 1 T ∑ i = − C ( ≠ 0 ) C log ⁡ P ( w t + i ∣ w t ) \mathcal J(\theta) = - \frac{1}{\mathcal T} \sum_{t=1}^{\mathcal T} \sum_{i = -\mathcal C(\neq 0)}^{\mathcal C} \log \mathcal P(w_{t+i} \mid w_t) J(θ)=T1t=1Ti=C(=0)ClogP(wt+iwt)

Word2vec \text{Word2vec} Word2vec模型结构

基于上述描述,我们将对 P ( w t + i ∣ w t ) \mathcal P(w_{t+i} \mid w_t) P(wt+iwt)进行建模。由于 P ( w t + i ∣ w t ) \mathcal P(w_{t+i} \mid w_t) P(wt+iwt)内已经不包含窗口内词语的序列信息,因此将 P ( w t + i ∣ w t ) \mathcal P(w_{t+i} \mid w_t) P(wt+iwt)简化成如下形式:
其中 w i w_i wi表示输入的词语信息; w o w_o wo表示基于 w i w_i wi的,模型输出的词语分布。
P ( w t + i ∣ w t ) = P ( w o ∣ w i ) \mathcal P(w_{t+i} \mid w_t) = \mathcal P(w_o \mid w_i) P(wt+iwt)=P(wowi)
假设我们的 w i w_i wi取的是词汇表中的第 k k k个词语 ω k \omega_k ωk,对应的输入就是 ω k \omega_k ωk One-hot \text{One-hot} One-hot编码:
当然, One-hot \text{One-hot} One-hot编码自身就是一个很‘极端’的离散型分布。
w i = ω k = ( 0 , 0 , ⋯   , 1 ⏟ 位置 k , 0 , ⋯   , 0 ) T w_i = \omega_k = (0,0,\cdots,\underbrace{1}_{位置k},0,\cdots,0)^T wi=ωk=(0,0,,位置k 1,0,,0)T
关于 w o w_o wo可能取值的后验结果见下表:

w o ∣ w i = ω k w_o \mid w_i = \omega_k wowi=ωk ω 1 \omega_1 ω1 ω 2 \omega_2 ω2 ⋯ \cdots ω j \omega_j ωj ⋯ \cdots ω ∣ V ∣ \omega_{\mid\mathcal V\mid} ωV
P ( w o ∣ w i = ω k ) \mathcal P(w_o \mid w_i = \omega_k) P(wowi=ωk) p 1 p_1 p1 p 2 p_2 p2 ⋯ \cdots p j p_j pj ⋯ \cdots p ∣ V ∣ p_{\mid\mathcal V \mid} pV

既然是概率值,自然满足:
∑ j = 1 ∣ V ∣ p j = 1 { p j = P ( w o = ω j ∣ w i = ω k ) p j ∈ ( 0 , 1 ] \sum_{j=1}^{|\mathcal V|} p_j = 1 \quad \begin{cases} p_j = \mathcal P(w_o = \omega_j \mid w_i = \omega_k) \\ p_j \in (0,1] \end{cases} j=1Vpj=1{pj=P(wo=ωjwi=ωk)pj(0,1]
对于这样一个离散的后验分布,通常会想到多分类任务。因而可以使用 Softmax \text{Softmax} Softmax函数对各离散概率进行表示:
公式中的 x j x_j xj表示模型学习特征信息中的第 j j j个分量,也就是下面所说的隐藏层的第 j j j个输出;对应的 Softmax \text{Softmax} Softmax结果就是关于概率 p j p_j pj的预测结果。
p j = P ( w o = ω j ∣ w i = ω k ) = Softmax ( x j ) \begin{aligned} p_j & = \mathcal P(w_o = \omega_j \mid w_i = \omega_k) \\ & = \text{Softmax}(x_j) \end{aligned} pj=P(wo=ωjwi=ωk)=Softmax(xj)
由于 P ( w o = ω j ∣ w i = ω i ) \mathcal P(w_o = \omega_j \mid w_i = \omega_i) P(wo=ωjwi=ωi)本质上依然是一个 w o w_o wo作为输入,输出是各词对应概率分布的复杂函数,因此可以利用神经网络的通用逼近定理进行描述:

  • 其中模型的输入就是 w i = ω k w_i = \omega_k wi=ωk对应的 One-hot \text{One-hot} One-hot编码,长度为 ∣ V ∣ |\mathcal V| V;并且第 k k k个位置的元素是 1 1 1;对应输出是随机变量 w o w_o wo对应各词的概率分布结果,长度同样是 ∣ V ∣ |\mathcal V| V
  • 其中 Softmax \text{Softmax} Softmax的函数表示式为 Softmax ( x i ) = exp ⁡ ( x i ) ∑ j = 1 ∣ V ∣ exp ⁡ ( x j ) \begin{aligned} \text{Softmax}(x_i) = \frac{\exp(x_i)}{\sum_{j=1}^{|\mathcal V|} \exp(x_j)} \end{aligned} Softmax(xi)=j=1Vexp(xj)exp(xi),其中 x i ( i ∈ { 1 , 2 , ⋯   , ∣ V ∣ } ) x_i(i\in\{1,2,\cdots,|\mathcal V|\}) xi(i{1,2,,V})表示隐藏层的输出结果。该函数的输出结果保证了 ∑ j = 1 ∣ V ∣ p j = 1 ; p j ∈ ( 0 , 1 ] \begin{aligned}\sum_{j=1}^{|\mathcal V|} p_j = 1 ; p_j \in (0,1]\end{aligned} j=1Vpj=1;pj(0,1]的条件约束。
    深度学习笔记之Transformer(五) Position Embedding铺垫:Word2vec,深度学习,机器学习,深度学习,Word2vec

关于 Word2vec \text{Word2vec} Word2vec模型,它的隐藏层并没有设置激活函数,或者说它的激活函数就是一个恒等映射。其目的依然是为了计算过程简便。如果加入了激活函数,由于输入和输出都是 ∣ V ∣ |\mathcal V| V个神经元,对应隐藏层的计算量是非常恐怖的。因而只有在输出层保留一个 Softmax \text{Softmax} Softmax激活函数,其余层均只有线性计算操作。

由于隐藏层部分没有激活函数,仅包含线性运算操作,因而可以将其视作矩阵之间的乘法运算.下面剖析该神经网络隐藏层的执行过程:

  • 关于输入 ω i ∈ R ∣ V ∣ × 1 \omega_i \in \mathbb R^{|\mathcal V| \times 1} ωiRV×1对应隐藏层的权重信息使用矩阵进行表示。分别记作 W ∈ R ∣ V ∣ × d , U ∈ R d × ∣ V ∣ \mathcal W \in \mathbb R^{|\mathcal V| \times d},\mathcal U \in \mathbb R^{d \times |\mathcal V|} WRV×d,URd×V
  • 基于上述定义,输入层 ⇒ \Rightarrow 隐藏层,隐藏层 ⇒ \Rightarrow 输出层的矩阵乘法操作分别表示为:
    { [ ω i ] 1 × ∣ V ∣ T ⋅ W ∣ V ∣ × d ∈ R 1 × d { [ ω i ] T ⋅ W } 1 × d ⋅ U d × ∣ V ∣ ∈ R 1 × ∣ V ∣ \begin{cases} [\omega_i]_{1 \times |\mathcal V|}^T \cdot \mathcal W_{|\mathcal V| \times d} \in \mathbb R^{1 \times d} \\ \left\{[\omega_i]^T \cdot \mathcal W \right\}_{1 \times d} \cdot \mathcal U_{d \times |\mathcal V|} \in \mathbb R^{1 \times |\mathcal V|} \end{cases} {[ωi]1×VTWV×dR1×d{[ωi]TW}1×dUd×VR1×V

观察第一次矩阵乘法操作,由于 ω i \omega_i ωi是一个 One-hot \text{One-hot} One-hot编码向量(第 i i i分量为 1 1 1),那么 [ ω i ] T ⋅ W [\omega_i]^T \cdot \mathcal W [ωi]TW操作就是 W \mathcal W W内的第 i i i行元素 ∈ R 1 × d \in \mathbb R^{1 \times d} R1×d取出而已。记 W \mathcal W W为如下形式:
其中 w 1 , w 2 , ⋯   , w ∣ V ∣ w_1,w_2,\cdots,w_{|\mathcal V|} w1,w2,,wV表示 W \mathcal W W每行元素组成的列向量。
W = [ ( w 1 ) T ( w 2 ) T ⋮ ( w ∣ V ∣ ) T ] \mathcal W = \begin{bmatrix} (w_1)^T \\ (w_2)^T \\ \vdots \\ (w_{|\mathcal V|})^T \end{bmatrix} W= (w1)T(w2)T(wV)T
同理,对应 U \mathcal U U表示为如下形式:
其中 u 1 , u 2 , ⋯   , u ∣ V ∣ u_1,u_2,\cdots,u_{|\mathcal V|} u1,u2,,uV表示 U \mathcal U U每一列的列向量。
U = ( u 1 , u 2 , ⋯   , u j ⋯   , u ∣ V ∣ ) \mathcal U = (u_1,u_2,\cdots,u_j\cdots,u_{|\mathcal V|}) U=(u1,u2,,uj,uV)

至此,上面的矩阵乘法操作可以描述成如下形式:
{ [ ω i ] T ⋅ W = ( w i ) T ( w i ) T ⋅ U ⇒ ( w i ) T ⋅ ( u 1 , u 2 , ⋯   , u ∣ V ∣ ) = [ ( w i ) T u 1 , ( w i ) T u 2 , ⋯   , ( w i ) T u ∣ V ∣ ] \begin{cases} [\omega_i]^T \cdot \mathcal W = (w_i)^T \\ \begin{aligned} (w_i)^T \cdot \mathcal U & \Rightarrow (w_i)^T \cdot (u_1,u_2,\cdots,u_{|\mathcal V|}) \\ & = \left[(w_i)^T u_1,(w_i)^T u_2,\cdots,(w_i)^T u_{|\mathcal V|}\right] \end{aligned} \end{cases} [ωi]TW=(wi)T(wi)TU(wi)T(u1,u2,,uV)=[(wi)Tu1,(wi)Tu2,,(wi)TuV]
因而关于输出层(执行 Softmax \text{Softmax} Softmax前一层)中第 j ( j ∈ { 1 , 2 , ⋯   , ∣ V ∣ } ) j(j \in \{1,2,\cdots,|\mathcal V|\}) j(j{1,2,,V})神经元的输出 x j x_j xj可直接表示为如下形式:
它就是一个标量。
x j = ( w i ) T u j x_j = (w_i)^T u_j xj=(wi)Tuj
最终经过 Softmax \text{Softmax} Softmax函数,求出第 j j j个位置的概率分布 p j p_j pj。 同理,通过这种操作可以求解其他概率分布 p 1 , p 2 , ⋯   , p ∣ V ∣ p_1,p_2,\cdots,p_{|\mathcal V|} p1,p2,,pV
而最后的优化函数中的参数 θ \theta θ指的就是 Word2vec \text{Word2vec} Word2vec中的权重信息 W , U \mathcal W,\mathcal U W,U

重点总结

本质上 Word2vec \text{Word2vec} Word2vec本身是一个特殊的神经网络,因为这个网络中没有激活函数。并且该模型遵循的优化策略是负均值化的对数似然
J ( θ ) = − 1 T ∑ t = 1 T ∑ i = − C ( ≠ 0 ) C log ⁡ P ( w t + i ∣ w t ) \mathcal J(\theta) = - \frac{1}{\mathcal T} \sum_{t=1}^{\mathcal T} \sum_{i = -\mathcal C(\neq 0)}^{\mathcal C} \log \mathcal P(w_{t+i} \mid w_t) J(θ)=T1t=1Ti=C(=0)ClogP(wt+iwt)
该似然函数中的 3 3 3个假设使得该优化过程中丢失了序列信息。它的底层逻辑就是描述输出词输入词之间的相似性关系。

相关参考:
词向量(Word Vector)【白板推导系列】文章来源地址https://www.toymoban.com/news/detail-543673.html

到了这里,关于深度学习笔记之Transformer(五) Position Embedding铺垫:Word2vec的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【论文阅读随笔】RoPE/旋转编码:ROFORMER: ENHANCED TRANSFORMER WITH ROTARY POSITION EMBEDDING

    绝对位置编码比较简单,加或乘一个有次序的数 实现相对位置编码,也即意味着,要蕴含位置差的信息: 假设m是某个token的位置信息,n是另一个token的位置信息,要有类似 m − n m-n m − n 的信息,比较容易想到复数乘法会产生 m − n m-n m − n ,以及复数乘法和复数内积的性

    2024年03月11日
    浏览(45)
  • BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型

    BIT 是用 transformer 结构进行变化检测的一个孪生网络,它的 backbone 用的是 Resnet 结构,具体结构分析可以参考这个链接的作者写的,非常清楚, http://t.csdn.cn/rA9sH。 下面就是来讲我自己的实现过程,比较简单。 首先,在官网找到相应的代码,下载解压到自己的本地。github上面的

    2024年02月10日
    浏览(42)
  • Transformer通俗笔记:从Word2Vec、Seq2Seq逐步理解到GPT、BERT

    我在写上一篇博客《22下半年》时,有读者在文章下面评论道:“july大神,请问BERT的通俗理解还做吗?”,我当时给他发了张俊林老师的BERT文章,所以没太在意。 直到今天早上,刷到CSDN上一篇讲BERT的文章,号称一文读懂,我读下来之后,假定我是初学者,读不懂。 关于

    2024年02月02日
    浏览(34)
  • 机器学习算法原理lightgbm、word2vec、cnn、lstm、textcnn、bert、transformer、随机森林、lr

    首先需要说一说GBDT,它是一种基于决策树的集成算法,它使用的集成方法是boosting,其主要思想是通过多次迭代,每次迭代都学习一棵CART树来拟合之前 t-1 棵树的预测结果与训练样本真实值的残差,最终得到一个准确度更高的模型。 全称为Gradient Boosting Decision Tree。它是一种

    2024年02月13日
    浏览(37)
  • 机器学习笔记之优化算法(十)梯度下降法铺垫:总体介绍

    从本节开始,将介绍 梯度下降法 ( Gradient Descent,GD ) (text{Gradient Descent,GD}) ( Gradient Descent,GD ) 。 线搜索方法作为一种常见优化问题的 策略 ,该方法的特点是: 其迭代过程中,将 数值解 的方向和步长分开执行 。对应 数学符号 表达如下: 其中 P k mathcal P_k P k ​ 是一个向量

    2024年02月13日
    浏览(47)
  • 【ViT 微调时关于position embedding如何插值(interpolate)的详解】

    本文适合对Vision Transformer有一定了解(知道内部结构和一些实现细节,最好是精读过ViT这篇论文)的读者阅读,这篇博客不会详细说明ViT的结构和前向推断过程。 符号 含义 b b b batch size N N N patch size H H H W W W 低分辨率图像的高和宽 H ′ H\\\' H ′ W ′ W\\\' W ′ 高分辨率图像的高和

    2024年02月05日
    浏览(35)
  • 深度学习(六) Word Embedding

    前面我们已经了解了CNN卷积神经网络,这一篇文章我们将了解Word Embedding等词汇编码 首先我们得知道传统的编码方式是怎么样的。传统的编码是通过统计类型出现次数的多少来进行编码的,也就是类别A出现的次数为m,类别B出现的次数为n,那么他们就分别编码为m,n。这样编码

    2024年02月08日
    浏览(26)
  • PETR: Position Embedding Transformation for Multi-View 3D Object Detection

    PETR: Position Embedding Transformation for Multi-View 3D Object Detection 旷视 DETR3D 中 2D-3D过程 存在的问题: 预测的参考点坐标可能不准确,在采样图片特征时可能拿不到对应的特征。 只有参考点 投影位置的图像特征被使用,无法学到全局的特征。 采样图像特征的过程过于复杂,难于应用

    2024年02月16日
    浏览(52)
  • 深度学习的Natural Language Processing:从Word2Vec到BERT

    自然语言处理(Natural Language Processing,NLP)是人工智能(Artificial Intelligence,AI)领域的一个重要分支,其目标是让计算机理解、生成和翻译人类语言。随着大数据、云计算和深度学习等技术的发展,深度学习的NLP(Deep Learning for NLP)在处理自然语言文本和语音的能力得到了显

    2024年02月03日
    浏览(38)
  • 深度学习(3)--递归神经网络(RNN)和词向量模型Word2Vec

    目录 一.递归神经网络基础概念 二.自然语言处理-词向量模型Word2Vec 2.1.词向量模型 2.2.常用模型对比 2.3.负采样方案 2.4.词向量训练过程 递归神经网络(Recursive Neural Network, RNN)可以解决有时间序列的问题,处理诸如树、图这样的递归结构。 CNN主要应用在计算机视觉CV中,RNN主要

    2024年01月21日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包