词的表达
- 给定语料库
D
=
{
D
1
,
D
2
,
⋯
 
,
D
N
}
\mathbb{D}=\left\{\mathcal{D}_{1}, \mathcal{D}_{2}, \cdots, \mathcal{D}_{N}\right\}
D={D1,D2,⋯,DN},其中包含N篇文档。
每篇文档 D i \mathcal{D_i} Di包含单词序列 ( word I 1 i , word I 2 i , ⋯   , word I n i i ) \left(\operatorname{word}_{I_{1}^{i}}, \operatorname{word}_{I_{2}^{i}}, \cdots, \operatorname{word}_{I_{n_{i}}^{i}}\right) (wordI1i,wordI2i,⋯,wordInii),其中 I j i ∈ { 1 , 2 , ⋯   , V } I_{j}^{i} \in\{1,2, \cdots, V\} Iji∈{1,2,⋯,V}表示单词的编号:
i表示第i篇文档
j表示文档中的第j个单词
n i n_i ni表示第i篇文档中包含 n i n_i ni个单词
v = I j i v=I^i_j v=Iji表示第i篇文档的第j个单词为 word v \operatorname{word}_v wordv
所有单词来自于词汇表 V = { w o r d 1 , word 2 , ⋯   , word V } \mathbb{V}=\left\{\mathrm{word}_{1}, \text { word }_{2}, \cdots, \text { word }_{V}\right\} V={word1, word 2,⋯, word V},其中V表示词汇表的大小。
词的表达任务要解决的问题是:如何表达每个单词的 word v \operatorname{word}_v wordv - 最简单的表示方式是one-hot编码,对于词汇表的第v个单词
word
v
\operatorname{word}_v
wordv将其表示为:
word
v
→
(
0
,
0
,
⋯
 
,
0
,
1
,
0
,
⋯
 
,
0
)
T
\operatorname{word}_{v} \rightarrow(0,0, \cdots, 0,1,0, \cdots, 0)^{T}
wordv→(0,0,⋯,0,1,0,⋯,0)T
即第v位取值为1,剩余位取值为0.
这种表示方法有两个主要缺点:
无法表达单词之间的关系,对于任意一对单词 ( word i , word j ) \left(\text { word }_{i}, \text { word }_{j}\right) ( word i, word j),其向量的距离为 2 \sqrt 2 2。
单词维度过高。对于中文词汇表,其大小可能达到数十万,因此one-hot向量的维度也在数十万维,这对于存储、计算都消耗过大。 Bow:Bag of Words
:词在文档中不考虑顺序,这称作词袋模型。
Word2Vec
CBOW模型
CBOW
模型(Continuous bag-of-word
):根据上下文来预测一个单词。
一个单词上下文
网络结构
- 在一个单词上下文的
CBOW
模型中,输入的是前一个单词,输出是后一个单词;输入为输出的上下文,由于只有一个单词作为输入,因此称作一个单词的上下文。 - 一个单词上下文的
CBOW
模型如下:
其中:
- N为隐层的大小,即隐向量 h → ∈ R N \overrightarrow{\mathbf{h}} \in \mathbb{R}^{N} h∈RN。
- 网络输入
x
→
=
(
x
1
,
x
2
,
⋯
 
,
x
V
)
T
∈
R
V
\overrightarrow{\mathbf{x}}=\left(x_{1}, x_{2}, \cdots, x_{V}\right)^{T} \in \mathbb{R}^{V}
x=(x1,x2,⋯,xV)T∈RV,它是输入单词(即上下文单词)的
one-hot
编码,其中只有一位为1,其他位都为0。 - 网络输出 y → = ( y 1 , y 2 , ⋯   , y V ) T ∈ R V \overrightarrow{\mathbf{y}}=\left(y_{1}, y_{2}, \cdots, y_{V}\right)^{T} \in \mathbb{R}^{V} y=(y1,y2,⋯,yV)T∈RV,它是输出单词为词汇表个单词的概率。
- 相邻层之间为全连接:
- 输入层和隐层之间的权重矩阵为W,其尺寸 V × N V \times N V×N。
- 隐层和输出层之间的权重矩阵为 W ′ \mathbf{W}^{\prime} W′,其尺寸为 N × V N \times V N×V。
- 假设没有激活函数,没有偏置项。给定输入
x
→
∈
R
V
\overrightarrow{\mathbf{x}} \in \mathbb{R}^{V}
x∈RV,则其对应的隐向量
h
→
∈
R
N
\overrightarrow{\mathbf{h}} \in \mathbb{R}^{N}
h∈RN为:
h
→
=
w
T
x
→
\overrightarrow{\mathbf{h}}=\mathbf{w}^{T} \overrightarrow{\mathbf{x}}
h=wTx。令
W
=
[
w
→
1
T
w
→
2
T
⋮
w
→
V
T
]
\mathbf{W}=\left[ \begin{array}{c}{\overrightarrow{\mathbf{w}}_{1}^{T}} \\ {\overrightarrow{\mathbf{w}}_{2}^{T}} \\ {\vdots} \\ {\overrightarrow{\mathbf{w}}_{V}^{T}}\end{array}\right]
W=⎣⎢⎢⎢⎡w1Tw2T⋮wVT⎦⎥⎥⎥⎤
由于 x → \overrightarrow{\mathbf{x}} x是个one-hot
编码,假设它为此表 V \mathbb{V} V中第k个单词 word k \operatorname{word}_k wordk,即:
x 1 = 0 , x 2 = 0 , ⋯   , x k − 1 = 0 , x k = 1 , x k + 1 = 0 , ⋯   , x V = 0 x_{1}=0, x_{2}=0, \cdots, x_{k-1}=0, x_{k}=1, x_{k+1}=0, \cdots, x_{V}=0 x1=0,x2=0,⋯,xk−1=0,xk=1,xk+1=0,⋯,xV=0
则有: h → = w → k \overrightarrow{\mathbf{h}}=\overrightarrow{\mathbf{w}}_{k} h=wk。
即:W的第k行 w k → \overrightarrow{\mathbf{w}_k} wk就是词表 V \mathbb{V} V中的第k个单词 word k \operatorname{word}_k wordk的表达,称作单词 word k \operatorname{word}_k wordk的输入向量。 - 给定隐向量
h
→
\overrightarrow{\mathbf{h}}
h,其对应的输出向量
u
→
∈
R
v
\overrightarrow{\mathbf{u}} \in \mathbb{R}^{v}
u∈Rv为:
u
→
=
W
′
T
h
→
\overrightarrow{\mathbf{u}}=\mathbf{W^{\prime}}^{T} \overrightarrow{\mathbf{h}}
u=W′Th
令: W ′ = [ w → 1 ′ , w → 2 ′ , ⋯   , w → V ′ ] \mathbf{W}^{\prime}=\left[\overrightarrow{\mathbf{w}}_{1}^{\prime}, \overrightarrow{\mathbf{w}}_{2}^{\prime}, \cdots, \overrightarrow{\mathbf{w}}_{V}^{\prime}\right] W′=[w1′,w2′,⋯,wV′]
则有: u j = w → j ′ ⋅ h → u_{j}=\overrightarrow{\mathbf{w}}_{ j}^{\prime} \cdot \overrightarrow{\mathbf{h}} uj=wj′⋅h,表示词表 V \mathbb{V} V中,第j个单词 word j \operatorname{word}_j wordj的得分。
w j → ′ \overrightarrow{\mathbf{w}_j}^{\prime} wj′为矩阵 W ′ \mathbf{W}^{\prime} W′的第j列,称作单词 word j \operatorname{word}_j wordj的输出向量。 -
u
→
\overrightarrow{\mathbf{u}}
u之后接入一层
softmax
层,则有:
y j = p ( word j ∣ x → ) = exp ( u j ) ∑ j ′ = 1 V exp ( u j ′ ) , j = 1 , 2 , ⋯   , V y_{j}=p\left(\text { word }_{j} | \overrightarrow{\mathbf{x}}\right)=\frac{\exp \left(u_{j}\right)}{\sum_{j^{\prime}=1}^{V} \exp \left(u_{j^{\prime}}\right)}, \quad j=1,2, \cdots, V yj=p( word j∣x)=∑j′=1Vexp(uj′)exp(uj),j=1,2,⋯,V
即 y j y_j yj表示词汇表 V \mathbb{V} V中第j个单词 word j \operatorname{word}_j wordj为真实输出单词的概率。 - 假设给定一个单词
word
I
\operatorname{word}_{I}
wordI(它称作上下文),观测到它的下一个单词为
word
O
\operatorname{word}_{O}
wordO。
假设 word O \operatorname{word}_{O} wordO对应的输出编号是 j ∗ j^{*} j∗,则网络的优化目标是:
max W , W ′ p ( word O ∣ word I ) = max W , W ′ y j ∗ = max W , W ′ log exp ( w → j ∗ ′ ⋅ w → I ) ∑ i = 1 V exp ( w → i ′ ⋅ w → I ) = max W , W ′ [ w → j ∗ ′ ⋅ w → I − log ∑ i = 1 V exp ( w → i ′ ⋅ w → I ) ] \begin{array}{c}{\max _{\mathbf{W}, \mathbf{W}^{\prime}} p\left(\operatorname{word}_{O} | \text { word }_{I}\right)=\max _{\mathbf{W}, \mathbf{W}^{\prime}} y_{j^{*}}=\max _{\mathbf{W}, \mathbf{W}^{\prime}} \log \frac{\exp \left(\overrightarrow{\mathbf{w}}_{j^{*}}^{\prime} \cdot \overrightarrow{\mathbf{w}}_{I}\right)}{\sum_{i=1}^{V} \exp \left(\overrightarrow{\mathbf{w}}_{i}^{\prime} \cdot \overrightarrow{\mathbf{w}}_{I}\right)}} \\ {=\max _{\mathbf{W}, \mathbf{W}^{\prime}}\left[\overrightarrow{\mathbf{w}}_{j^{*}}^{\prime} \cdot \overrightarrow{\mathbf{w}}_{I}-\log \sum_{i=1}^{V} \exp \left(\overrightarrow{\mathbf{w}}_{i}^{\prime} \cdot \overrightarrow{\mathbf{w}}_{I}\right)\right]}\end{array} maxW,W′p(wordO∣ word I)=maxW,W′yj∗=maxW,W′log∑i=1Vexp(wi′⋅wI)exp(wj∗′⋅wI)=maxW,W′[wj∗′⋅wI−log∑i=1Vexp(wi′⋅wI)]
其中 w → I \overrightarrow{\mathbf{w}}_I wI为输入单词 word I \operatorname{word}_I wordI的输入向量。 - 考虑到
u
j
=
w
→
j
′
⋅
w
→
I
u_{j}=\overrightarrow{\mathbf{w}}_{j}^{\prime} \cdot \overrightarrow{\mathbf{w}}_{I}
uj=wj′⋅wI,定义:
E = − log p ( word O ∣ word I ) = − [ w → j ∗ ′ ⋅ w → I − log ∑ i = 1 V exp ( w → i ′ ⋅ w → I ) ] = − [ u j ∗ − log ∑ i = 1 V exp ( u i ) ] \begin{array}{c}{E=-\log p\left(\operatorname{word}_{O} | \operatorname{word}_{I}\right)=-\left[\overrightarrow{\mathbf{w}}_{j^{*}}^{\prime} \cdot \overrightarrow{\mathbf{w}}_{I}-\log \sum_{i=1}^{V} \exp \left(\overrightarrow{\mathbf{w}}_{i}^{\prime} \cdot \overrightarrow{\mathbf{w}}_{I}\right)\right]} \\ {=-\left[u_{j^{*}}-\log \sum_{i=1}^{V} \exp \left(u_{i}\right)\right]}\end{array} E=−logp(wordO∣wordI)=−[wj∗′⋅wI−log∑i=1Vexp(wi′⋅wI)]=−[uj∗−log∑i=1Vexp(ui)]
则优化目标: min E \operatorname{min} E minE
参数更新
- 定义
t
j
=
I
(
j
=
j
∗
)
t_j = \mathbb{I}(j=j^{*})
tj=I(j=j∗),即第j个输出单元对应于真实的输出单词
word
O
\operatorname{word}_O
wordO时,它为1,否则为0.
定义: e j = ∂ E ∂ u j = y j − t j e_{j}=\frac{\partial E}{\partial u_{j}}=y_{j}-t_{j} ej=∂uj∂E=yj−tj
它刻画了每个输出单元的预测误差:
- 当 j = j ∗ j=j^* j=j∗时: e j = y j − 1 e_j=y_j-1 ej=yj−1,它刻画了输出概率( y j y_j yj)与真实概率1之间的差距
- 当 j ≠ j ∗ j \neq j^{*} j̸=j∗时: e j = y j e_j=y_j ej=yj,它刻画了输出概率与真实概率之间的差距
- 根据:
u j = w → j ′ ⋅ h → → ∂ u j ∂ w → j ′ = h → u_{j}=\overrightarrow{\mathbf{w}}_{j}^{\prime} \cdot \overrightarrow{\mathbf{h}} \quad \rightarrow \quad \frac{\partial u_{j}}{\partial \overrightarrow{\mathbf{w}}_{j}^{\prime}}=\overrightarrow{\mathbf{h}} uj=wj′⋅h→∂wj′∂uj=h
则有:
∂ E ∂ w → j ′ = ∂ E ∂ u j × ∂ u j ∂ w → j ′ = e j h → \frac{\partial E}{\partial \overrightarrow{\mathbf{w}}_{j}^{\prime}}=\frac{\partial E}{\partial u_{j}} \times \frac{\partial u_{j}}{\partial \overrightarrow{\mathbf{w}}_{j}^{\prime}}=e_{j} \overrightarrow{\mathbf{h}} ∂wj′∂E=∂uj∂E×∂wj′∂uj=ejh
则 w j → ′ \overrightarrow{\mathbf{w}_j}^{\prime} wj′更新规则为:
w → j ′ ( n e w ) = w → j ′ ( o l d ) − η e j h → \overrightarrow{\mathbf{w}}_{j}^{\prime(n e w)}=\overrightarrow{\mathbf{w}}_{j}^{\prime(o l d)}-\eta e_{j} \overrightarrow{\mathbf{h}} wj′(new)=wj′(old)−ηejh
其物理意义为:
- 当估计过量(
e
j
>
0
→
y
j
>
t
j
e_{j}>0 \rightarrow y_{j}>t_{j}
ej>0→yj>tj)时,
w
j
→
′
\overrightarrow{\mathbf{w}_j}^{\prime}
wj′会减去一定比例的
h
→
\overrightarrow{\mathbf{h}}
h。
这发生在第j个输出单元不对应于真实的输出单元时。 - 当估计不足(
e
j
<
0
→
y
j
<
t
j
e_{j}<0 \rightarrow y_{j}<t_{j}
ej<0→yj<tj)时,
w
j
→
′
\overrightarrow{\mathbf{w}_j}^{\prime}
wj′会加上一定比例的
h
→
\overrightarrow{\mathbf{h}}
h。
这发生在第j个输出单元刚好对应于真实的输出单词时。 - 当 y j ≃ t j y_{j} \simeq t_{j} yj≃tj时,更新的幅度将非常微小。
- 定义:
E
H
→
=
∂
E
∂
h
→
=
(
∂
u
→
∂
h
→
)
T
∂
E
∂
u
→
\overrightarrow{\mathbf{E H}}=\frac{\partial E}{\partial \overrightarrow{\mathbf{h}}}=\left(\frac{\partial \overrightarrow{\mathbf{u}}}{\partial \overrightarrow{\mathbf{h}}}\right)^{T} \frac{\partial E}{\partial \overrightarrow{\mathbf{u}}}
EH=∂h∂E=(∂h∂u)T∂u∂E
根据: u → = W ′ T h → → ( ∂ u → ∂ h → ) T = W ′ \overrightarrow{\mathbf{u}}=\mathbf{W}^{\prime T} \overrightarrow{\mathbf{h}} \quad \rightarrow \quad\left(\frac{\partial \overrightarrow{\mathbf{u}}}{\partial \overrightarrow{\mathbf{h}}}\right)^{T}=\mathbf{W}^{\prime} u=W′Th→(∂h∂u)T=W′
则有: E H → = W ′ e → = ∑ j = 1 V e j w → j ′ \overrightarrow{\mathbf{E H}}=\mathbf{W}^{\prime} \overrightarrow{\mathbf{e}}=\sum_{j=1}^{V} e_{j} \overrightarrow{\mathbf{w}}_{j}^{\prime} EH=W′e=j=1∑Vejwj′
E H → \overrightarrow{\mathbf{EH}} EH的物理意义为:词汇表 V \mathbb{V} V中所有单词的输出向量的加权和,其权重为 e j e_j ej。 - 考虑到
h
→
=
W
T
x
→
\overrightarrow{\mathbf{h}}=\mathbf{W}^{T} \overrightarrow{\mathbf{x}}
h=WTx,则有:
∂
E
∂
w
k
,
i
=
∂
E
∂
h
i
×
∂
h
i
∂
w
k
,
i
=
E
H
i
×
x
k
\frac{\partial E}{\partial w_{k, i}}=\frac{\partial E}{\partial h_{i}} \times \frac{\partial h_{i}}{\partial w_{k, i}}=E H_{i} \times x_{k}
∂wk,i∂E=∂hi∂E×∂wk,i∂hi=EHi×xk
由于 x → \overrightarrow{\mathbf{x}} x是one-hot
编码,所以它只有一个分量非零,因此 ∂ E ∂ W \frac{\partial E}{\partial \mathbf{W}} ∂W∂E只有一行非零,且该非零行就等于 E H → \overrightarrow{\mathbf{EH}} EH。因此更新方程:
w → I ( n e w ) = w → I ( o l d ) − η E H → \overrightarrow{\mathbf{w}}_{I}^{(n e w)}=\overrightarrow{\mathbf{w}}_{I}^{(o l d)}-\eta \overrightarrow{\mathbf{E} \mathbf{H}} wI(new)=wI(old)−ηEH
其中 w → I \overrightarrow{\mathbf{w}}_{I} wI为非零分量对应的W中的行,而W的其他行在本次更新中都保持不变。 - 考虑更新行的第k列,则:
w I , k ( n e w ) = w I , k ( o l d ) − η ∑ j = 1 V e j w j , k ′ w_{I, k}^{(n e w)}=w_{I, k}^{(o l d)}-\eta \sum_{j=1}^{V} e_{j} w_{j, k}^{\prime} wI,k(new)=wI,k(old)−ηj=1∑Vejwj,k′
当 y j ≃ t j y_{j} \simeq t_{j} yj≃tj时,更新的幅度非常微小。
当 y j y_j yj与 t j t_j tj差距越大,则更新的幅度越大。 - 当给定许多训练样本,每个样本由两个单词组成,上述更新不断进行,更新的效果不断积累。
- 根据单词的共现效果,输出向量与输入向量相互作用并达到平滑。
- 输出向量
w
→
′
\overrightarrow{\mathbf{w}}^{\prime}
w′的更新依赖于输入向量
w
→
I
:
w
→
j
′
(
n
e
w
)
=
w
→
j
′
(
o
l
d
)
−
η
e
j
h
→
\overrightarrow{\mathbf{w}}_{I} : \quad \overrightarrow{\mathbf{w}}_{j}^{\prime(n e w)}=\overrightarrow{\mathbf{w}}_{j}^{\prime(o l d)}-\eta e_{j} \overrightarrow{\mathbf{h}}
wI:wj′(new)=wj′(old)−ηejh。
这里隐向量 h → \overrightarrow{\mathbf{h}} h等于输入向量 w → I \overrightarrow{\mathbf{w}}_I wI。 - 输入向量
w
→
I
\overrightarrow{\mathbf{w}}_I
wI的更新依赖于输出向量
w
→
′
:
w
→
I
(
n
e
w
)
=
w
→
I
(
o
l
d
)
−
η
E
H
→
\overrightarrow{\mathbf{w}}^{\prime} : \quad \overrightarrow{\mathbf{w}}_{I}^{(n e w)}=\overrightarrow{\mathbf{w}}_{I}^{(o l d)}-\eta \overrightarrow{\mathbf{E} \mathbf{H}}
w′:wI(new)=wI(old)−ηEH。
这里 E H → = ∑ j = 1 V e j w → j ′ \overrightarrow{\mathbf{E H}}=\sum_{j=1}^{V} e_{j} \overrightarrow{\mathbf{w}}_{j}^{\prime} EH=∑j=1Vejwj′为词汇表 V \mathbb{V} V中所有单词的输出向量的加权和,其权重为 e j e_j ej。
- 输出向量
w
→
′
\overrightarrow{\mathbf{w}}^{\prime}
w′的更新依赖于输入向量
w
→
I
:
w
→
j
′
(
n
e
w
)
=
w
→
j
′
(
o
l
d
)
−
η
e
j
h
→
\overrightarrow{\mathbf{w}}_{I} : \quad \overrightarrow{\mathbf{w}}_{j}^{\prime(n e w)}=\overrightarrow{\mathbf{w}}_{j}^{\prime(o l d)}-\eta e_{j} \overrightarrow{\mathbf{h}}
wI:wj′(new)=wj′(old)−ηejh。
- 平衡的速度与效果取决于单词的共现分布,以及学习率。
Skip-Gram
CBOW
模型是根据前几个单词(即上下文)来预测下一个单词,而Skip-Gram
模型是根据一个单词来预测前几个单词(即上下文)。- 在
CBOW
模型中:
- 同一个单词的表达(即输入向量 w → I \overrightarrow{\mathbf{w}}_I wI)是相同的,因为参数 W \mathbf{W} W是共享的。
- 同一个单词的输出向量 w → O ′ \overrightarrow{\mathbf{w}}_{O}^{\prime} wO′是不同的,因为输入向量随着上下文不同而不同。
- 在
Skip-Gram
模型中:
- 同一个单词的表达(即输入向量 w → O ′ \overrightarrow{\mathbf{w}}_{O}^{\prime} wO′)是相同的,因为参数 W ′ \mathbf{W}^{\prime} W′是共享的
- 同一个单词的输入向量 w → I \overrightarrow{\mathbf{w}}_{I} wI是不同的,因为输入向量随着上下文不同而不同。
网络结构
Skip-Gram
网络模型如下。其中:
- 网络输入 x → = ( x 1 , x 2 , ⋯   , x V ) T ∈ R V \overrightarrow{\mathbf{x}}=\left(x_{1}, x_{2}, \cdots, x_{V}\right)^{T} \in \mathbb{R}^{V} x=(x1,x2,⋯,xV)T∈RV,它是输入单词的one-hot编码,其中只有一位为1,其他都为0。
- 网络输出 y → 1 , y → 2 , ⋯   , y → C \overrightarrow{\mathbf{y}}_{1}, \overrightarrow{\mathbf{y}}_{2}, \cdots, \overrightarrow{\mathbf{y}}_{C} y1,y2,⋯,yC,其中 y → c = ( y 1 c , y 2 c , ⋯   , y V c ) T ∈ R V \overrightarrow{\mathbf{y}}_{c}=\left(y_{1}^{c}, y_{2}^{c}, \cdots, y_{V}^{c}\right)^{T} \in \mathbb{R}^{V} yc=(y1c,y2c,⋯,yVc)T∈RV是第c个输出单词为词汇表各单词的概率。
- 对于网络中的每个输出
y
c
→
\overrightarrow{y_c}
yc,其权重矩阵都相同,为
W
′
W^{\prime}
W′,这称作权重共享。
这里的权重共享隐含着:每个单词的输出向量是固定的、唯一的,与其他单词的输出无关。
Skip-Gram
网络模型中,设网络第c个输出的第j个分量为 u j c = w → j ′ ⋅ h → u_{j}^{c}=\overrightarrow{\mathbf{w}}_{j}^{\prime} \cdot \overrightarrow{\mathbf{h}} ujc=wj′⋅h,则有:
y j c = p ( word j c ∣ x → ) = exp ( u j c ) ∑ k = 1 V exp ( u k c ) ; c = 1 , 2 , ⋯   , C ; j = 1 , 2 , ⋯   , V y_{j}^{c}=p\left(\operatorname{word}_{j}^{c} | \overrightarrow{\mathbf{x}}\right)=\frac{\exp \left(u_{j}^{c}\right)}{\sum_{k=1}^{V} \exp \left(u_{k}^{c}\right)} ; \quad c=1,2, \cdots, C ; \quad j=1,2, \cdots, V yjc=p(wordjc∣x)=∑k=1Vexp(ukc)exp(ujc);c=1,2,⋯,C;j=1,2,⋯,V
y j c y_{j}^{c} yjc表示第c个输出中,词汇表 V \mathbb{V} V中第j个单词 word j \operatorname{word}_j wordj为真实输出单词的概率。- 因为 W ′ W^{\prime} W′在多个单元之间共享,所以对于网络每个输出,其得分分布 u → c = ( u 1 c , u 2 c , ⋯   , u V c ) T \overrightarrow{\mathbf{u}}_{c}=\left(u_{1}^{c}, u_{2}^{c}, \cdots, u_{V}^{c}\right)^{T} uc=(u1c,u2c,⋯,uVc)T是相同的,但是这并不意味着网络的每个输出都是同一个单词。
- 并不是网络每个输出中,得分最高的为预测单词。因为每个输出中,概率分布都相同,即 y → 1 = y → 2 = ⋯ = y → C \overrightarrow{\mathbf{y}}_{1}=\overrightarrow{\mathbf{y}}_{2}=\cdots=\overrightarrow{\mathbf{y}}_{C} y1=y2=⋯=yC。
Skip-Grame
网络的目标是:网络的多个输出之间的联合概率最大。
- 假设输入为单词
word
I
\operatorname{word}_I
wordI,输出单词序列为
word
O
1
,
word
O
2
,
⋯
 
