/jstarcraft-rns

专注于解决信息检索领域的基本问题:推荐与搜索.为相关领域的研发人员提供完整的通用设计与参考实现.

Primary LanguageJavaApache License 2.0Apache-2.0

JStarCraft RNS

License


JStarCraft RNS是一个面向信息检索领域的轻量级引擎.遵循Apache 2.0协议.

专注于解决信息检索领域的基本问题:推荐与搜索.

提供满足工业级别场景要求的推荐引擎设计与实现.

提供满足工业级别场景要求的搜索引擎设计与实现.

在此特别感谢LibRec团队,也特别感谢推荐系统QQ群(274750470)提供的支持与帮助.

作者 洪钊桦
E-mail 110399057@qq.com, jstarcraft@gmail.com

JStarCraft RNS特性


JStarCraft RNS教程

克隆项目

使用Git克隆以下三个项目:

  1. JStarCraft Core
  2. JStarCraft AI
  3. JStarCraft RNS

配置依赖

Maven依赖

<dependency>
    <groupId>com.jstarcraft</groupId>
    <artifactId>rns</artifactId>
    <version>1.0</version>
</dependency>

Gradle依赖

compile group: 'com.jstarcraft', name: 'rns', version: '1.0'

设置配置

String path = "recommendation/benchmark/randomguess-test.properties";
Configuration configuration = Configuration.valueOf(path);

排序推荐器

RankingTask job = new RankingTask(RandomGuessRecommender.class, configuration);
// 训练与测试推荐器
job.execute();
Recommender recommender = job.getRecommender();

评分推荐器

RatingTask job = new RatingTask(RandomGuessRecommender.class, configuration);
// 训练与测试推荐器
job.execute();
Recommender recommender = job.getRecommender();

设置调制解调器

ModemCodec codec = ModemCodec.JSON;

编码推荐器

// 将推荐器编码为字节数组
byte[] data = codec.encodeModel(recommender);

解码推荐器

// 将字节数组解码为推荐器
Recommender recommender = (Recommender) codec.decodeModel(data);

上下文:社交,时间,位置与情感


评估指标

排序指标

  • AUC
  • Diversity
  • MAP
  • MRR
  • NDCG
  • Novelty
  • Precision
  • Recall

评分指标

  • MAE
  • MPE
  • MSE/RMSE

数据集