• 推荐系统之 BPR 算法及 Librec的BPR算法实现【2】


    先前的是:推荐系统之 BPR 算法及 Librec的BPR算法实现【1】

    LibREC源码里的BPR算法的输入比较是:“(购买+点击)v.s.没出现的”,先前有修改过一次是让输入比较对为:“购买v.s. 点击”。
    现在的情况是:以上二者结合起来,即比较对是:“(购买+点击)v.s.没出现的”+“购买v.s. 点击”的比较对。
     
    就比如,购买了1,点击了2,而未出现的设为3和4(隐式 item)。
    原先代码默认的比较对比较方式(正样本>负样本)是:1>3;1>4;2>3;2>4.;
     
    现在还要加上一个 1>2 的比较对。
     
    因此最终的比较对是:1>2 ;1>3;1>4;2>3;2>4.
     
    LibREC社区的不二前辈的建议是:
    写代码:正样本只采样1-2的物品。
    然后采样到1的时候,采样2-4的物品作为负样本。
    采样到2的时候,采样3-4的物品作为负样本。
     
     
    目前,BRP训练完的数据是没有缓存的。(——可以等下个版本。我记得@王宇峰 在实现模型的序列化和反序列化。1.3就尽快迁移到2.0吧。或者亦可以自己实现一下,用Json或者Kyro保存。参考一下相关文章。
     
     
    【我的最终做法】
    正样本 i 是已经确定可以采样出来。即为购买+点击的item
    负样本 j 来源于两部分,一个是点击无购买item,一部分是隐式item(随机)。因为两个集合没办法放一起,故采用随机数的方法,如果随机数等于1,采样后者,如果随机数等于0,采样前者。

  • 相关阅读:
    一本通1590恨 7 不成妻
    一本通1591数字计数
    一本通1589不要 62
    一本通1588数字游戏
    一本通1587【例 3】Windy 数
    一本通1586【 例 2】数字游戏
    一本通1585【例 1】Amount of Degrees
    一本通1584骑士
    一本通1583叶子的染色
    一本通1581旅游规划
  • 原文地址:https://www.cnblogs.com/shenxiaolin/p/8798586.html
Copyright © 2020-2023  润新知