Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于 spearman 得分很高但检索很差的询问 #2

Open
muyuuuu opened this issue Mar 14, 2022 · 6 comments
Open

关于 spearman 得分很高但检索很差的询问 #2

muyuuuu opened this issue Mar 14, 2022 · 6 comments

Comments

@muyuuuu
Copy link

muyuuuu commented Mar 14, 2022

数据集是 0-1 格式的数据集,0 表示不相似,1 表示相似,各有10 万对。语料库中总共有 200 万个句子,也就是说有些样本没参与训练。不太一样的就是:第一个句子很短,5 6 个字左右,第二个句子很长,50字左右。比如淘宝搜索:XXX零食,推荐的结果会有:XXX商店XXX口味XXX面包。

我使用 CoSENT 进行训练,在 bert 后接入一个降维层,生成文本的 128 维度特征向量,期待相似样本的距离近,不相似样本距离远。微调 3 个 epoch 左右,spearman 得分在 0.86 左右。

而后,将所有文本生成特征向量,构建向量索引(这里用的别人成熟的框架,不是构建索引出错),并查询距离最近的向量,发现很难查回正样本,MRR 指标也很差,这个问题我怀疑是距离还是没有拉开,请问您在使用这个方法的时候有没有遇到过类似问题呢?仿佛偏题了

@di-osc
Copy link

di-osc commented May 27, 2022

我有碰到过跟你一样的情况,我的原因是句向量pooling操作没有去除[PAD]位置,spearman系数特别高, 但是召回的时候100个召回率确只有0.2左右.

@muyuuuu
Copy link
Author

muyuuuu commented May 28, 2022

我有碰到过跟你一样的情况,我的原因是句向量pooling操作没有去除[PAD]位置,spearman系数特别高, 但是召回的时候100个召回率确只有0.2左右.

我的应该是负样本比例太低了,把正负样本设置为 1: 10,结果好了很多,但比不上 simcse。

@graciechen
Copy link

我有碰到过跟你一样的情况,我的原因是句向量pooling操作没有去除[PAD]位置,spearman系数特别高, 但是召回的时候100个召回率确只有0.2左右.

我的应该是负样本比例太低了,把正负样本设置为 1: 10,结果好了很多,但比不上 simcse。

为什么要把正负比例设置这么大呢?

@muyuuuu
Copy link
Author

muyuuuu commented Jul 5, 2023

为什么要把正负比例设置这么大呢?

负样本数据量比较大,可能当时想的是把所有样本都用上吧

@graciechen
Copy link

为什么要把正负比例设置这么大呢?

负样本数据量比较大,可能当时想的是把所有样本都用上吧

多谢,请教2个问题:
1、本来模型得到的embedding是768维的,为啥要去降维到128维去计算相似距离?
2、你的测试集是断句有很多语义相似的数据对,然后短句和测试集中的每一个长句计算相似度排序,然后看对应相似的长句排序位置计算MRR的吗?

@muyuuuu
Copy link
Author

muyuuuu commented Jul 8, 2023

多谢,请教2个问题:

  1. 768 用于实际召回计算,维度太高了
  2. 除了语义相似,其他是对的,测试集也没多少语义相似的

补充,建议 simcse,效果很好

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants