文本向量表示咋做?文本匹配任务用哪个模型效果好?
许多 NLP 任务的成功离不开训练优质有效的文本表示向量。特别是文本语义匹配(Semantic Textual Similarity,如 paraphrase 检测、QA 的问题对匹配)、文本向量检索(Dense Text Retrieval)等任务。
代表模型:
BM25 算法,通过候选句子的字段对 qurey 字段的覆盖程度来计算两者间的匹配得分,得分越高的候选项与 query 的匹配度更好,主要解决词汇层面的相似度问题。
主要原因是:
1.BERT 对所有的句子都倾向于编码到一个较小的空间区域内,这使得大多数的句子对都具有较高的相似度分数,即使是那些语义上完全无关的句子对。
2.BERT 句向量表示的聚集现象和句子中的高频词有关。具体来说,当通过平均词向量的方式计算句向量时,那些高频词的词向量将会主导句向量,使之难以体现其原本的语义。当计算句向量时去除若干高频词时,聚集现象可以在一定程度上得到缓解,但表征能力会下降。
代表模型:
由于 2018 年 BERT 模型在 NLP 界带来了翻天覆地的变化,此处不讨论和比较 2018 年之前的模型(如果有兴趣了解的同学,可以参考中科院开源的 MatchZoo 和 MatchZoo-py)。
所以,本项目主要调研以下比原生 BERT 更优、适合文本匹配的向量表示模型:Sentence-BERT(2019)、BERT-flow(2020)、SimCSE(2021)、CoSENT(2022)。
代表模型:
Cross-Encoder 适用于向量检索精排。
更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。