本文主要围绕这一特殊任务,介绍如何引入外部句子级细粒度信息来增强短文本信息;介绍一篇由creep的算法笔记整理近期的一篇论文工作,并作相应补充完善,供大家一起思考。
image-20220308155520667
论文地址:https://export.arxiv.org/pdf/2203.01849.pdf
一、解决了什么问题
《Context Enhanced Short Text Matching using Clickthrough Data》是2022年3月的一篇文章,由清华大学和腾讯合作推出,提出了一种借助共点击数据引入外部知识,并运用自注意力机制来增强短文本匹配的方法,证明了语义信息和多粒度信息对文本匹配建模都很重要。
上图展示了两个短句的真实场景。
给定两个句子:s1 = 怎么计息?s2 = 贷款利率一般是多少?
其实这两个短文本想要表达的意思是一样的,但是基于词级别的语义匹配不足以判断它们俩是否相识,于是文中通过引入外部知识来增强短语的表达,例如,
引入的外部知识上下文s1' = 银行贷款怎么计算利息?s2' = 银行贷款利息一般是多少?怎么算?
这样一来,匹配模型就很容易判断这两个短语是否匹配相似。
下面我们一起来看看具体是如何引入外部知识的来增强短文本匹配的,这个外部知识,其实就是句子级的上下文。
二、核心idea
整体系统架构图
上图介绍了整个工作的架构:
2.1 上下文(外部知识)引入
这部分主要是使用搜索引擎为每一个短文本搜索一个外部知识集合 ,然后使用一定的规则进行清洗得到集合。
根据文章的题目,应该是使用了用户query与title之间的clickthrough共点击数据,用query去撞这个短文本,并将对应的点击titke作为上下文句子集合,如上图中,搜索query后,会展示title,用户会点击,形成qurylog日志。
2.2 上下文选择器
上述过程得到的外部知识是比较粗糙的,虽然共点击数据之间存在一定的相关性,但不一定强相关,需要进行进一步的清洗,
作者在这部分解释了一大堆,其实就是使用一个bert 对输入三元组()做一个二分类, 指的是短语a, 指的是短语b,指的是短语a,b在2.1章节搜索到的候选外部知识集,这里需要卡一个阈值,来判断是否采用当前。
最后上下文选择器将所有相关的上下文集成到 中。
2.3 上下文增强型文本匹配器
这部分主要是利用2.2小节提取的上下文引入到短文本中。
具体做法是:
首先使用sentence BERT对短文本对、进行编码分别得到句向量,然后使用context BERT对上下文进行编码得到句向量。
接着,分别送入一个三层Transformer,最后得到融入上下文知识表示的。
不是很清楚文章所提及的sentence BERT和context BERT是否是参数共享,具体大家也可以自己实现一把看看是否需要参数共享。
2.4 匹配分类器
将上述得到的向量进行拼接[h_a;h_b;|h_a-h_b|]$,然后送入两层隐藏层一层输出层前馈神经网络(每一隐藏层后面接relu激活函数)。优化目标是BCE loss。
这里作者后面的p少打了个下标i.
2.5 匹配结果筛选
这一部分作者觉得并不是所有的的短文本都需要引入外部上下文去做补充, 如果短文本对在baseline(BERT) 模型得到的置信度得分很高,那么我们可以保留baseline计算所得的结果,决定最后预测的结果。
是模型得到的结果,是本文模型预测的结果。这里有点启发式规则的味道
三、实验结果
实验结果
为了验证模型方法的有效性,作者使用了不同的预训练模型作为基准进行了实验,打*号表示是作者自己的实验结果,其实我觉得作者应该贴出BERT,ROBERTA-wwm-ext-large原文在该数据集的结果,这样方便对比。
四、总结
本文通过引入外部知识来增强短文本信息,从而增强模型对短文本的理解,使得匹配结果更加准确。通篇文章读起来也很短只有五页,但是读起来感觉整体架构有种Boosting集成模型的思想,但也证明了语义信息和多粒度信息对文本匹配建模都很重要,欢迎一起思考。NLP前沿:使用点击数据进行句子细粒度上下文增强的短文本匹配新框架 (qq.com)