引言
在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=1∑∣V∣ω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,⋯,wt−1,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)=∣V∣1。
在该条件下,
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,⋯,wt−1,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(wt−C : 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(wt−C : t−1,wt+1 : t+C∣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(wt−C : t−1,wt+1 : t+C∣wt)上面。最终关于 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(wt−C : t−1,wt+1 : t+C∣wt)
由于 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(wt−C : t−1,wt+1 : t+C∣wt)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=1∏TP(wt−C : t−1,wt+1 : t+C∣wt)
为了简化上述的连乘形式,在此基础上,增加均值和 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=1∑TlogP(wt−C : t−1,wt+1 : t+C∣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(wt−C : t−1,wt+1 : t+C∣wt),它可看作是 w t w_t wt条件下,窗口内 2 C − 1 2\mathcal C - 1 2C−1个词的联合概率分布,继续对其进行分解。引入假设 ( 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} wt−C,⋯,wt−1,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(wt−C : t−1,wt+1 : t+C∣wt)分解成更细致地连乘形式:
该部分需要注意:这里说的是
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 wt−C∣wt,⋯,wt−1∣wt,wt+1∣wt,⋯,wt+C∣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} wt−C,⋯,wt−1,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=1∑Tlogi∈[−C,C];i=0∏P(wt+i∣wt)=T1t=1∑Ti=−C(=0)∑ClogP(wt+i∣wt)
至此,通过
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=1∏TP[Context(wt)∣wt]简化并分解成了上述形式。基于上述的分解结果,仅需要对
P
(
w
t
+
i
∣
w
t
)
\mathcal P(w_{t+i} \mid w_t)
P(wt+i∣wt)进行建模,就可将该似然求解出来。而
P
(
w
t
+
i
∣
w
t
)
\mathcal P(w_{t+i} \mid w_t)
P(wt+i∣wt)的物理意义是:给定一个中心词
w
t
w_t
wt,基于该词所在窗口内的某个词
w
t
+
i
(
i
≤
C
)
w_{t+i}(i \leq \mathcal C)
wt+i(i≤C)的后验概率。重点:由于假设窗口内的其他词
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}
wt−C,⋯,wt−1,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=1∏TP[Context(wt)∣wt]分解成若干个 log P ( w t + i ∣ w t ) \log \mathcal P(w_{t+i} \mid w_t) logP(wt+i∣wt)并各自独立地求解最大值。因此基于这种策略求解的 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=1∑Ti=−C(=0)∑ClogP(wt+i∣wt)
Word2vec \text{Word2vec} Word2vec模型结构
基于上述描述,我们将对
P
(
w
t
+
i
∣
w
t
)
\mathcal P(w_{t+i} \mid w_t)
P(wt+i∣wt)进行建模。由于
P
(
w
t
+
i
∣
w
t
)
\mathcal P(w_{t+i} \mid w_t)
P(wt+i∣wt)内已经不包含窗口内词语的序列信息,因此将
P
(
w
t
+
i
∣
w
t
)
\mathcal P(w_{t+i} \mid w_t)
P(wt+i∣wt)简化成如下形式:其中
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+i∣wt)=P(wo∣wi)
假设我们的
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 wo∣wi=ω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(wo∣wi=ω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} p∣V∣ |
既然是概率值,自然满足:
∑
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=1∑∣V∣pj=1{pj=P(wo=ωj∣wi=ω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=ωj∣wi=ωk)=Softmax(xj)
由于
P
(
w
o
=
ω
j
∣
w
i
=
ω
i
)
\mathcal P(w_o = \omega_j \mid w_i = \omega_i)
P(wo=ωj∣wi=ω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=1∣V∣exp(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=1∑∣V∣pj=1;pj∈(0,1]的条件约束。
关于 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} ωi∈R∣V∣×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|} W∈R∣V∣×d,U∈Rd×∣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×∣V∣T⋅W∣V∣×d∈R1×d{[ωi]T⋅W}1×d⋅Ud×∣V∣∈R1×∣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]T⋅W操作就是将
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,⋯,w∣V∣表示
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⋮(w∣V∣)T
同理,对应
U
\mathcal U
U表示为如下形式:其中
u
1
,
u
2
,
⋯
,
u
∣
V
∣
u_1,u_2,\cdots,u_{|\mathcal V|}
u1,u2,⋯,u∣V∣表示
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⋯,u∣V∣)
至此,上面的矩阵乘法操作可以描述成如下形式:
{
[
ω
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]T⋅W=(wi)T(wi)T⋅U⇒(wi)T⋅(u1,u2,⋯,u∣V∣)=[(wi)Tu1,(wi)Tu2,⋯,(wi)Tu∣V∣]
因而关于输出层(执行
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,⋯,p∣V∣。
而最后的优化函数中的参数
θ
\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=1∑Ti=−C(=0)∑ClogP(wt+i∣wt)
该似然函数中的
3
3
3个假设使得该优化过程中丢失了序列信息。它的底层逻辑就是描述输出词与输入词之间的相似性关系。文章来源:https://www.toymoban.com/news/detail-543673.html
相关参考:
词向量(Word Vector)【白板推导系列】文章来源地址https://www.toymoban.com/news/detail-543673.html
到了这里,关于深度学习笔记之Transformer(五) Position Embedding铺垫:Word2vec的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!