Closed downeykking closed 10 months ago
还有个挺奇怪的问题,就是在设置模型种类的时候(PIARWISE or POINTWISE) https://github.com/RUCAIBox/RecBole-GNN/pull/74/commits/31837e423ef3cf842ea285e96ff637e397201c90#diff-f83d6ec723fb5149c4ebca886cc2b1a089b6f63866b49dbe42ebbdd9bd610603R25 如果把pointwise变成pairwise效果会变差,但是我理解的是这个只和负样本采样有关?pairwise会对每对(u, i)采样一个负样本,pointwise只考虑(u, i),请问导致效果变化的原因您觉得可能是哪些呢
感谢贡献!!DirectAU 确实是现在很重要的工作。
POINTWISE 模式下,数据会多一列 label
标注这一条 user-item 交互是否为正例,例如
user_id:token item_id:token label:float
u1 i1 1
u2 i2 1
u3 i3 1
u1 i4 0
u2 i5 0
u3 i6 0
而 PAIRWISE 模式下
user_id:token item_id:token neg_item_id:token
u1 i1 i4
u2 i2 i5
u3 i3 i6
所以事实上如果设置为 POINTWISE 会让 DirectAU 在不存在的 user-item 交互上优化(label
为 0 的那些)?虽然不知道为什么这反倒会让效果上升 [捂脸]
感谢贡献!!DirectAU 确实是现在很重要的工作。
POINTWISE 模式下,数据会多一列
label
标注这一条 user-item 交互是否为正例,例如user_id:token item_id:token label:float u1 i1 1 u2 i2 1 u3 i3 1 u1 i4 0 u2 i5 0 u3 i6 0
而 PAIRWISE 模式下
user_id:token item_id:token neg_item_id:token u1 i1 i4 u2 i2 i5 u3 i3 i6
所以事实上如果设置为 POINTWISE 会让 DirectAU 在不存在的 user-item 交互上优化(
label
为 0 的那些)?虽然不知道为什么这反倒会让效果上升 [捂脸]
明白区别啦!因为我是按照作者代码改的,作者是基于recbole写的,我发现他虽然是POINTWISE,但是设置了neg_sample=0 https://github.com/THUwangcy/DirectAU/blob/main/recbole/properties/model/DirectAU.yaml#L3 在我的理解中这种情况就直接等价于PAIRWISE了?我实验了一下这两个跑出来的效果就是一样的了,所以按照作者的实现意图,再次修改了一下~
好的!感觉确实是这样子,感谢!
添加了directau算法,在作者提供的数据集下进行了实验,与论文结果大致一致 https://arxiv.org/pdf/2206.12811.pdf
修复了hypertuning的bug;改了recbole中出现的存储路径问题;