NLP-Task4——从one-hot到word2vec

词的表达

  1. 给定语料库 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
  2. 最简单的表示方式是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向量的维度也在数十万维,这对于存储、计算都消耗过大。
  3. Bow:Bag of Words:词在文档中不考虑顺序,这称作词袋模型。

Word2Vec

CBOW模型

CBOW模型(Continuous bag-of-word):根据上下文来预测一个单词。

一个单词上下文

网络结构
  1. 在一个单词上下文的CBOW模型中,输入的是前一个单词,输出是后一个单词;输入为输出的上下文,由于只有一个单词作为输入,因此称作一个单词的上下文。
  2. 一个单词上下文的CBOW模型如下:
    NLP-Task4——从one-hot到word2vec_第1张图片
    其中:
  • 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)TRV,它是输入单词(即上下文单词)的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)TRV,它是输出单词为词汇表个单词的概率。
  • 相邻层之间为全连接:
    • 输入层和隐层之间的权重矩阵为W,其尺寸 V × N V \times N V×N
    • 隐层和输出层之间的权重矩阵为 W ′ \mathbf{W}^{\prime} W,其尺寸为 N × V N \times V N×V
  1. 假设没有激活函数,没有偏置项。给定输入 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=w 1Tw 2Tw VT
    由于 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,,xk1=0,xk=1,xk+1=0,,xV=0
    则有: h → = w → k \overrightarrow{\mathbf{h}}=\overrightarrow{\mathbf{w}}_{k} h =w k
    即: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的输入向量。
  2. 给定隐向量 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 =WTh
    令: 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=[w 1,w 2,,w V]
    则有: u j = w → j ′ ⋅ h → u_{j}=\overrightarrow{\mathbf{w}}_{ j}^{\prime} \cdot \overrightarrow{\mathbf{h}} uj=w jh ,表示词表 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的输出向量。
  3. 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 jx )=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为真实输出单词的概率。
  4. 假设给定一个单词 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,Wp(wordO word I)=maxW,Wyj=maxW,Wlogi=1Vexp(w iw I)exp(w jw I)=maxW,W[w jw Ilogi=1Vexp(w iw I)]
    其中 w → I \overrightarrow{\mathbf{w}}_I w I为输入单词 word ⁡ I \operatorname{word}_I wordI的输入向量。
  5. 考虑到 u j = w → j ′ ⋅ w → I u_{j}=\overrightarrow{\mathbf{w}}_{j}^{\prime} \cdot \overrightarrow{\mathbf{w}}_{I} uj=w jw I,定义:
    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(wordOwordI)=[w jw Ilogi=1Vexp(w iw I)]=[ujlogi=1Vexp(ui)]
    则优化目标: min ⁡ E \operatorname{min} E minE
