Siamese CBOW: Optimizing Word Embeddings for Sentence Representations

引言

Siamese CBOW,来自Tom Kenter等的于2016年发的论文:Siamese CBOW: Optimizing Word Embeddings for Sentence Representations
作者提到,当前的很多句向量的表示方法都是简单的用词向量的加和平均,这种方法表现出一定的有效性,但是并没有针对特定任务的句向量进行优化的方法。
因此本文提出一种训练句向量的方法,借鉴于CBOW模型,采用目标句子的上下文句来预测当前句子。

数据源

采用Toronto Book Corpus,包括了七千多万句已经预处理好的句子,从前到后为连贯的句子。需要考虑的是不同的段落间,句子可能存在一定的不连贯,但在这种规模的数据量下,也可以忽略。

模型

模型结构如下:
Siamese CBOW: Optimizing Word Embeddings for Sentence Representations_第1张图片

Input

对于每个目标句子,考虑其前后两个句子作为正例,同时随机抽取一定量的样本,比如2个,作为负例。这里的token粒度为word级别,处理成相应形式输入,即[sentence,pre-sentence,post-sentence,neg-sentence,neg-sentence]

Embedding Layer

对于输入句子,通过初始化的Embeding层查找,分别得到其相应的Embeding Matrix W,将相应的Matrxi进行加和平均得到句子的句向量。

Cosine Layer

分别计算sentence与其余句子之前的cosine相似度作为句子间的相似度。

Prediction Layer

直接将上述相似度作为输入,通过softmax计算最终的输出,如下:
在这里插入图片描述
其中 s x θ s_x ^\theta sxθ代表句子 s s s基于当前模型参数 θ \theta θ的句向量,对于当前模型,假设输入正例集合为 S + S_+ S+,负例集合为 S − S_- S,那么输出期望为以下形式:
Siamese CBOW: Optimizing Word Embeddings for Sentence Representations_第2张图片

Loss Function

则,损失函数使用categorical cross-entropy,如下形式:
在这里插入图片描述
其中 p ( s i , s j ) p(s_i, s_j) p(si,sj)为期望概率,而 p θ ( s i , s j ) p_\theta(s_i, s_j) pθ(si,sj)则为预测概率。

结果

作者在20个数据集上进行对比,同时建立了baselinse任务,发现在大多数任务上都比baselinse有了提升:
Siamese CBOW: Optimizing Word Embeddings for Sentence Representations_第3张图片
后续还对相关的参数进行了分析,详细请看原论文。

结论

构建了一个新方法做句向量的表示,方法简单有效,同时可简单改造用于其他类型数据,比如相似句判别。

参考

1、Siamese CBOW: Optimizing Word Embeddings for Sentence Representations

你可能感兴趣的:(论文阅读,Siamese,CBOW)