Detecting Semantic Similarity in Questions
快速链接
- Detecting Semantic Similarity in Questions
问题陈述
我们做了这个项目,作为Advanced Machine Learning.
在此项目中,我们尝试解决用户在CQA(社区问题答录)平台上是否有两个问题是重复的。一个人如何将两个问题定义为重复?我们说,如果提出问题的用户表达了相似的意图,则两个问题是重复的,即用户期望对所提出的问题有同样的答案。
通过这个项目,我们旨在对此意图进行建模,即,如果两个问题指定的目的相似,则两个问题分类了两个问题。
有关更多详细报告,请参考该报告。
数据集
用于研究的数据集由Quora发表,Quora是一个问题 – 答案平台并非任何域。我们将数据集修改为Little-Bit,以易于使用,并保存了所有模型,可以从此处下载。
根据下表中给出的格式,数据集包含404,352个问题对。 id代表唯一的问题对标识符。 qid1和qid2分别代表了该对中的第一个和第二个问题的问题标识符。 question1和question2分别是问题1和问题2的全文。 is_duplicate是布尔变量,这表示两个问题是否重复。
| ID | QID1 | QID2 | 问题1 | 问题2 | IS_DUPER |
|---|---|---|---|---|---|
| 447 | 895 | 896 | 什么是自然数? | 自然数量最小的是多少? | 0 |
| 1518年 | 3037 | 3038 | Domino菜单上哪些比萨饼是最受欢迎的比萨饼? | 多米诺比萨饼有多少卡路里? | 0 |
| 3272 | 6542 | 6543 | 您如何开设面包店? | 您如何创办面包店业务? | 1 |
| 3362 | 6722 | 6723 | 我应该先学习Python或Java吗? | 如果我必须在学习Java和Python之间进行选择,我应该选择什么? | 1 |
以下是最疯狂地出现单词的前2000名的WordCloud,显然是从CQA平台数据集中预期的数据集占主导地位的。
Fig 1: Wordcloud of top 2000 most frequently occurring words
Fig 2: Cosine distance between similar and dissimilar embedding vectors
设置
- 安装Python> = 3.6和PIP
-
pip install -r requirements.txt - 下载手套词向量(手套。840B.300D)
使用的架构
支持向量机
应用带有线性内核的SVM被应用并用作分类任务的基线。该模型的结果有助于更好地理解数据。
自动编码器
问题相似性也可以看作是生成与输入相似的问题的生成任务。因此,可以使用自动编码器对这些任务进行建模,其中任务是在编码器之后学习一个表示形式,以使自动编码器最大程度地减少了两个类似问题的表示之间的损失。对于此任务,该模型仅在类似的问题对上进行了培训,并且无法对非相似问题对的表示。将以下损耗函数L最小化,其中X 1和X 2代表一对中的两个相似问题,而M()是自动编码器的输出。
后来,将一个分类层添加到编码层后两个问题的串联输出中。该网络也可以看作是一个暹罗网络,仅根据相似性,自动编码器就学会了表示形式。
密集的神经网络
为数据集实施了基于8-layered香草锥网络的8层神经网络。我们使用了ReLU激活功能,并用Adam Optmizer训练了100 epochs的网络, learning rate=0.001 。
Fig 3: 8-Layer NN Architecture
暹罗建筑
在此体系结构中,正在使用相同的神经网络模型编码两个单独的句子,这些句子独立地给出了输入。现在,两个输入句子都在同一嵌入空间中编码为句子向量,如图1所示。然后,通过使用一些遥远的度量决策,将仅根据此结果做出。
Fig 4: General architecture of Siamese Model
卷积暹罗网络
Fig 5: Convolutional Siamese Network Architecture
LSTM暹罗网络
LSTM暹罗体系结构接受了learning rate=0.001训练,并作为AdaDelta Optimizer的损失函数Mean Square Error 。对于分类层,我们使用了Cross Entropy Loss 。
Fig 6: LSTM Siamese Network Architecture
结果
| 算法 | 准确性 | 嵌入类型 |
|---|---|---|
| 支持向量机 | 59.23% | DOC2VEC |
| 自动编码器 | 62.85% | DOC2VEC |
| 神经网络 | 79.28% | DOC2VEC |
| 卷积西姆斯 | 64.33% | DOC2VEC |
| LSTM Siemese | 80.32% | Word2Vec |
分析
以下图仅适用于LSTM暹罗网络体系结构。我们尝试考虑数据不平衡,并根据它培训了2种不同的模型。
| 平衡数据 | 不平衡的数据 |
|
|
|
|
|
|
参考
- Zhiguo Wang,Wael Hamza和Radu Florian。自然语言句子的双边多角度匹配。 Arxiv预印型ARXIV:1702.03814,2017。
- Shuohang Wang和Jing Jiang。一个比较匹配文本序列的聚集模型。 Arxiv预印型ARXIV:1611.01747,2016。
- Mingtan,Cicerodossantos,Bingxiang和Bownzhou.lstm基于非事实答案选择的深度学习模型。 Arxiv预印型ARXIV:1511.04108,2015。
- Kuntal Dey,Ritvik Shrivastava和Saroj Kaushik。用于用户生成的微博上简短文本内容的释义和语义相似性检测系统。第26届计算语言学国际会议2016年殖民论文集:技术论文,第2880-2890页,2016年。
- Sepp Hochreiter和Ju rgen Schmidhuber。长期的短期记忆。神经计算,9(8):1735–1780,1997。
- 简·布罗姆利(Jane Bromley),伊莎贝尔·盖翁(Isabelle Guyon),Yann Lecun,Eduard säCkinger和Roopak Shah。使用“暹罗”时间延迟神经网络的签名验证。在神经信息处理系统的进步中,第737-744页,1994年。
项目成员
- Arpan Mukherjee
- Prabhat Kumar
