该项目主要是文本匹配相关模型,包含使用SimCSE、ESimCSE、PromptBert三种无监督文本匹配模型和SBert、CoSent两种有监督文本匹配模型。
利用Transformer Dropout机制,使用两次作为正样本对比,以此来拉近正样本,推开负样本。
模型结构:
损失函数:
参考:
1)https://github.com/princeton-nlp/SimCSE
2)https://github.com/KwangKa/SIMCSE_unsup
3)https://arxiv.org/pdf/2104.08821.pdf
在SimCSE的基础上,通过重复句子中部分词组来构造正样本,同时引入动量对比来增加负样本。
模型结构:
损失函数:
参考:https://arxiv.org/pdf/2109.04380.pdf
使用Prompt方式来表征语义向量,通过不同模板产生的语义向量构造正样本,同一批次中的其他样本作为负样本。
损失函数:
本实验使用两个句子模板:
1)"[X]",它的意思是[MASK]。
2)"[X]",这句话的意思是[MASK]。
在计算损失函数时为了消除Prompt模板影响,通过替换模板后的句子[MASK]获取的表征减去模板中[MASK]获取的表征来得到句子向量表征。
参考:https://arxiv.org/pdf/2201.04337.pdf
使用双塔式来微调Bert,MSE损失函数来拟合文本之间的cosine相似度。
模型结构:
参考:https://www.sbert.net/docs/training/overview.html
构造一个排序式损失函数,即所有正样本对的距离都应该小于负样本对的距离,具体小多少由模型和数据决定,没有一个绝对关系。
损失函数:
参考: