> 文档中心 > NLP论文解读--Siamese Recurrent Architectures for Learning Sentence Similarity

NLP论文解读--Siamese Recurrent Architectures for Learning Sentence Similarity


论文简介 

论文题目: Siamese Recurrent Architectures for Learning Sentence Similarity

论文地址:链接

出版单位:AAAI

发表时间:2016.

论文背景

之前业界比较文本对的相似性,一直采用词袋模型或者 TF-IDF 模型,但是这些模型都没有用到上下文的信息,而且词与词之间联系不紧密,词袋模型难以泛化。LSTM 或 RNN 模型,由于其天然的结构特点,可以去适应变成的句子,比如我们要比较两个不同长度的句子的相似性,通过 RNN 可以将它们 encode 成一个相同长度的语义向量,这个语义向量包含了各自句子的语义信息,可以直接用来比较相似性。

Siamese Recurrent Architectures 就是将两个不一样长的句子,分别 encode 成相同长度的向量,以此来比较两个句子的相似性。本文提出了一种使用孪生递归网络来计算句子语义相似度的方法。首先,使用LSTM将不定长的两个句子编码为固定尺寸的特征,再通过manhattan距离来衡量特征之间距离。

主要内容

本文主要为针对短语/句子/序列的相似性比较提出了一种评价模型——Siamese LSTM(孪生网络)。该模型是输入为句子对,输出为输入句子对的相似性得分(得分为1-5)。该模型在SemEval 2014数据集上取得了state-of-art的结果。

简单来说,就是用两个共享权重的 LSTM,去对用 word2vec 初始化的句子 embeding 进行 encode。输入句子的最终被 encode 为 lstm 的最后一个 time step 的隐层输出。句子对encode 向量之后,对于任何一种简单相似度方程具有很好的稳定性。其中效果最好的度量方法是 Manhattan distance(曼哈顿距离)。

论文中使用的模型

整个模型由LSTM_a和LSTM_b组成,它们的权重是共享的,即LSTM_a=LSTM_b。LSTM的作用是将不同输入长度的句子编码到定长的特征空间。权重也可以是不共享权重的。在作者提供的代码中,他在进行参数更新时,是将两个LSTM对应参数的梯度进行平均,然后进行更新的。

模型的输入:
句子1: “He is smart.”
句子2: “A truly wise man.”
在输入时,首先需要对句子进分词,以单词为单位通过查表方式转换成对应的预训练好的固定维度的词向量(word embedding),并按序输入网络。

模型的输出:
对输入句子的相似性的评价分数(得到两个句子的特征表达之后,需要计算特征之间的相似度,本文将句子特征的相似度认为是句子语义的相似度
。由于模型采用的打分函数为e^{-x},所以输出的得分区间为 (0, 1]。所以在具体实现的时候,论文将模型的输出进行了相应的变换,将得分的区间变换到了[1, 5]。

句子向量(sentence embedding):
论文直接将LSTM的最后一个隐藏状态作为句子的embedding。

数据集

  • 预训练数据集:STS历年数据集,共11000多条
  • 训练集:SemEval 2014 train data,共5000条
  • 测试集:SemEval 2014 test data, 共4927条
     

相关程度为[1, 5], 5代表语义最相似,1代表最不相似,标注的分数是10个人为评分的平均值。

训练

  • 损失函数:模型预测得分与真实得分的均方差
  • 优化方法:AdaDelta

实验结果
在SICK数据集上,使用MSE作为loss函数,LSTM的隐层节点数为50,使用Adadelta优化算法,同时抽取30%的训练集作为验证集。模型在测试集上的表现如下图所示。

各模型在SICK数据集上的性能

 同时MaLSTM也可以作为句子的特征提取模块,将提取后的特征进行分类。为了让SICK数据能够被分类模型使用,本文将SICK数据分为了3类,“语义相似”、“语义相反”、“语义中立”。
在使用MaLSTM对句子进行编码后,使用SVM对特征进行分类。实验结果如下:

各模型在SICK数据集上分类的准确度

相关细节

论文贡献点

1.提出新的度量方式(基于曼哈顿距离,见细节2)。实验效果优于欧几里得距离(梯度消失)、余弦相似度。【回归】

2.通过明确的指导(距离),使用简单LSTM能够建模复杂的语义。

3.使用MaLSTM features输入给SVM来进行分类。【分类】

1.LSTM(a)和LSTM(b)权重设置一样(tied weights、主题一样)。在信息检索(IR)等其他应用场景可设置不一样(untied weights)。

2.度量方式使用基于曼哈顿距离d的dis=e^{-d} ,由于得分在【1-5】,因此做了dis*4.0+1.0的处理。简单的度量方式,让句子表示更好地表达复杂的语义关系。

3.LOSS函数使用MSE。训练使用BPTT。

4.词向量预训练(实验数据只有10k条),利用同义词扩充来数据增强。

5.input维度(300维)、hidden维度(50维)

6.本文的工作表明简单的LSTM模型能够获得复杂的语义信息。MaLSTM的结构拥有良好的可解释性。

实现代码:

暂未实现,后面补充。

茶叶商城