您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
孪生网络(Siamese Network)在句子语义相似度计算中的应用
 
作者:微笑sun
  3730  次浏览      16
 2020-8-20  
 
编辑推荐:
本文首先介绍了孪生网络是什么,通过案例具体讲解了孪生网络在句子语义相似度计算中的几篇论文 。
本文来自于微信AI公园,由火龙果软件Anna编辑、推荐。

1,概述

在NLP中孪生网络基本是用来计算句子间的语义相似度的。其结构如下

在计算句子语义相似度的时候,都是以句子对的形式输入到网络中,孪生网络就是定义两个网络结构分别来表征句子对中的句子,然后通过曼哈顿距离,欧式距离,余弦相似度等来度量两个句子之间的空间相似度。

孪生网络又可以分为孪生网络和伪孪生网络,这两者的定义:

孪生网络:两个网络结构相同且共享参数,当两个句子来自统一领域且在结构上有很大的相似度时选择该模型;

伪孪生网络:两个网络结构相同但不共享参数,或者两个网络结构不同,当两个句子结构上不同,或者来自不同的领域,或者时句子和图片之间的相似度计算时选择该模型;

另外孪生网络的损失函数一般选择Contrastive loss Function(对比损失函数)。接下来具体看看孪生网络在句子语义相似度计算中的几篇论文:

2,论文模型介绍

1)Siamese CBOW: Optimizing Word Embeddings for Sentence Representations

该论文提出了一种基于孪生网络+CBOW的方式来无监督式的训练句子的向量表示。网络的结构图如下:

首先给定一个很大的语料库,语料库中的句子要保持原来文章中的顺序,那我们该怎么将这个无监督的任务构造成有监督式的任务呢?看论文中这个CBOW,其实就是采用了类似word2vec中的CBOW的形式来构造有监督式的任务的。我们给定一个中心句子si,然后将中心句子的上下句作为正样本(即和中心句子相关的句子),然后从其他句子中随机选择n个句子作为负样本,以论文中为例,负样本也选择2个。因此就构造成了这样一个句子集合,那么这样一个句子集合就作为一个样本输入到模型中,以这里的例子为例,就构造成了一个具有5个相同结构相同参数的网络来处理这5个句子。有了样本之后,标签该怎么定义呢?在这里的真实标签定义如下:

上面式子中的S+,S?分别表示正样本句子集合和负样本句子集合。因此真实标签是服从概率分布的。接下来我们看看预测标签该怎么定义,其定义如下:

上面式子为预测标签的概率分布(softmax后的结果),其中sθi是句子si的向量表示,那么问题来了,这个句子向量是怎么得到的呢?其实模型的输入最小粒度是词,在这里会用一个词嵌入矩阵(词向量)来将每个词映射到低维向量,然后对句子中的词向量取平均来表示句子的向量。之后再计算中心句子si和其他句子的余弦相似度,然后经过softmax得到预测的概率分布。既然真实标签和预测标签都服从概率分布,那么损失函数就可以直接用交叉熵了,因此损失函数如下:

其实这里整个模型被训练的参数只有一开始的词嵌入矩阵,也就是说我们这个模型最终训练的到的也就是一个词向量,但因为目标任务是计算句子的相似度,而且损失函数的构造也是来建模句子之间的关系,因此个人人为这种方式获得的词向量,通过取平均的方式能更好的表示句子向量。因此在句子相似度的任务上的效果也是优于word2vec词向量的。

2)Siamese Recurrent Architectures for Learning Sentence Similarity

上面介绍了一种无监督的方式,接下来的模型都是有监督的。 本论文提出了一种MaLSTM的网络结构,其网络结构如下:

其实网络结构是并没什么新意,其具体如下:

1)通过两个LSTM网络(可以是孪生网络,也可以是伪孪生网络)来处理句子对,取LSTM最后时刻的输入作为两个句子的向量表示。

2)用曼哈顿距离来度量两个句子的空间相似度。

论文中没有提到用了什么损失函数,但一般孪生网络的损失函数都是Contrastive loss function。这个我们在下面再介绍,至于在这里作者为什么选择曼哈顿距离,作者认为欧式距离容易出现梯度消失。而且在实验中显示效果也是优于余弦相似度的,对于这个度量选择,个人认为还是以自己的实际项目来选择,并不存在一个绝对的好坏。

3)Learning Text Similarity with Siamese Recurrent Networks

该论文同样是用LSTM来处理句子对,其网络结构如下:

在这里将句子对的关系看作是一个二分类的问题,给定一个样本[x1,x2,y],在这里y的结果为[0,1],因此可以看作一个二分类问题,在这里的度量方式选择的是余弦相似度,其表达式如下:

损失函数用了Contrastive loss function,其表达式如下:

从损失函数的形式上看类似于二元交叉熵损失函数,但是这里的L_并不等于1-L+,其表达式如下:

其表示图如下:

注:从这里的图来看,上面的式子是有误的,EW<m 应该改成EW>m。

我们来分析下上面的式子:假设现在是一个正样本,也就是y(i)=1,此时若预测的EW接近于1(即预测两个句子很相似),则整体损失很小,此时若预测的EW接近于-1(即预测两个句子不相似),则整体损失很大。假设现在是一个负样本,给定m=0.5,也就是y(i)=0,此时若预测的EW小于m,则损失为0,若预测的EW大于m,则损失很大。其实这个损失函数可以认为通过调整m的值,可以控制对句子相似度的苛刻度,m的值比较大时,会导致两个相似的句子的余弦相似度值是比较高的。

   
3730 次浏览       16
相关文章

基于图卷积网络的图深度学习
自动驾驶中的3D目标检测
工业机器人控制系统架构介绍
项目实战:如何构建知识图谱
 
相关文档

5G人工智能物联网的典型应用
深度学习在自动驾驶中的应用
图神经网络在交叉学科领域的应用研究
无人机系统原理
相关课程

人工智能、机器学习&TensorFlow
机器人软件开发技术
人工智能,机器学习和深度学习
图像处理算法方法与实践
最新课程计划
信息架构建模(基于UML+EA)3-21[北京]
软件架构设计师 3-21[北京]
图数据库与知识图谱 3-25[北京]
业务架构设计 4-11[北京]
SysML和EA系统设计与建模 4-22[北京]
DoDAF规范、模型与实例 5-23[北京]
 
最新文章
多目标跟踪:AI产品经理需要了解的CV通识
深度学习架构
卷积神经网络之前向传播算法
从0到1搭建AI中台
工业机器人控制系统架构介绍
最新课程
人工智能,机器学习和深度学习
人工智能与机器学习应用实战
人工智能-图像处理和识别
人工智能、机器学习& TensorFlow+Keras框架实践
人工智能+Python+大数据
更多...   
成功案例
某综合性科研机构 人工智能与机器学习应用
某银行 人工智能+Python+大数据
北京 人工智能、机器学习& TensorFlow框架实践
某领先数字地图提供商 Python数据分析与机器学习
中国移动 人工智能、机器学习和深度学习
更多...