SimCSE-Chinese-Pytorch
SimCSE-Chinese-Pytorch copied to clipboard
关于有监督simcse的负样本选择问题
楼主好,我看了您的有监督simcse的loss实现,发现对于三元组{x_1, x_2, x_3},只考虑了利用{x_1}和{x_2}的相互关系,及两者作为正样本,而负样本的选择是整个batch的其他样本作为负样本。
但考虑一个情况,如果{x_1, x_2}是真实正样本关系,{x_1}和{x_3}是真实负样本关系,那如果想利用真实负样本参与训练,请问在loss里面怎么区分真实负样本和batch内的负样本呢?谢谢您
你好, 根据我的理解 , 目前的loss实现方式 , x1, x2 互为正样本 , x3作为他俩的负样本 , 与batch内其他负样本并无差异 , x3作为负样本参与了训练 , 但由于他自己没有对应的正样本 , 所以算label的时候把每个三元组的x3剔除了 , 这样做可能不够优雅 , 具体可以看看论文和官方的实现 , 我看的不够深 , 可能理解有一些偏差 .