基于对比学习(Contrastive Learning)的文本表示模型【为什么】能学到语义【相似】度?
我最近在做对比学习相关的实践,折腾了好久,调来调去效果一般,甚是烦躁。以下主要是一些个人的体会,思路会比较逆向。
回答这个问题,要从语义相似度计算的一般范式说起。计算句子A和句子B的语义相似度,通常来说,基于交互的方案结果更准确:
如果一共有N个句子,那么就需要进行 N × (N-1) 次相似度计算。在绝大多数的工程落地场景中,这样的计算开销都是无法被接受的。因此,建模只能转向基于表示的“两步走”方案:
每个输入句子,先要经过一个编码器进行量化,再由一个轻量级的判定模块进行相似度输出。这样设计的好处是,偏“重”的编码部分可以离线计算并缓存结果,只需计算 N 次。相似度判定部分,虽然仍是 N × (N-1) 次计算,但采用的是余
小莲子
0