赞
踩
NLP 中,文本匹配技术,不像 MT、MRC、QA 等属于 end-to-end 型任务,通常以文本相似度计算、文本相关性计算的形式,在某应用系统中起核心支撑作用,比如搜索引擎、智能问答、知识检索、信息流推荐等。本篇将纵览文本匹配的技术发展,并重点介绍文本语义相似度计算技术,以及多轮对话场景中的文本语义相似度计算技术。
在真实场景中,如搜索引擎、智能问答、知识检索、信息流推荐等系统中的召回、排序环节,通常面临的是如下任务:
从大量存储的 doc 中,选取与用户输入 query 最匹配的那个 doc。
解决这些任务,无监督和有监督学习都提供了一些具体方法,我们这里先谈论有监督学习。通常,这些任务的训练样本具有同样的结构:
共 N 组数据,每组数据结构相同:1 个 query,对应的 M 个 doc,对应的 M 个标签。
可见,query 和 doc 的表征形式较固定,至于具体 embedding 包含的信息根据具体任务、场景、目标变化极大,按需设计。
但至于训练样本中的标签,形式则区别甚大。可以分成下述三种形式:
上述三种不同监督形式,形成了不同的学习方式,彼此之间优劣异同就涉及到 Learning2Rank 技术了,具体可参考之前的博文,这里不再赘述。虽然越靠后的形式得到的模型越符合我们预期,但其对训练样本形式的严苛性和算法设计的复杂性使得工业应用难以开展,通常,解决我们遇到的任务,多采用 pointwise 或者 pairwise 方式。
再回顾下 “从大量存储的 doc 中,选取与用户输入 query 最匹配的那个 doc” 这个经典问题,doc 与 query 的具体指代的改变使之可以推广到多个具体任务中,监督信息则可以从两个维度拓展:
这一节,我们尽量将问题泛化,将多个相关任务进行了关联。那么,下面将就具体的任务 —— 文本语义相似度计算 —— 进行介绍。
谈起相似度计算,经常会出现几个关联的 NLP 任务,彼此存在微妙的区别:
当然,如何定义“相似”也是个开放问题。
Quora 曾尝试从更实用的角度给出定义,如果多个 query 所反映的意图一致,或者说可以用同一个 answer 回答,则可以认为语义一致,即 SSEI。这也更符合 FAQ 问答系统中文本语义相似度计算的诉求。
此外,需要注意的是,虽然定义有区别,但几个任务基于神经网络提出的很多模型,是彼此通用的。许多经典模型在一个任务上被提出,评估时都会在其他几个任务的数据上跑一下。当然,一个模型迁移到其他任务时,也会进行针对性的微调,后面也会介绍到。总之,应该多关注这几个相关任务上的技术发展,借鉴引用。
不少经典的无监督 STS 技术,虽然简朴,但也能取得不错的效果:
虽然无监督技术较粗糙,但能有效解决冷启动问题。如 Solr 全文检索引擎就在用基于 Ngram LD 的相似度召回技术,FAQ 问答引擎中使用 BOW+LD 也能取得不错的效果。主题模型和基于词向量的模型,本质上都是基于词共现信息的,虽然引入了词义信息,但实际使用中,并无法替代基于词汇重合度的经典算法,效果相差不大。
基于有监督的相似度计算,我们这边主要介绍基于神经网络的,基本可以分为两大类,sentence encoding (sentence representation) 类、sentence interaction 类。下面将分别介绍。
SE 网络结构如下:
SI 网络结构如下:
为了更好实现语义匹配、逻辑推理,需要 model 深度信息,可以从如下角度改进上述基础 SE、SI 网络:
前面,提过可以按 pointwise、pairwise、listwise 顺序升格进行学习,在权衡标签获取难度和效果后,通常选用 DSSM 结构,即形式上的 listwise,loss 上的 pairwise 结构。
提供一种最佳实践方案:基于 DSSM 结构分别训练 SE 和 SI 网络,训练好的 SE 网络结合 faiss 作为预召回模块,训练好的 SI 网络作为匹配模块。
值得注意的是,前面虽然说 PI、SSEI、STS、IR-QA、Ad-hoc retrieval 等任务基于神经网络提出的很多模型是彼此通用的,但彼此借鉴时,还是有不少细节需要调整的。
IR-based QA 中提出的模型虽然也通用于相似度计算,但细节需要调整。如,Siamese 网络最后 matching layer 采用 cos 的话,对于 paraphrase 任务自然是没问题,两文本 encoding 后向量相同则得分高,但对 QA 任务则不尽然,此时 answer 未必是最优的。因此,基于 SE 结构的 QA 任务通常会加各种 attention,而 paraphrase 任务加 attention 基本没有增益。在 QA 任务上, attention 起到将 Q 中信息线性映射到 A 中信息的空间的作用,而 paraphrase 没这个必要。
语义匹配任务和相关匹配任务,很多模型也是通用的,但两个任务强调的有效信息是截然不同的,因此在基础模型上也会进行不少调整。如,需要格外关注 query 与 doc 完全匹配的 term,强调 query 中 term 的重要性,有时不必将 doc 作为整体和 query 进行匹配,等等。计算所提出了一系列相关匹配模型,如 DRMM、aNMM 等,可以参考 MatchZoo。
可见,看起来很相似的任务,也会导致很不同的解决方案,再次验证了 no-free-lunch 定理。
下面简单介绍几个经典的 IR-based 多轮对话的 QA 模型:
核心内容就介绍到这里吧,记得之前 HIT-SCIR 的刘挺老师在梳理中文信息处理前沿技术进展时,列了 NLP 中四个主流任务,包括解析、分类、匹配和生成。可见,文本匹配任务的重要性,后续这个方向有好的进展,也会及时更新在文章里,欢迎大家讨论。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。