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

is CIR contrastive loss removed? #4

Closed
skks11 opened this issue Sep 22, 2023 · 4 comments
Closed

is CIR contrastive loss removed? #4

skks11 opened this issue Sep 22, 2023 · 4 comments

Comments

@skks11
Copy link

skks11 commented Sep 22, 2023

有个小问题想请假下哈

  1. 这个地方最后是没有用CIR 的 contrastive loss 吗
    # total_loss = loss + reg_loss + self.aux_loss + contras
    total_loss = loss + reg_loss + self.aux_loss
    # print(total_loss, contras, loss)

2.contrastive loss 这个地方为啥用y 去作为索引 选择cos_sim score呢, 比如batch_size 256, 那岂不是都选到前两个的score了 后面254个的都选不到, 另外一般这种不是只包含正例 这里面应该是正负的label 都有?

# Compute the loss
loss = torch.log(exp_scores.sum(dim=1)) - scores[range(scores.shape[0]), y]
loss = loss.mean()

@archersama
Copy link
Owner

1.对比学习在这里比较难以调优,于是进行了清除
2.对比学习使用正样本的分数/总的样本分数,所以利用y进行索引正样本,这里是一种计算技巧,你可以带入一些case计算一下,结果没问题

@skks11
Copy link
Author

skks11 commented Oct 3, 2023

谢谢你的 解答, 另外最近又发现一个现象 就是比如dssm 或者 inttower 训完一个movielens的双塔模型后 得到所有user 和 item的 embedding,然后可以item之间算similarity 或者算user-item的similarity, 然后我发现 排在前面的cos_sim都是1.0 或者0.99x, 这样的打分有很多, 远远超过正样本的数量 感觉不太正常? 然后全movie 的召回 最后指标也比较差

@skks11
Copy link
Author

skks11 commented Oct 3, 2023

谢谢你的 解答, 另外最近又发现一个现象 就是比如dssm 或者 inttower 训完一个movielens的双塔模型后 得到所有user 和 item的 embedding,然后可以item之间算similarity 或者算user-item的similarity, 然后我发现 排在前面的cos_sim都是1.0 或者0.99x, 这样的打分有很多, 远远超过正样本的数量 感觉不太正常? 然后全movie 的召回 最后指标也比较差

ranking的AUC指标是没问题的, 但是既然是双塔 我就想试试召回 发现结果比较奇怪

@archersama
Copy link
Owner

这个模型是用于粗排的,用的point wise的loss,召回双塔建议使用负采样以及使用pair wise的loss

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

2 participants