我最近在学习训练推荐系统时遇到了LightFM。到目前为止,我所知道的是,它利用了逻辑,BPR,Warp和K-OS经线的损失功能。我没有经历所有这些功能背后的数学。现在我感到困惑的是,我怎么知道要使用哪种损失功能?
来自LightFM模型文档页面:
logistic :当存在正(1(和负(1(相互作用时很有用。
BPR :贝叶斯个性化排名1成对损失。最大化阳性示例和随机选择的负面示例之间的预测差异。当仅存在积极相互作用并需要优化Roc AUC时,有用。
扭曲:加权近似级 - 成对[2]损失。通过反复采样负面示例,直到发现违反一个示例。只有存在积极的互动并优化建议列表的顶部(Precision@k(时有用。
K-OS Warp :k-th Order统计损失[3]。修改扭曲的修改,该扭曲使用K- - 任何给定用户的积极示例作为成对更新的基础。
一切都归结为您的数据集的结构以及您正在查看的用户交织在一起的方式。显然,一种方法是在进行超参数调整时(至少那是我所做的(,将损耗函数 。我发现投资给定的损失函数为何在数据集上表现更好/更糟,这是一项良好的学习练习。