【关于 语义相似度匹配任务中的 BERT】 那些你不知道的事
作者:杨夕
项目地址:https://github.com/km1994/nlp_paper_study
个人介绍:大佬们好,我叫杨夕,该项目主要是本人在研读顶会论文和复现经典论文过程中,所见、所思、所想、所闻,可能存在一些理解错误,希望大佬们多多指正。
目录
【关于 语义相似度匹配任务中的 BERT】 那些你不知道的事
目录
一、Sentence Pair Classification Task:使用 [CLS]
二、cosine similairity
三、长短文本的区别
四、sentence/word embedding
五、siamese network 方式
参考
一、Sentence Pair Classification Task:使用 [CLS]
二、cosine similairity
三、长短文本的区别
短文本(新闻标题)语义相似度任务:用先进的word embedding(英文fasttext/glove,中文tencent embedding)mean pooling后的效果就已经不错;
长文本(文章):用simhash这种纯词频统计的完全没语言模型的简单方法也可以;
四、sentence/word embedding
bert pretrain模型直接拿来用作 sentence embedding效果甚至不如word embedding,cls的emebdding效果最差(也就是pooled output)。把所有普通token embedding做pooling勉强能用(这个也是开源项目bert-as-service的默认做法),但也不会比word embedding更好。
五、siamese network 方式
思路:除了直接使用bert的句对匹配之外,还可以只用bert来对每个句子求embedding,再通过向Siamese Network这样的经典模式去求相似度;
用siamese的方式训练bert,上层通过cosine做判别,能够让bert学习到一种适用于cosine作为最终相似度判别的sentence embedding,效果优于word embedding,但因为缺少sentence pair之间的特征交互,比原始bert sentence pair fine tune还是要差些。
参考
用BERT做语义相似度匹配任务:计算相似度的方