关于作者
作者小硕一枚,研究方向为机器学习与自然语言处理,欢迎大家关注我的个人博客https://wangjie-users.github.io/,相互交流,一起学习成长。
前言
在NLP的诸多应用中,有很多应用都有在语义上衡量文本相似度的需求,我们将这类需求统称为“语义匹配”。根据文章长度的不同,语义匹配可以细分为三类:短文本-短文本语义匹配,短文本-长文本语义匹配和长文本-长文本语义匹配。
短文本-短文本语义匹配
短文本-短文本的语义匹配在工业界的应用场景非常广泛。例如,在网页搜索中,我们需要度量用户查询(query)和网页标题(title)的语义相关性;在query推荐中,我们需要度量query和其他query之间的相似度。这些场景都会用到短文本-短文本的语义匹配。由于主题模型在短文本上的效果不太理想,在短文本-短文本匹配任务中词向量的应用比主题模型更为普遍。简单的任务可以使用word2vec、glove等词向量处理。
比如,在query推荐任务中,我们经常需要计算两个query的相似度,例如q1 = “推荐好看的电影”与q2 = “2018好看的电影”。通过简单的Word2vec词向量累加的方式,可以得到这两个query的向量表示,然后直接利用余弦相似度计算两者的相似度即可。对于较难的短文本-短文本语义匹配任务,则可以考虑引入监督信号并利用一些复杂的神经网络模型进行语义相关性的计算。
这里我着重介绍一下DSSM(Deep Structured