,
\operatorname{word}_{O_{1}}, \operatorname{word}_{O_{2}}, \cdots,
wordO1,wordO2,⋯, word
o
C
o_{C}
oC。定义损失函数为:
E
=
−
log
p
(
word
O
1
,
word
O
3
,
⋯
 
,
word
O
C
∣
word
I
)
=
−
log
∏
c
=
1
C
exp
(
u
j
c
∗
e
)
∑
k
=
1
V
exp
(
u
k
c
)
E=-\log p\left(\operatorname{word}_{O_{1}}, \operatorname{word}_{O_{3}}, \cdots, \operatorname{word}_{O_{C}} | \text { word }_{I}\right)=-\log \prod_{c=1}^{C} \frac{\exp \left(u_{j_{c}^{*}}^{e}\right)}{\sum_{k=1}^{V} \exp \left(u_{k}^{c}\right)}
E=−logp(wordO1,wordO3,⋯,wordOC∣ word I)=−logc=1∏C∑k=1Vexp(ukc)exp(ujc∗e)
其中 j 1 ∗ , j 2 ∗ , ⋯   , j C ∗ j_{1}^{*}, j_{2}^{*}, \cdots, j_{C}^{*} j1∗,j2∗,⋯,jC∗为输出单词序列对应于词典 V \mathbb{V} V中的下标序列。
由于网络每个输出得分分布都相同,令 u k = u k c = w → k ′ ⋅ h → u_{k}=u_{k}^{c}=\overrightarrow{\mathbf{w}}_{k}^{\prime} \cdot \overrightarrow{\mathbf{h}} uk=ukc=wk′⋅h,则上式化简为
E = − ∑ c = 1 C u j c c + C log ∑ k = 1 V exp ( u k ) E=-\sum_{c=1}^{C} u_{j_{c}}^{c}+C \log \sum_{k=1}^{V} \exp \left(u_{k}\right) E=−c=1∑Cujcc+Clogk=1∑Vexp(uk)