专栏名称: 机器学习研究会
机器学习研究会是北京大学大数据与机器学习创新中心旗下的学生组织,旨在构建一个机器学习从事者交流的平台。除了及时分享领域资讯外,协会还会举办各种业界巨头/学术神牛讲座、学术大牛沙龙分享会、real data 创新竞赛等活动。
目录
相关文章推荐
爱可可-爱生活  ·  [IR]《Reducing the ... ·  昨天  
爱可可-爱生活  ·  晚安~ #晚安# -20240926222756 ·  3 天前  
爱可可-爱生活  ·  Windows Agent ... ·  1 周前  
51好读  ›  专栏  ›  机器学习研究会

【学习】利用深度学习查找"相似问题"——Quora技术实践

机器学习研究会  · 公众号  · AI  · 2017-04-02 20:24

正文



点击上方“机器学习研究会”可以订阅哦


摘要
 

转自:极客头条

Quora作为一个高质量的知识平台,需要确保相同的问题不会多次出现。答题者不应该把相同的答案复制粘贴到类似的问题下方,而读者也应该只能在站内找到唯一的问题与他的需求对应。例如,“减体重的最佳方法是什么?”,“如何才能减肥?”,“最有效的减肥计划是什么?”,通常这些问题都会被人们认为是重复提问,因为这些问题的意图都相同。为了避免出现类似的问题,Quora的工程师们利用机器学习和自然语言处理技术,开发了一套自动识别重复问题的系统。

最近,Quora的工程师们公开了一个重复问题的数据集,供爱好者们训练模型,来解决类似于Quora重复提问检测的任务。在此篇文章中,笔者会介绍Quora工程师在过去几周内将这份数据集与深度学习技术相结合,做了哪些探索性的研究。

问题定义

严格来说,重复检测的问题可以定义为这类形式:已知两个问题q1和q2,训练模型来逼近公式:

f(q1, q2) → 0 or 1 

1表示q1和q2两个问题非常相似,反之则为0。

一种简单的重复检测方法是基于词语的比较。举个例子,我们可以采用标准的基于词的信息检索方法,比如tfidf或者BM25,来比较两个问题的相似度,若相似度超过阈值则判断为重复问题。但是,Quora的工程师认为若想更进一步的在语义或者意图层面判断相似性,就需要用更智慧的方法。其实,在自然语言处理界,一直有科研人员在研究这方面问题[1-3]。

Quora的方法

目前Quora生产环境中所用的是基于大量人工提取特征的随机森林模型,特征包括了词向量加权平均的余弦相似度,常用词的数量,问题标记的常用话题标签,以及词语的词性标签。

受到近年来深度学习技术的启发,笔者和同事们尝试了三种端到端的深度学习方法试图解决这一问题。由于都是端到端的深度学习方法,节省了大量的提取复杂特征的时间和精力。

他们的第一种方法是采用递归神经网络(RNN)。具体说来,用到的是RNN的变种,长短期记忆网络(LSTM),相比RNN后者能更好地捕获长期依赖信息。他们利用Quora自己的文本集训练了词向量,将词向量结合来表示一个问题,然后将两个问题的词向量表示都送入表示层。然后将输出的两个向量拼接送入下一层网络,计算最终的分类结果。下图是此方法的示意图:


图1:方法1的示意图(向量拼接的LSTM)


在探索第二种方法时,作者采用了Tai,Socher的方法构建特征:(1)距离,即两个向量之差的平方和;(2)角度,即两个向量逐点相乘之积。这两维特征也被传入神经网络模型。与前一种方法类似,这也属于LSTM网络,但不是将两个表示向量直接拼接,而是


图2:方法1的示意图(使用距离和角度的LSTM)


最后,笔者还尝试了来自谷歌研究院的 attention-based 方法[4],这种方法通常被用在机器翻译任务中。相比于其它 attention-based 的方法,这种方法最显著的特点在于用到的参数非常少。与前两种方法类似,这个方法也将问题的分词结果用词向量表示。如图3所示,对两个问题中的所有词对训练一个attention模型,最后聚合得到分类结果。


原文链接:

http://geek.csdn.net/news/detail/190307?url_type=39&object_type=&pos=1

“完整内容”请点击【阅读原文】
↓↓↓