
文本匹配是自然语言处理中的一个重要问题,它一个很宽泛的概念,通常研究两段文本之间关系的问题都可以看做是文本匹配。但是在不同场景下,匹配的定义可能差别很大,因此文本匹配并不是一个独立的研究方向,不过很多问题可以抽象成文本匹配问题。
01常用方法
深度学习广泛应用之前,传统文本匹配任务基本采用特征提取的方式,这种方法可解释性好,但需要依赖人工进行特征选择和尝试,泛化能力一般。自从深度学习开始被广泛应用,文本匹配也得到了很好的发展,可以大致分为以下几个主要方向:
- 单语义模型,通过神经网络给两个句子分别编码,然后计算句子之间的相似度,最经典的代表是2013年微软提出的DSSM[1]。
- 多语义模型,改善了单语义模型单一粒度的问题,将整个文本分为不同级别的表达方式,例如词、短语、句子,也会考虑到句子的局部结构[2],编码表达信息比单语义模型更加丰富。
- 匹配矩阵模型,借用了图像的矩阵表示方式[3],将文本匹配的交互方式定义为匹配矩阵,因此可将匹配精细到两两词,甚至两两字母之间。
- 句子交互模型,主要包括表征层和交互层,应用注意力(attention)机制来挖掘句子内和句子间内容的联系,从而得到更好的效果[4]。
02行业应用
有很多真实场景都应用到了文本匹配问题,例如搜索引擎、智能问答、知识检索、对话系统等等,这些场景都需要面临一个问题,从大量的数据库中,选取与用户输入内容最匹配的文本。根据文本长度不同,可以讲语义匹配分为三类:
1.短文本-短文本匹配;
2.短文本-长文本匹配;
3.长文本-长文本匹配。
第一类短文本-短文本匹配在工业界应用场景广泛,例如网页搜索(比如同款商品搜索),需要计算用户查询和网页标题的匹配程度,从而进行页面召回和排序。
第二类短文本-长文本匹配是大家平时生活中接触最多的一类应用,比如搜索引擎、智能问答、知识检索,需要计算用户输入与整个页面文本内容之间的相似度。
第三类长文本-长文本匹配在推荐系统中经常用到,比如新闻推荐,通过抽象整个长文本内容信息,来识别同领域或同事件的相似文本。
03 行业应用实例
下面我们以智能客服的例子,讲解一下文本匹配技术的应用环节。智能客服的一般流程包括:
1)对请求解析理解并补全;
2)召回FAQ库中的相关问题;
3)问题排序并返回给客户;
4)反馈系统记录用户点击行为进行模型更新。
其中第二步“召回FAQ库中的相关问题”则是整个流程中的关键,衡量用户请求与FAQ库中问题的相似度需要对其语义进行深度解析,同样的问题可能表达方式千差万别,如何降低用户表达与FAQ库中数据表达方式之间的差别则显得尤为关键,也是文本匹配中的难题。
References:
[1] Huang, Po-Sen, et al. "Learning deep structured semantic models for web search using clickthrough data.", CIKM 2013;
[2] Yin, Wenpeng, and Hinrich Schütze. "Multigrancnn: An architecture for general matching of text chunks on multiple levels of granularity.", ACL 2015;
[3] Pang, Liang, et al. "Text matching as image recognition.", AAAI 2016;
[4] Kim, Seonhoon, Inho Kang, and Nojun Kwak. "Semantic sentence matching with densely-connected recurrent and co-attentive information.", AAAI 2019。