想问下用户多个embedding时,hit_rate怎么算呢?[阿里云机器学习PAI]

想问下用户多个embedding时,hit_rate怎么算呢?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. 当用户有多个embedding时,可以通过将这些embedding进行拼接(Concatenate)的方式来得到用户的综合embedding。对于这种情况,可以使用以下方法来计算hit rate:

    1、对于每个用户,将所有的embedding进行拼接,得到用户的综合embedding。

    2、对于每个用户,将其综合embedding与所有的item embedding进行相似度计算,得到一个分数列表。

    3、将分数列表按照从大到小排序,取前K个分数对应的item作为推荐结果。

    4、如果推荐结果中包含用户真实交互过的item,则认为推荐命中,否则认为推荐未命中。

    5、统计所有用户的命中次数和总次数,计算hit rate。

  2. 当用户有多个embedding时,hit_rate(命中率)可以通过以下计算方式来计算:

    1、对于每个用户,先将多个embedding求和或求平均得到一个表示用户的embedding。

    2、对于每个测试项,计算其与每个用户embedding的相似度,选择最高的相似度来判断这个测试项是否与用户匹配。

    3、计算所有测试项中被正确匹配的数量,除以测试项总数即可得到命中率。 例如,假设有10个用户,每个用户有3个不同的embedding表示,总共有30个embedding表示。对于每个用户,可以将3个embedding求平均得到一个表示这个用户的embedding。对于每个测试项,可以计算其与每个用户embedding的相似度,选择最高的相似度来判断这个测试项是否与用户匹配。最后计算所有测试项中被正确匹配的数量,除以测试项总数即可得到命中率。

    需要注意的是,相似度的计算方式可以根据具体情况选择,例如可以使用余弦相似度、欧几里得距离等。此外,如果有多个测试项与多个用户匹配,可以使用其他指标如F1-score、准确率等来评估模型的性能。