Doc Embedding-语义相似度计算

数据集

公开数据集

英文:

  1. GLUE数据集中的MNLI, QQP, QNLI, STS-B, MRPC, RTE ,[SWAG].
  2. STS基准收集了2012年至2017年国际语义评测SemEval中所有的英语数据。
  3. SICK数据集包含了10000对英语句子,其中的标签说明了它们之间的语义关联和逻辑关系
  4. [SEMEVAL-2012] (http://www.cs.york.ac.uk/semeval-2012/task6/index.php?id=data).语义文本相似度视频描述数据集,每个句子对按照含义的关系标注以及两者的蕴含(entailment)关系标注

中文:

  1. 蚂蚁金服NLP相似度计算数据集:https://dc.cloud.alipay.com/index#/topic/data?id=8
  2. 搜狗实验室数据集。http://www.sogou.com/labs/resource/list_pingce.php

自己构建数据

考虑本身数据集的一些特点,针对表达多样性,语言噪音,同义词,人工标注等,参考数据增强的一些做法。

评估

对于离线,根据构建的离线测试集来评测,指标AUC、F1。

模型

1. Simase_LSTM

2016年SOA方法,AAAI

参考文献《Siamese Recurrent Architectures for Learning Sentence Similarity》

在这里插入图片描述

贡献

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

2.以距离为目标,使用LSTM来对复杂的语义建模。

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

相似度计算公式

g ( h T a ( a ) , h T b ( b ) ) = e x p ( − ∣ ∣ h T a ( a ) − h T b ( b ) ∣ ∣ 1 ∈ [ 0 , 1 ] g(h_{T_a}^{(a)}, h_{T_b}^{(b)}) = exp( - ||h_{T_a}^{(a)} - h_{T_b}^{(b)} ||_1 \in [0, 1] g(hTa(a),hTb(b)=exp(hTa(a)hTb(b)1[0,1]

2. Learning Text Similarity with Siamese Recurrent Networks

《Learning Text Similarity with Siamese Recurrent Networks》

在这里插入图片描述

本文和Siamese Recurrent Architectures for Learning Sentence Similarity类似,有以下改进

  1. 字符级别的char embedding。
  2. 使用双向的LSTM,融合双向的信息。
  3. 对所有lstm的输出做avg pooling,然后全连接映射到128,在做cos相似度计算。

3. CNN+RNN ->RCNN

利用bi-rnn做底层特征提取,上层用cnn做提取局部特征。

  1. Recurrent Convolutional Neural Networks for Text Classification
  2. https://plushunter.github.io/2018/03/08/自然语言处理系列(8):RCNN/

在这里插入图片描述

4. Attention RNN

参考:https://blog.csdn.net/shine19930820/article/details/83052232

5. BIMPM

  1. Bilateral Multi-Perspective Matching for Natural Language Sentences
  2. http://octopuscoder.github.io/2017/08/06/论文简读-Bilateral-Multi-Perspective-Matching-for-Natural-Language-Sentences/

2017年文章,针对句子匹配的问题,在释义识别、自然语言推断和答案选择三个方面均取得了state-of-the-art水平。

在这里插入图片描述

匹配层是模型的核心层,包含四种匹配策略,分别为:Full-Matching、Maxpooling-Matching、Attentive-Matching和 Max-Attentive-Matching。
在这里插入图片描述

6. ESIM

  1. Enhanced LSTM for Natural Language Inference
  2. https://www.cnblogs.com/zle1992/p/9100780.html

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

7. Improve

加入以下attention和cosine相似度的特征来对模型的结构进行改进,提升模型精度

  1. 加入Attention。例如:A Decomposable Attention Model for Natural Language Inference
  2. 使用曼哈顿距离和cos相似度一起作为分类特征。
  3. 底层使用Bert尝试,或ELMo
  4. 加入Batch Normalization层、LN来提升收敛速度

8. BERT

《BERT》相似度

在这里插入图片描述
两个句子之间通过[SEP]分割,[CLS]的向量作为分类的输入,标签是两个句子是否相似。可以作为排序算法。

输入格式

参数:max_length,词汇id表:

word_ids:

  1. 两个句子分别加入按照字分割成token,对于数字和英文也按照每个数字或字母分割。
  2. 起始位置加入[CLS],然后两个句子token间通过[SEP]分割,并且根据max_length截断或填充。

word_mask:

  1. 根据句子实际长度以内的位置为1,padding的位置为0.

segment_ids:

  1. 长度max_length,第一句对应位置(包含[CLS],[SEP])全为0;第二句对应位置(包含结尾[SEP])全为1,padding为0.
[CLS][SEP][SEP]
00000000001111111111

举例:

tokens: [CLS] 为 何 我 无 法 申 请 开 通 花 呗 信 用 卡 收 款 [SEP] 支 付 宝 开 通 信 用 卡 花 呗 收 款 不 符 合 条 件 怎 么 回 事 [SEP]

input_ids: 101 711 862 2769 3187 3791 4509 6435 2458 6858 5709 1446 928 4500 1305 3119 3621 102 3118 802 2140 2458 6858 928 4500 1305 5709 1446 3119 3621 679 5016 1394 3340 816 2582 720 1726 752 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

input_mask: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
segment_ids: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

代码见bert git:https://github.com/google-research/bert

预训练:

  1. 基于task领域的语料上在继续pre-train bert,效果可能会有小提升。

Reference

  1. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  2. bert代码:https://github.com/google-research/bert
  3. Learning Text Similarity with Siamese Recurrent Networks
  4. Learning Sentence Similarity with Siamese Recurrent Architectures
  5. A Decomposable Attention Model for Natural Language Inference
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百川AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值