论文简要概述
前期储备知识
学习目标
论文导读
孪生神经网络
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层、全连接层、预测层)