【推荐系统之 BPR 算法】

1、关于BPR的论文原文: BPR: Bayesian Personalized Ranking from Implicit Feedback

2、参考1:论文快读 - BPR: Bayesian Personalized Ranking from Implicit Feedback   (该博主的网站不错,尤其论文快读模块)

3、参考2:结合librec源代码读论文:Bayesian personalized ranking系列方法 (该博主的网站亦不错)

【Librec的BPR算法实现】

Librec的推荐系统库可以说是很强大了。郭老师团队特别厉害!

我们原先是用Librec1.3版本里面的BPR算法作为对比实验。现在需要有所修改:

数据集是“购买/点击的商品”,想要计算其购买概率。

LibREC源码里的BPR算法的输入比较是“(购买+点击)v.s.没出现的”,目前需要的是“购买v.s. 点击”。因此需要改一下源码:

     // 那就改BPRRecoomender这里, 把数据集中购买的记录标记为1,点击却没购买的记录标记为0。然后就当作正负样本就行了。
     // 1.3 这个版本没有BPRRecoomender,而是BPR.java 。  1.3叫BPR,2.0叫BPRRecommender。一样的,就改对应的负采样。
     // 正采样不用改,点击记录分数如果是0,会自动被忽略。因此就只需要改负采样就好了。
     // 原来的代码是把所有每个用户正样本之外的物品都假设为负样本啊。
     // j 表示的是负样本是吗?可是它这里怎么是用的随机数??——就是把这里改成不要用随机数。
 
 
   
// 以下两个区别:
 //  是,2.0版本会过滤掉0。 1.3版本不会过滤掉0。
     // 可以在外部判断一下。如果data[index]是0,那么当作负样本,data[index]是1当作正样本。
 
这边改完之后应该没有 相关的配置文件有需要改的。没有影响到配置项。
但是划分器那里可能也得调整。现在得划分器(Splitter)可没有按照0,1提取正样本用做后续的评估。

------------------------------------------------------------------

-------------------------------------------------------------------------

也就是在这里也需要改:

推荐系统之 BPR 算法及 Librec的BPR算法实现【1】的更多相关文章

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

    先前的是:推荐系统之 BPR 算法及 Librec的BPR算法实现[1] LibREC源码里的BPR算法的输入比较是:“(购买+点击)v.s.没出现的”,先前有修改过一次是让输入比较对为:“购买v.s ...

  2. Librec的AoBPR算法实现

    Librec的AoBPR算法实现:(基于1.3版本) 要用AoBPR,但是没有找到相应的配置文件,应该怎么办呢?       ——因为用的是1.3版本,所以没有,2.0版本有的.[跟BPR参数一样,就 ...

  3. 基于改进人工蜂群算法的K均值聚类算法(附MATLAB版源代码)

    其实一直以来也没有准备在园子里发这样的文章,相对来说,算法改进放在园子里还是会稍稍显得格格不入.但是最近邮箱收到的几封邮件让我觉得有必要通过我的博客把过去做过的东西分享出去更给更多需要的人.从论文刊登 ...

  4. 图的生成树(森林)(克鲁斯卡尔Kruskal算法和普里姆Prim算法)、以及并查集的使用

    图的连通性问题:无向图的连通分量和生成树,所有顶点均由边连接在一起,但不存在回路的图. 设图 G=(V, E) 是个连通图,当从图任一顶点出发遍历图G 时,将边集 E(G) 分成两个集合 T(G) 和 ...

  5. [Algorithm] 群体智能优化算法之粒子群优化算法

    同进化算法(见博客<[Evolutionary Algorithm] 进化算法简介>,进化算法是受生物进化机制启发而产生的一系列算法)和人工神经网络算法(Neural Networks,简 ...

  6. 【转】常用聚类算法(一) DBSCAN算法

    原文链接:http://www.cnblogs.com/chaosimple/p/3164775.html#undefined 1.DBSCAN简介 DBSCAN(Density-Based Spat ...

  7. JVM内存管理------GC算法精解(复制算法与标记/整理算法)

    本次LZ和各位分享GC最后两种算法,复制算法以及标记/整理算法.上一章在讲解标记/清除算法时已经提到过,这两种算法都是在此基础上演化而来的,究竟这两种算法优化了之前标记/清除算法的哪些问题呢? 复制算 ...

  8. 常用聚类算法(一) DBSCAN算法

    1.DBSCAN简介 DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种基于密度 ...

  9. 转载: scikit-learn学习之K-means聚类算法与 Mini Batch K-Means算法

    版权声明:<—— 本文为作者呕心沥血打造,若要转载,请注明出处@http://blog.csdn.net/gamer_gyt <—— 目录(?)[+] ================== ...

随机推荐

  1. 编译打包工具sbt的镜像设置

    sbt可以和maven共用一个镜像,公司内部有的自然最后不过 创建文件:~/.sbt/repositories [repositories] local aliyun: http://maven.al ...

  2. android 百度地图demo 随感

    最近项目组的老大要我对百度的android的sdk进行一段的预研,由于技术太菜,出了不少的错误,因此有一点感悟了. 嗨,这个错误浪费了我一天的时间的时候,我按照百度的技术文档一步步的来做,每部基本上都 ...

  3. [JSP]JSP中include指令和include动作的差别

    include指令是编译阶段的指令,即include所包括的文件的内容是编译的时候插入到JSP文件里,JSP引擎在推断JSP页面未被改动,否则视为已被改动. 因为被包括的文件是在编译时才插入的.因此假 ...

  4. tp 生成静态页

    $this->fetch()返回的是html 可以直接写入到HTML文件内生成静态页

  5. Hash索引与B-Tree索引

    Hash索引 Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要 ...

  6. 微博推荐算法学习(Weibo Recommend Algolrithm)

    原文:http://hijiangtao.github.io/2014/10/06/WeiboRecommendAlgorithm/ 基础及关联算法 作用:为微博推荐挖掘必要的基础资源.解决推荐时的通 ...

  7. COM不同的线程模型对列集和同步的不同要求。

  8. oracle 之监听保护

    今天是2013-08-24,不对刚刚过了12点,应该是2013-08-25日,今天我的同事对数据库 进行监听安全加固失败,然后 我的哥们也做了同样的实验,结果还是失败,至此我不知道 什么原因,在此想对 ...

  9. webpack打包过滤console.log

    在webpack.prod.conf.js里面的plugins里面加上 drop_debugger: true, drop_console: true new webpack.optimize.Ugl ...

  10. wepy - 转换成h5

    包地址:http://npm.taobao.org/package/wepy-web 1. npm 安装 npm install wepy-web 2.yarn 按照 yarn add wepy-we ...