Convolutional Neural Network Architectures for Matching Natural Language Sentences论文笔记

  • 发表时间:2015年
  • 论文链接:https://arxiv.org/abs/1503.03244v1
  • 代码链接:http://nlp.stanford.edu/˜socherr/classifyParaphrases.zip
  • 代码语言:matlab

摘要

较好的匹配算法能够同时为句子内部结构和句子间的交互信息建模。本文提出的模型通过逐层构图和合并充分表达句子的层次信息,而且能够在不同的层次捕捉到丰富的匹配模式。该算法无需先验知识,而且具有通用性。

句子建模

句子匹配任务的核心是能够充分地为句子建模(即提取sentence-level的特征),本文基于CNN为句子建模,结构如图1所示:
Convolutional Neural Network Architectures for Matching Natural Language Sentences论文笔记_第1张图片

图1
流程:规定句子最大长度为M, 将句子中的词通过词嵌入表达成一个向量,假设向量维度为d,则MXd 的矩阵为该模型的输入(未达到最大长度的部分采用zero-padding),通过卷积层+max_pooling层将输入矩阵转化为一个固定长度的向量。

这样为什么有效呢?
如图2所示,采用卷积能够从句子中提取出局部的语义组合,如图2中的 the cat sat和cat sat on等这样的短语组合。卷积多个filter能够提取多个feature map,这样就能够从多个角度提取语义组合,如图2中的第一个滑动窗涵盖的feature map1 是the cat sat的特征,feature map2 为cat sat的特征,feature map3为the cat的特征。 采用max pooling层会对多种语义组合进行选择,过滤掉一些置信度低的特征组合,图2中亮的表示特征值较大。
Convolutional Neural Network Architectures for Matching Natural Language Sentences论文笔记_第2张图片

图2

匹配模型

句子建模后能够提取出一个句子的特征向量,接下来需要利用特征向量对句子对进行匹配建模。

结构1

Convolutional Neural Network Architectures for Matching Natural Language Sentences论文笔记_第3张图片

图3
这种结构比较直观,对两个句子分别进行特征提取,提取后的两个特征做拼接之类的操作合成一个向量,再喂给MLP进行2分类。缺点是:两个句子是单独提取特征的,使得句子在提取特征时丢失了很多重要的匹配信息,提取特征过程中没有体现句子间的交互性。

结构2

为了解决结构1的问题,提出了结构2,如图
Convolutional Neural Network Architectures for Matching Natural Language Sentences论文笔记_第4张图片

图4
句子中每个词表示为词向量后,每个句子构成一个矩阵,假设有两个句子X和Y,首先从Sentence x中任取一个向量xa,再从Sentence y中将每一个向量和xa进行卷积操作,通过这种操作,将两个句子中的所有向量两两组合,构成2D矩阵,后续就是正常的卷积、max pooling操作。 这样做之所以有效:1.对句子建模时,就利用了句子间的交互信息;2.保留了词序信息,如图5所示。

Convolutional Neural Network Architectures for Matching Natural Language Sentences论文笔记_第5张图片

图5

训练

  • loss函数:排序损失函数(ranking-based loss):
    e ( x , y + , y − ) = m a x ( 0 , 1 + s ( x , y − ) − s ( x , y + ) ) e(x,y^+,y^-) = max(0, 1+s(x,y^-)-s(x,y+)) e(x,y+,y)=max(0,1+s(x,y)s(x,y+))
    所表达的意思是,句子x与与其匹配的句子间的相似度得分要高于与其不匹配的句子间相似度得分。
  • batch_szie: 100~200
  • word embedding维度:50,算法Word2Vec
  • 数据:英文数据:Wikipedia(~1B Words) 中文:微博数据(~300M Words)

实验

  • 三个匹配任务:句子自动填充、推文匹配、同义词匹配
  • 效果:结构1和结构2远好于其他算法,结构2稍好于结构1
    Convolutional Neural Network Architectures for Matching Natural Language Sentences论文笔记_第6张图片
    Convolutional Neural Network Architectures for Matching Natural Language Sentences论文笔记_第7张图片

Convolutional Neural Network Architectures for Matching Natural Language Sentences论文笔记_第8张图片

你可能感兴趣的:(Deep,Learning,问答系统)