参数更新
  1. 定义 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=ujE=yjtj
    它刻画了每个输出单元的预测误差:
  • j = j ∗ j=j^* j=j时: e j = y j − 1 e_j=y_j-1 ej=yj1,它刻画了输出概率( y j y_j yj)与真实概率1之间的差距
  • j ≠ j ∗ j \neq j^{*} j̸=j时: e j = y j e_j=y_j ej=yj,它刻画了输出概率与真实概率之间的差距
  1. 根据:
    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=w jh w juj=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}} w jE=ujE×w juj=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}} w j(new)=w j(old)ηejh
    其物理意义为:
  • 当估计过量( e j > 0 → y j > t j e_{j}>0 \rightarrow y_{j}>t_{j} ej>0yj>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<0yj<tj)时, w j → ′ \overrightarrow{\mathbf{w}_j}^{\prime} wj 会加上一定比例的 h → \overrightarrow{\mathbf{h}} h
    这发生在第j个输出单元刚好对应于真实的输出单词时。
  • y j ≃ t j y_{j} \simeq t_{j} yjtj时,更新的幅度将非常微小。
  1. 定义: 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 )Tu 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 =WTh (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 =We =j=1Vejw j
    E H → \overrightarrow{\mathbf{EH}} EH 的物理意义为:词汇表 V \mathbb{V} V中所有单词的输出向量的加权和,其权重为 e j e_j ej
  2. 考虑到 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,iE=hiE×wk,ihi=EHi×xk
    由于 x → \overrightarrow{\mathbf{x}} x one-hot编码,所以它只有一个分量非零,因此 ∂ E ∂ W \frac{\partial E}{\partial \mathbf{W}} WE只有一行非零,且该非零行就等于 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}} w I(new)=w I(old)ηEH
    其中 w → I \overrightarrow{\mathbf{w}}_{I} w I为非零分量对应的W中的行,而W的其他行在本次更新中都保持不变。
  3. 考虑更新行的第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=1Vejwj,k
    y j ≃ t j y_{j} \simeq t_{j} yjtj时,更新的幅度非常微小。
    y j y_j yj t j t_j tj差距越大,则更新的幅度越大。
  4. 当给定许多训练样本,每个样本由两个单词组成,上述更新不断进行,更新的效果不断积累。
  • 根据单词的共现效果,输出向量与输入向量相互作用并达到平滑。
    • 输出向量 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}} w I:w j(new)=w j(old)ηejh
      这里隐向量 h → \overrightarrow{\mathbf{h}} h 等于输入向量 w → I \overrightarrow{\mathbf{w}}_I w I
    • 输入向量 w → I \overrightarrow{\mathbf{w}}_I w I的更新依赖于输出向量 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 :w I(new)=w I(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=1Vejw j为词汇表 V \mathbb{V} V中所有单词的输出向量的加权和,其权重为 e j e_j ej
  • 平衡的速度与效果取决于单词的共现分布,以及学习率。

Skip-Gram

  1. CBOW模型是根据前几个单词(即上下文)来预测下一个单词,而Skip-Gram模型是根据一个单词来预测前几个单词(即上下文)。
  2. CBOW模型中:
  • 同一个单词的表达(即输入向量 w → I \overrightarrow{\mathbf{w}}_I w I)是相同的,因为参数 W \mathbf{W} W是共享的。
  • 同一个单词的输出向量 w → O ′ \overrightarrow{\mathbf{w}}_{O}^{\prime} w O是不同的,因为输入向量随着上下文不同而不同。
  1. Skip-Gram模型中:
  • 同一个单词的表达(即输入向量 w → O ′ \overrightarrow{\mathbf{w}}_{O}^{\prime} w O)是相同的,因为参数 W ′ \mathbf{W}^{\prime} W是共享的
  • 同一个单词的输入向量 w → I \overrightarrow{\mathbf{w}}_{I} w I是不同的,因为输入向量随着上下文不同而不同。

网络结构

  1. 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)TRV,它是输入单词的one-hot编码,其中只有一位为1,其他都为0。
  • 网络输出 y → 1 , y → 2 , ⋯   , y → C \overrightarrow{\mathbf{y}}_{1}, \overrightarrow{\mathbf{y}}_{2}, \cdots, \overrightarrow{\mathbf{y}}_{C} y 1,y 2,,y C,其中 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} y c=(y1c,y2c,,yVc)TRV是第c个输出单词为词汇表各单词的概率。
  • 对于网络中的每个输出 y c → \overrightarrow{y_c} yc ,其权重矩阵都相同,为 W ′ W^{\prime} W,这称作权重共享。
    这里的权重共享隐含着:每个单词的输出向量是固定的、唯一的,与其他单词的输出无关。
    NLP-Task4——从one-hot到word2vec_第2张图片
  1. Skip-Gram网络模型中,设网络第c个输出的第j个分量为 u j c = w → j ′ ⋅ h → u_{j}^{c}=\overrightarrow{\mathbf{w}}_{j}^{\prime} \cdot \overrightarrow{\mathbf{h}} ujc=w jh ,则有:
    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(wordjcx )=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为真实输出单词的概率。
  2. 因为 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} u c=(u1c,u2c,,uVc)T是相同的,但是这并不意味着网络的每个输出都是同一个单词。
  • 并不是网络每个输出中,得分最高的为预测单词。因为每个输出中,概率分布都相同,即 y → 1 = y → 2 = ⋯ = y → C \overrightarrow{\mathbf{y}}_{1}=\overrightarrow{\mathbf{y}}_{2}=\cdots=\overrightarrow{\mathbf{y}}_{C} y 1=y 2==y C
  • Skip-Grame网络的目标是:网络的多个输出之间的联合概率最大。
  1. 假设输入为单词 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=1Ck=1Vexp(ukc)exp(ujce)
    其中 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=w kh ,则上式化简为
    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=1Cujcc+Clogk=1Vexp(uk)

你可能感兴趣的:(NLP-Task4——从one-hot到word2vec)