DensePhrases
论文地址:https://arxiv.org/pdf/2012.12624.pdf
Motivation:
- 目前QA的主流方法还是基于cross-model的retrieval reader方法
- 然而基于phrase embedding的匹配应该会有更好的运算效率(颗粒小,可并行化),并且具有更好可拓展性和可解释性(更符合NLP本质)
- 由于面临的语料库非常庞大,目前的sparse的phrase embedding质量较低。那如果改造成dense的呢?
Method:
-
p侧使用SpanBERT-based模型基于word进行embedding训练,phrases就是取其头尾的word embedding,再拼接起来作为表示:(基于word的存储压力小)
-
q的embedding为了保持与p对齐,也是两个向量拼接,所以使用两个SpanBERT-based模型,输入为该q的CLS符,分别输出两个embedding后再拼接起来作为q的表示
-
结果就是给定q,通过矩阵相乘匹配取出概率值最大的start word和end word,然后返回语料库中找符合的phrase(即答案),其间使用FAISS加速
-
Loss较为复杂,由三部分组成:
单文本匹配训练q的embedding;知识蒸馏来保证phrase头尾embedding的鲁棒性;in batch的query-phrase(一正多负)来对齐最终任务 -
为了加强模型质量,对q侧的模型做了在Wikipedia上的fine tuning,使其embedding质量更高
Tips:
- 问答任务又重新下沉到phrase级别,并且有不错表现,算是小的开拓和指示
- SpanBERT和此论文DensePhrase的成功说明了以首尾表示phrase的方式貌似还不错
- 充分利用目前很有效的各种方法,诸如:知识蒸馏、inbatch的negative训练、FAISS
Results:
- 在问答领域(SQuAD,Natural Questions)上远远超过其他基于phrase的表现,也于SOTA的retrieval reader方法基本持平
- 在完形填空任务中(T-REx,ZsRE)达到SOTA,包括打败了retrieval reader方法。阅读理解领域也表现不俗
- GPU上速度翻了20倍,CPU上翻了300倍,且运行时占内存更少
My Thoughts:
- 揭示了回归phrase级别虽然目前看来效果不一定最好,但有突破的可能
- 文中各种方法有点不具有连贯性,感觉是为了冲效果在搭积木,所以该思想方法的有效性还值得商榷(比如Loss设计)
(ps:本文图片均来自于原paper,侵删)