fqyuu / CatDM

8 stars 3 forks source link

loss function #2

Closed linlang1837 closed 3 years ago

linlang1837 commented 3 years ago

在第二步进行rank的时候,代码中模型的训练中的 loss 实际上并没有用到文章中提到的 P_{u}^{poi},也就是代码中的利用 window_state 计算出现在对 POI 的偏好。虽然代码里计算了 等式(23),但计算完并没有下一步的处理,没有加到 loss 中去更新参数,请问是我对代码的理解有问题吗?

linlang1837 commented 3 years ago

哦,我大概理解了,应该是预测 POI 的时候当作一个分数用的,并不是训练当作 loss 用到的。是这个意思吗?

fqyuu commented 3 years ago

你好。是的,它不参与learning。

在 2021年6月17日,12:13,linlang1837 @.***> 写道:

哦,我大概理解了,应该是预测 POI 的时候当作一个分数用的,并不是训练当作 loss 用到的。是这个意思吗?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

kevin-xuan commented 3 years ago

作者,你好。请问successive poi recommendation和next poi recommendation之间的区别在哪里?我看你提供的数据集中某些用户的label只有1个,但有的用户却有很多个label,这个label==1是怎么定义的呢?而且训练第2个encoder的时候是没有考虑window state的,只是在最后要rank POI的时候才加上了window state对POI的偏好,也就是公式(23),是这样的吧?还有一个问题,你两个encoder的输入都是用户的历史check-in数据,这样只考虑了用户的long-term偏好吧?文章说了挖掘用户的long-term偏好和short-term偏好,这个short-term偏好在哪里体现?

fqyuu commented 3 years ago

作者,你好。请问successive poi recommendation和next poi recommendation之间的区别在哪里?我看你提供的数据集中某些用户的label只有1个,但有的用户却有很多个label,这个label==1是怎么定义的呢?而且训练第2个encoder的时候是没有考虑window state的,只是在最后要rank POI的时候才加上了window state对POI的偏好,也就是公式(23),是这样的吧?还有一个问题,你两个encoder的输入都是用户的历史check-in数据,这样只考虑了用户的long-term偏好吧?文章说了挖掘用户的long-term偏好和short-term偏好,这个short-term偏好在哪里体现?

你好。 1,2:两者属于同一概念。只不过文章中添加了预测窗口,groundtruth不局限于仅仅下一个poi,而是一定时间窗口内的所有poi。 3:训练时参与训练。既然在loss中出现,肯定是参与训练。 4,5:Long Short-Term Memory (LSTM) 存在挖掘 long term和short term的能力,只不过时间窗口强化了探索long term中用户行为模式的能力。

kevin-xuan commented 3 years ago

感谢作者的回答,对于第3个问题,我看了code,计算sequence loss是用公式(24)计算的,公式(23)只是最后用来计算预测分数进而rank POI,它并不参与到训练过程中的loss计算,你之前回答另外一位的时候不也是这么解释的吗?

kevin-xuan commented 3 years ago

也就是说用注意力机制处理那12个window states所得到的用户当前状态P_{u}^{poi},公式(22),只是在训练过程中用作计算候选POI的预测分数。作者是用公式(24)来训练loss,而且作者在paper中也写了只在sort候选POI集合时才计算window states,我理解得有问题吗?

fqyuu commented 3 years ago

也就是说用注意力机制处理那12个window states所得到的用户当前状态P_{u}^{poi},公式(22),只是在训练过程中用作计算候选POI的预测分数。作者是用公式(24)来训练loss,而且作者在paper中也写了只在sort候选POI集合时才计算window states,我理解得有问题吗?

抱歉,中午回答比较匆忙。你说的没问题,window states并没有出现在loss中,只参与最终的推断。

fqyuu commented 3 years ago

也就是说用注意力机制处理那12个window states所得到的用户当前状态P_{u}^{poi},公式(22),只是在训练过程中用作计算候选POI的预测分数。作者是用公式(24)来训练loss,而且作者在paper中也写了只在sort候选POI集合时才计算window states,我理解得有问题吗?

由于时间较长,对细节遗忘较多,我特意去核对了文章和code。你的说法是对的,说明你对文章和code的理解很深,灰常谢谢你的关注。

kevin-xuan commented 3 years ago

好的好的,非常感谢作者的解答。

kevin-xuan commented 3 years ago

作者,你好!请问方便能提供一份数据预处理的脚步文件嘛?

fqyuu commented 3 years ago

你好,非常抱歉。数据处理过程是其他同学(已毕业)做的,所以只有处理好的数据。