目录

文本匹配概述

目录

文本语义匹配是自然语言处理中一个重要的基础问题,NLP 领域的很多任务都可以抽象为文本匹配任务。例如,信息检索可以归结为查询项和文档的匹配,问答系统可以归结为问题和候选答案的匹配(基于文本的问答系统),对话系统可以归结为对话和回复的匹配。语义匹配在搜索优化、推荐系统、快速检索排序、智能客服上都有广泛的应用。如何提升文本匹配的准确度,是自然语言处理领域的一个重要挑战。

基于词的传统召回

传统文本匹配方法

传统的文本匹配技术有BoW、VSM、TF-IDF、 BM25、Jaccord、SimHash等算法,如BM25算法通过网络字段对查询字段的覆盖程度来计算两者间的匹配得分,得分越高的网页与查询的匹配度更好。主要解决词汇层面的匹配问题,或者说词汇层面的相似度问题。而实际上,基于词汇重合度的匹配算法有很大的局限性,原因包括:

  1. 语义局限,这些传统方法无法理解词义,比如在不同语境下单词有相同或者不同的意思。
  2. 结构局限,“机器学习”和“学习机器”虽然词汇完全重合,但表达的意思不同。
  3. 知识局限,“秦始皇打Dota”,这句话虽从词法和句法上看均没问题,但结合知识看这句话是不对的。

所以对于文本匹配不能只停留在字面匹配的层面,需要语义层面的匹配。

主题模型

本博客有详细介绍。

将语句映射到等长的低维连续空间,在隐式的潜在语义空间上进行相似度的计算,这与协同过滤中的矩阵分解很类似。但是对于主题模型来讲对应的是LSA,即潜在语义分析,还有PLSA与LDA等高级的模型,但主题模型也是基于词袋模型来的,也是只停留在了字面匹配的层面,没有上升到语义层面的匹配。

深度语义匹配模型

基于神经网络训练出的Word Embedding来进行文本匹配计算,训练方式简洁,所得的词语向量表示的语义可计算性进一步加强。但是只利用无标注数据训练得到的Word Embedding在匹配度计算的实用效果上和主题模型技术相差不大。他们本质都是基于共现信息的训练。另外,Word Embedding本身没有解决短语、句子的语义表示问题,也没有解决匹配的非对称性问题。

一般来说,深度文本匹配模型分为两种类型: 表示型和交互型

表示型(单语义)

表示型模型更侧重对表示层的构建,会在表示层将文本转换成唯一的一个整体表示向量。

  • representation-based类模型,思路是基于 Siamese (孪生神经网络)网络,提取文本整体语义再进行匹配
  • 典型的Siamese结构,双塔共享参数,将两文本映射到统一空间,才具有匹配意义
  • 表整层进行编码,使用MLP, CNN, RNN, Self-attention, Transformer encoder, BERT均可。
  • 匹配层进行交互计算,采用点积、余弦、高斯距离、MLP、相似度矩阵均可
  • 经典模型有:DSSM, CDSSM, MV-LSTM, ARC-I, CNTN, CA-RNN, MultiGranCNN

优点

可以对文本预处理,构建索引,大幅度降低在线计算耗时

缺点

失去语义焦点,易语义漂移,难以衡量词的上下文重要性

交互型(多语义)

交互性模型摒弃后匹配的思路,假设全局的匹配度依赖于局部的匹配度,在输入层就进行词语间的先匹配,并将匹配的结果作为灰度图进行后续的建模。

  • 交互层,由两文本词与词构成交互矩阵,交互运算类似于 attention,加性乘性都可以
  • 表征层,负责对交互矩阵进行抽象表征,CNN、S-RNN均可
  • 经典模型有:ARC-II、MatchPyramid、Match-SRNN、K-NRM、DRMM、DeepRank、DUET、IR-Transformer、DeepMatch、ESIM、ABCNN、BIMPM

优点

更好的把握了语义焦点,能对上下文进行更好的建模

缺点

忽略了句法、句间对照等全局性信息,无法由局部匹配信息刻画全局匹配信息。 ### BERT及后辈 ## 应用(基于主题模型)

短文本-短文本语义匹配

由于主题模型在短文本上的效果不太理想(众所周知),在短文本-短文本匹配任务中 词向量的应用 比主题模型更为普遍。简单的任务可以使用Word2Vec这种浅层的神经网络模型训练出来的词向量。

如,计算两个Query的相似度, q1 = “推荐好看的电影”与 q2 = “2016年好看的电影”。

  1. 通过词向量按位累加的方式,计算这两个Query的向量表示
  2. 利用余弦相似度(Cosine Similarity)计算两个向量的相似度。

对于较难的短文本-短文本匹配任务,考虑引入有监督信号并利用“DSSM”“CLSM”这些更复杂的神经网络进行语义相关性的计算。

短文本-长文本语义匹配

在搜索引擎中,需要计算用户 Query 和一个网页正文(content)的语义相关度。由于 Query 通常较短,因此 Query 与 content 的匹配与上文提到的短文本-短文本不同,通常需要使用短文本-长文本语义匹配,以得到更好的匹配效果。

在计算相似度的时候,我们规避对短文本直接进行主题映射,而是根据长文本的 主题分布,计算该分布生成短文本的概率,作为他们之间的相似度。

这个学习过主题模型的很容易可以理解。

长文本-长文本语义匹配

以新闻个性化推荐为例:

一图流。我们可以将用户近期阅读的新闻(或新闻标题)合并成一篇长“文档”,并将该“文档”的主题分布作为表达用户阅读兴趣的用户画像。