深度学习之《社交网络问答系统-问题重复检测任务》实现

范涛
发表于2017-04-05
quora duplicate questions:Semantic Question Matching with Deep Learning 

本文参考了quora duplicate questions 技术文档:

Quora 提供了一个公开数据集( https://data.quora.com/First-Quora-Dataset-Release-Question-Pairs ),用来检测两个候选问题是否重复。上面参考文献中,quora工程师也给了他们采用DNN模型的一些思路和效果。
重复问题检测是一个常见的文本挖掘任务,在很多实际问答社区如quora,stackflow应该都是必须的应用。重复问题检测可以方便进行问题的答案聚合,以及问题答案推荐,自动QA等。

其中文中提到的公开的quora数据格式如下:


这是典型"1 to 1"匹配问题。
自己根据文中思路,基于keras开源框架实现了整个“ 重复问题检测”任务,代码放在github上。

备注:
其中包含了LSTM模型,BILSTM模型, LSTM+Attention模型。
附录模型网络结构图如下:

LSTM 模型




LSTM+Attention 模型


           其实值得说的是,真实场景中,如果我们需要进行问题重复检测,第一步其实先粗选找出重复问题的候选(candidate pairs),然后才是建立本文描述的“pair dnn 模型“。第一步粗选是十分重要的,需要考虑如何在海量样本中如何找出两两候选,这里不仅仅要考虑算法精度,还要考虑算法耗时和可扩展。这个问题不在本文讨论范畴,后面有机会专门讨论下这个问题。



猜你喜欢

转载自blog.csdn.net/hero_fantao/article/details/69319778
今日推荐