
LibRec 学习笔记
2020 年 1 月份开始学习使用 LibRec,学习这个库的目的是希望可以用它去更快更方便的复现一些论文的结果以及从源代码中汲取营养。由于本人对 Java 不熟悉、LibRec 相关文档少之又少,所以刚开始学习怎么使用这个库真的是费了一些功夫,现仅以自己的微薄之力,输出内容帮助和我一样的初学者。
_ dingding_
华南理工大学硕士生,主要关注推荐系统,机器学习等。
展开
-
LibRec 学习笔记(十二):SBPR 的训练 Loss 为什么越来越大,没有收敛的迹象?
简单记录刚刚在使用 librec 时发现的一个小点,发现越训练,loss值越大???训练的数据集是 filmtrust ,训练的效果如下图所示,loss值一直在上升,肯定是有问题的!说明:上图的 loss 是每一次迭代的 loss 总值delta_loss 是上一次迭代的 loss 值 - 本次迭代 loss 值在网上查了下才发现可能是学习率太大的原因去查了资料才发现是...原创 2020-04-24 21:35:13 · 2773 阅读 · 6 评论 -
LibRec 学习笔记(十一):更新 LibRec 3.0 版本的 code snippet(含过滤模块)
下面是代码:package librec.qiqi;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;impor...原创 2020-04-19 15:58:42 · 1170 阅读 · 10 评论 -
LibRec 学习笔记(十):代码走读 MostPopularRecommender
最近做实验,瞄了一眼MostPopularRecommender推荐的结果,与我想象中的结果不一样,我想象的是这个算法给每个人推荐一模一样的列表,但是这里显示的结果并不是这样,遂仔细研究了下,以下是我粗浅的分析。这是目录一、算法思想二、MostPopularRecommender 代码走读三、MostPolularTestCase 代码走读四、推荐的时候,是否需要剔除用户已经消费过的物品?...原创 2020-04-01 17:58:01 · 1025 阅读 · 0 评论 -
LibRec 学习笔记(九):如何利用已有轮子 LibRec 库实现自己的推荐算法?
在 LibRec 中实现自己的算法,首先需要按照自己算法所属的类别去继承相应的抽象类,并按要求去实现相应的抽象方法,也可以按自己的需要去重写抽象类中的方法。目前...原创 2020-04-01 16:25:05 · 2127 阅读 · 8 评论 -
LibRec 学习笔记(八):如何固定每次算法运行的推荐结果?
固定每次算法运行的推荐结果是非常有必要的,这样可以方便其他人进行复现。目录一、算法的哪些部分发生变化可能会产生不一样的推荐结果?二、在 LibRec 中的解决办法一、算法的哪些部分发生变化可能会产生不一样的推荐结果?数据集划分部分,比如下面的代码是按给定比例将数据集划分为测试集和训练集,如果采用的写法如下,那么一般会造成划分训练集和测试集数据的随机性,因此可能会导致不一样的推荐结果。...原创 2020-03-17 16:54:19 · 583 阅读 · 0 评论 -
LibRec 学习笔记(七):代码走读 SBPR 算法
目录SBPR源码注释解释1、SBPRRecommender.java 中 setup() 基类里有什么?解释2:SBPR 中的训练方式解释3:SBPR 中的预测方法下面是在 LibRec 库里面关于复现 SBPR 算法的代码,现加上注释发出来:SBPR源码注释package net.librec.recommender.context.ranking;import com.google.c...原创 2020-02-23 21:28:01 · 1978 阅读 · 7 评论 -
LibRec 学习笔记(六):手把手教你如何看懂 API 帮助文档
对于小白来说,快速学习并且使用一个新接触的库|框架|项目是非常有难度的,比如我们这里的 LibRec 开源库。在我们想要把它用于自己项目的时候,或多或少想要知道某个类是做什么用的,里面有什么方法以及如何去使用。那碰到这种情况,我们普遍的做法除了在搜索引擎里找寻答案,还有一种最简单且直接的方法:直接查询该库|框架|项目的API帮助文档。一、API首先解释第一个问题:什么是 API? 百度百科...原创 2020-02-14 01:45:59 · 2301 阅读 · 3 评论 -
LibRec 学习笔记(五):使用 LibRec 快速复现 BPR 算法以及对比它的改进算法
这是目录一、BPR 的介绍二、近年来在 BPR 上的经典改进算法1、WBPR2、GBPR3、SBPR4、AoBPR5、MBPR三、实验比较BPR算法以及它的改进算法1、使用数据集Filmtrust进行实验2、使用数据集 Epinions 进行实验一、BPR 的介绍BPR,UAI,2009,来自 Rendle 的论文 BPR: Bayesian Personalized Ranking from...原创 2020-02-09 22:43:18 · 3100 阅读 · 4 评论 -
LibRec 学习笔记(四):LibRec 中的默认配置项里面的参数是什么意思?
我们知道在 librec 中有许多已经实现的推荐算法,因为每种推荐算法的参数不一定一样,而又有大部分参数是一样的,比如都会涉及到划分数据集的方式、评估方式等等。所以 librec 项目为了方便,把大部分推荐算法都有的参数配置都固定到 librec-default.properties 这个文件中,那么这些参数就成为了默认的配置项,下面有例举出来并且配上相关解释:dfs.data.dir=../d...原创 2020-01-30 23:56:59 · 1522 阅读 · 0 评论 -
LibRec 学习笔记(三):LibRec 如何使用命令行和参数或者配置文件运行指定推荐算法?
首先,这个是官方关于这个内容的文档,如果觉得看不懂,或者有些地方运行不成功,可以看我这篇手把手演示 librec 如何使用命令行和参数或者配置文件运行指定推荐算法的文章。以下内容分为三大部分:第一部分首先演示如何使用命令行运行指定推荐算法;第二部分仔细解释了 librec 命令中所有参数的意思;以及第三部分小结如何使用命令行和参数或者配置文件运行指定算法。一、第一部分:演示如何使用命令行运行指...原创 2020-01-30 22:03:44 · 2348 阅读 · 0 评论 -
LibRec 学习笔记(二):如何成功运行 LibRec 官方提供的code snippet?
首先,Librec官方针对librec-core 2.0 提供的code snippet链接在此,该代码只适用于2.0。我这里直接使用的是librec-core 3.0,官方提供的针对3.0 提供的code snippet链接在此,代码如下:public static void main(String[] args) throws Exception { //...原创 2020-01-30 01:41:11 · 2072 阅读 · 8 评论 -
LibRec 学习笔记(一):如何在自己的项目中导入第三方包:LibRec ?
如果需要使用第三方包,librec,一般有以下两种常用做法(若想导入其他第三方包,做法类似):一、直接使用官方提供的maven依赖代码进行下载使用:这是网址依赖代码:<dependency> <groupId>net.librec</groupId> <artifactId>librec-core</artifactI...原创 2020-01-29 00:02:55 · 4074 阅读 · 12 评论