Detecting Semantic Similarity in Questions

Python 2025-07-25

Detecting Semantic Similarity in Questions

快速链接

  • Detecting Semantic Similarity in Questions
    • 快速链接
    • 问题陈述
    • 数据集
    • 设置
    • 使用的架构
      • 支持向量机
      • 自动编码器
      • 密集的神经网络
      • 暹罗建筑
        • 卷积暹罗网络
        • LSTM暹罗网络
    • 结果
    • 分析
    • 参考
    • 项目成员

问题陈述

我们做了这个项目,作为Advanced Machine Learning.

在此项目中,我们尝试解决用户在CQA(社区问题答录)平台上是否有两个问题是重复的。一个人如何将两个问题定义为重复?我们说,如果提出问题的用户表达了相似的意图,则两个问题是重复的,即用户期望对所提出的问题有同样的答案。

通过这个项目,我们旨在对此意图进行建模,即,如果两个问题指定的目的相似,则两个问题分类了两个问题。

有关更多详细报告,请参考该报告。

数据集

用于研究的数据集由Quora发表,Quora是一个问题 - 答案平台并非任何域。我们将数据集修改为Little-Bit,以易于使用,并保存了所有模型,可以从此处下载。

根据下表中给出的格式,数据集包含404,352个问题对。 id代表唯一的问题对标识符。 qid1qid2分别代表了该对中的第一个和第二个问题的问题标识符。 question1question2分别是问题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 1X 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种不同的模型。

平衡数据不平衡的数据


Variation of accuracy with epoch


Variation of accuracy with epoch


Variation of loss with epoch


Variation of loss with epoch

参考

  • 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年。

项目成员

  1. Arpan Mukherjee
  2. Prabhat Kumar
下载源码

通过命令行克隆项目:

git clone https://github.com/arpanmukherjee/Detecting-Semantic-Similarity-in-Questions.git