Learning Text Similarity with Siamese Recurrent Networks

在这里插入图片描述

论文简要概述

前期储备知识

在这里插入图片描述

学习目标

在这里插入图片描述

论文导读

孪生神经网络

Siamese有“连体的”含义。例如Siamese twins以为暹(xian)罗双胞胎、连体双胞胎。
孪生神经网络条件:

  • 输入是成对的(两张图片、两个句子)
  • 两部分网络结构和参数一模一样(即只有一个网络 )

论文研究背景、成果及意义

研究背景

文本数字化表达显得越来越重要
可以应用到多个领域,如情感分析、推荐系统、语义检测
模型不能“死脑筋”
尽管字面上长的不一样,实际意义也可能是相同的
【举例】
“Java Programmer”与“Java developer”
“李小龙”与“Bruce Lee”

研究问题

**岗位分类:**输入一个职位名称,返回其属于的类别。
例如,输入cloud engineer或者senior developer,应返回software engineer
注意:任务是分类任务,模型不是分类模型。
SiameseNet是一个文本相似的模型,输入为两句话或者说是两个职位,判断他们是否相似。假设相似模型都训练好了,能够对输入的两个岗位的相似程度进行判别,那么程序开始进行测试的时候,输入一个职位,将它和所有已知类别的职位进行相似比较,得到最相似的几个职位,假设这几个职位都指向了软件测试,那么就判断这个输入职位属于软件测试。这只是个例子,用于理解而已。

研究成果

提出了SiameseNet模型:

  • 运用双向LSTM 抽取语义特征
  • 利用对比损失 优化模型
  • 提出多种文本数据增强方法
  • 在岗位分类任务上优于n-gram模型

研究意义

  • 基于RNN的孪生网络结构对后来研究影响深远;
    【注】①孪生网络非本文首创;②孪生网络非单一具体模型,而是一个框架
    伪孪生非常适用于文本匹配模型。所谓伪孪生为两部分输入走结构相同但不共享参数的网络模型,伪孪生确实是由左、右两个网络组合而成。
  • 提供了文本数据增强的思路。

论文泛读

论文结构

在这里插入图片描述

摘要

This paper presents a deep architecture for learning a similarity metric on variable-length character sequences. The model combines a stack of character-level bidirectional LSTM’s with a Siamese architecture.

表明文章目的: 针对不同长度的句子,学习它们间的语义相似性
表明模型结构: 由孪生的BiLSTM堆叠而成

It learns to project variable-length strings into a fixed-dimensional embedding space by using only information about the similarity between pairs of strings.

模型基本方法: 将字符串(文本)映射到embedding空间
其中pairs of strings即为输入的两句话。

. This model is applied to the task of job title normalization based on a manually annotated taxonomy. A small data set is incrementally expanded and augmented with new sources of variance.

表明文章意义: 课应用于岗位分类
带出额外贡献: 做了数据增强

The model learns a representation that is selective to differences in the input that reflect semantic differences (e.g., “Java developer” vs.“HR manager”) but also invariant to non- semantic string differences (e.g., “Java developer” vs. “Java programmer”).

模型优越性: 能学到不同词之间的语义差异性与语义不变性

论文精读

摘要核心

  • 模型基于字符级别嵌入的双向LSTM孪生网络;
  • 模型应用于岗位分类任务;
  • 采用了多种数据增强方法;
  • 模型能学到不同词之间的语义差异性与语义不变性。

SiameseNet整体结构

在这里插入图片描述
下面使用一个例子来对模型进行讲解:

字嵌入

在这里插入图片描述
在这里插入图片描述

双向LSTM

双向LSTM即为正向LSTM与反向LSTM的拼接结果。
在这里插入图片描述
在这里插入图片描述

平均池化与全连接

在这里插入图片描述
特征矩阵压缩成特征向量,平均池化是在句子长度上做池化(纵向),而不是向量维度(横向)上做池化。
在这里插入图片描述
在这里插入图片描述
【小结】

  • 字嵌入:长度固定为100,超出截取,不足补0;
  • 双向LSTM:堆叠四层双向LSTM结构
  • 平均池化:在时间(文本字符长度)维度上做平均
  • 全连接
  • 利用余弦相似度计算两输入文本相似度程度

对比损失函数(Contrastive loss function)

在这里插入图片描述
在这里插入图片描述
上图中的图像蓝色表示标签为正的增长损失,红色表示标签为负的增长损失
在这里插入图片描述
在这里插入图片描述

实验设置及结果分析

实验baseline

N-gram匹配器
在这里插入图片描述
其中,Q和C为文本,M、N分别为Q、C的文本长度。
在这里插入图片描述
【举例】
在这里插入图片描述
匹配器关心的是这两句话长的像不像,并不关心这两句话真正表达了什么。

数据增强

1、增加拼写错误

针对正类样本,随机替换20%字符并删除5%字符,操作之后额外生成大量训练数据。
再取19928条作为测试数据,这些测试数据中被替换或删除的字符占比5%,符合正常人类拼写错误

2、同义词替换

形如developer和programmer,对原数据进行同义词扩充
例如数据集中有C++ developer职位,人工构造一条C++ programmer职位加入数据集

实验共构造了7909条测试数据。

3、增加多余信息

实际文本看上去往往不是那么精简,有一些无用信息
在这里插入图片描述
实验共构造了1949条测试数据。

4、人工反馈(工业应用)

实际生产中,数据样本并非每一条都是人工录入,程序自动导入的数据可能出现标签错误,这个时候要求人工可以接入修改标签,测试模型是否能改正之前的错误。

实验设置了1000个测试样例。

实验结果

在这里插入图片描述

论文总结

创新点

  • 运用孪生神经网络 接收输入数据
  • 利用双向LSTM网络 提取文本特征
  • 利用对比损失函数 优化模型
  • 提出多种文本数据增强 方法

启发点

循环神经网络结构对于处理文本、语义特征的强大表现;
分层结构是深度学习的基本结构(嵌入层、RNN层、全连接层、预测层)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值