Unsupervised Learning of Sentence Embeddings using Compositional n-Gram Features

Unsupervised Learning of Sentence Embeddings using Compositional n-Gram Features

Matteo Pagliardini, Prakhar Gupta

EPFL Machine Learning and Optimization Laboratory

Intro

自从Mikolov提出来semantic word embedding,也就是符合语义的词嵌入,这种表达方式在NLP任务中已经非常普及。但是对于更长的文本,比如sentence,paragraph,document,这还是一个比较大的挑战。此外,如何从未监督的角度来学习泛化性比较好的表达也还很重要。

目前在文本理解上有两种相反的研究方向。一方面是深度学习的应用,使得大家研究更加复杂的模型,比如LSTM,RNN,attention model,和图灵翻译机。有一个问题是模型变得复杂,也使得在更大的数据集上的训练变慢。另外一个方向就是使用shallow model,比如matrix factorization(也叫bilinear model)。它可以在大数据集上快速的训练,这也可以成为一个很关键的优势。

惊奇的是,最近几个work中,对于sentence embedding,单纯将word vector进行average比LSTM的效果好。这就是一个trade-off:model complexity和对大量文本的处理能力。

这篇paper的贡献

  1. 提出了Sent2Vec模型,能够未监督地用word vector来表示sentence embedding
  2. 延展性:这里提出的embedding计算复杂度是$$\mathcal{O}(1)$$。这与大量的neural network形成对比。
  3. 性能:这篇paper的方法性能上有大幅度的提升。

Model

这篇paper的方法是有matrix factor model(bilinear model)激起的。

$$ min{U,V} \sum{S \in C} f_S (UVl_S)

$$

其中$$U \in \mathbb{R}^{k \times h}$$,$$V \in \mathbb{R}^{h \times |v|}$$是两个parameter matrix,$$v$$表示词汇库。$$V$$表示收集到的单词,每一个单词的维度是纬度为$$h$$的向量,可以理解为一个字典。$$U$$是embedding matrix。对于一个给定的句子$$S$$,indicator向量$$l_S$$是一个binary vector对句子$$S$$进行encoding。

通过fixed-length window S扫每一个句子,句子中的单词可以用类似C-BOW或者GloVE的方法进行word embedding。这篇paper设定$$k = |v|$$。在sentence embedding中,$$S$$是整个句子。

Proposed Unsupervised Model

这篇paper提出了使用Sent2Vec的方法。可以理解为将C-BOW的上下文context延伸到句子。对于每一个单词$$w$$,学习一个source $$v_w$$ 和 target $$u_w$$ embedding。sentence embedding被定义为source word embedding的平均

$$vS = \frac{1}{|R(S)|} V l{R(S)} = \frac{1}{|R(S)|} \sum v_w$$,其中$$R(S)$$是n-grams的list。

这里采用了unigram,可以很容易拓展到n-gram。

Appendix

code

results matching ""

    No results matching ""