综述

提出了一种新的基于神经网络的语言模型,通过对局部上下文和全局上下文进行联合训练。该模型学习到的embedding能同时捕捉到单词语义信息和语法信息,并且能够实现对一词多义的区分。

目标函数

本文的目标是学习有效的单词表示,而不是根据给定的单词来预测下一个单词的概率。给定序列s和文档d,本文的目标是从其它随机选择的单词中找到位于s末尾的正确单词。替换单词后的序列为sws^w

Cs,d=wVmax(0,1g(s,d)+g(sw,d))C_{s, d}=\sum_{w \in V} \max \left(0,1-g(s, d)+g\left(s^{w}, d\right)\right)

其中g(s,d)g\left(s, d\right)为得分函数,sssws^w之间的差值被限制在(0,1)(0,1)范围内。

神经网络架构

本文同时从局部上下文和全局上下文的角度来考虑上下文信息。局部和全局上下文计算得到的分数socrelsocre_{l}scoregscore_{g}相加得到总的分数g(s,d)g\left(s, d\right)

局部上下文

对于序列s,将s中的单词的embedding拼接成一个向量X={x1,x1,...,xm}X=\{x_{1}, x_{1}, ..., x_{m}\},经过一个两层的全连接神经网络:

a1(l)=f(W1(l)[x1,x1,...,xm]+b1(l))a_{1}^{(l)}=f\left(W_{1}^{(l)}\left[x_{1}, x_{1}, ..., x_{m}\right]+b_{1}^{(l)}\right)

scorel=W2(l)a1(l)+b2(l)score _{l}=W_{2}^{(l)} a_{1}^{(l)}+b_{2}^{(l)}

全局上下文

假设当前文档中包含有k个单词,那么对它们计算加权平均可以得到向量c,用来表示全局上下文信息

c=i=1kw(ti)tii=1kw(ti)c=\frac{\sum_{i=1}^{k} w\left(t_{i}\right) t_{i}}{\sum_{i=1}^{k} w\left(t_{i}\right)}

其中w(ti)w(t_{i})为单词titi的权重函数,在这里采用idf权重来计算。

然后,将ccxmx_{m}拼接成一个向量,经过一个两层的全连接神经网络:

a1(g)=f(W1(g)[c;xm]+b1(g))a_{1}^{(g)}=f\left(W_{1}^{(g)}\left[c ; x_{m}\right]+b_{1}^{(g)}\right)

scoreg=W2(g)a1(g)+b2(g)score _{g}=W_{2}^{(g)} a_{1}^{(g)}+b_{2}^{(g)}

论文笔记- Improving Word Representations via Global Context and Multiple Word Prototypes

一词多义(Multi-Prototype Neural Language Model)

每个词在不同的上下文中有着不同的含义,本文希望根据上下文信息给每个词加一个相应的标签,使得每个词可以对应不止一个embedding表示。

论文笔记- Improving Word Representations via Global Context and Multiple Word Prototypes

  1. 对某个单词w,首先获取其所有的上下文窗口序列。
  2. 对每个上下文窗口序列,对序列内的所有单词embedding取加权平均,作为该序列的embedding表示,方法参考全局上下文中的做法。
  3. 对这序列的embedding进行球形(spherical)k-means聚类,得到每个序列的类比编号。ps:简单来说,球形与普通k-means的区别在于,球形的相似度度量是余弦距离,而不是标准欧氏距离。
  4. 按照聚类结果,给每个单词的后面加上属于它的类别编号,例如bank_1,bank_2。

在multi-prototype模型下,两个词的相似度计算如下:

AvgSimC(w,w)=1K2j=1Kk=1Kdc,w,kdc,w,jd(πk(w),πj(w))\operatorname{Avg} \operatorname{Sim} \mathrm{C}\left(w, w^{\prime}\right) = \frac{1}{K^{2}} \sum_{j=1}^{K} \sum_{k=1}^{K} d_{c, w, k} d_{c^{\prime}, w^{\prime}, j} d\left(\pi_{k}(w), \pi_{j}\left(w^{\prime}\right)\right)

其中dc,w,k= def d(v(c),πk(w))d_{c, w, k} \stackrel{\text { def }}{=} d\left(v(c), \pi_{k}(w)\right)可以看作是ww对应的上下文cc属于聚类kk的似然概率,πk(w)\pi_{k}(w)表示聚类kk的中心点,d(πk(w),πj(w))d\left(\pi_{k}(w), \pi_{j}\left(w^{\prime}\right)\right)表示两个聚类中心的相似度。

如果没有上下文,那上式就可以简化为:

AvgSim(w,w)= def 1K2j=1Kk=1Kd(πk(w),πj(w))\operatorname{AvgSim}\left(w, w^{\prime}\right) \stackrel{\text { def }}{=} \frac{1}{K^{2}} \sum_{j=1}^{K} \sum_{k=1}^{K} d\left(\pi_{k}(w), \pi_{j}\left(w^{\prime}\right)\right)

相关文章:

  • 2021-06-14
  • 2021-10-14
  • 2021-12-14
  • 2021-05-10
  • 2021-09-29
  • 2021-08-21
  • 2021-11-16
  • 2021-06-29
猜你喜欢
  • 2021-07-27
  • 2021-07-01
  • 2022-01-07
  • 2021-12-07
  • 2021-12-22
  • 2021-12-13
  • 2021-07-13
相关资源
相似解决方案