recall
为用户u推荐N个物品(记为R(u)),令用户在测试集上喜欢的物品的集合为T(u)
,然后计算召回率。召回率描述还有多少比例的用户-物品评分记录包含在最终的推荐列表中。所以T(u)是测试集的总长度。
precison
准确率描述最终的推荐列表中有多少比例是发生过的用户-物品评分记录。
论文中实例总结,这篇文章将持续更新。
- GRU4REC中,计算TOP 20的召回率时,每个session的target只有一个,所以T(u)的长度是1,意思为当取推荐的前20个数值时,(也就是softmax的结果取前20个概率对应的item),中是否包含了这个target,如果包含了就记为1。
def get_recall(indices, targets):
""" Calculates the recall score for the given predictions and targets
Args: indices (Bxk): torch.LongTensor. top-k ind