go推荐系统项目介绍

栏目: 编程工具 · 发布时间: 5年前

内容简介:近期想使用推荐系统实现一些功能,由于不懂Java,担心Python的性能不够,因此就关注了go语言实现的开源项目。协同过滤的原理很简单,就是根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性, 或者是发现用户的相关性,然后再基于这些关联性进行推荐这里主要实现了基于用户和基于项目的协同过滤两种推荐算法

近期想使用推荐系统实现一些功能,由于不懂Java,担心 Python 的性能不够,因此就关注了 go 语言实现的开源项目。

推荐系统中的协同过滤算法原理

协同过滤的原理很简单,就是根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性, 或者是发现用户的相关性,然后再基于这些关联性进行推荐

这里主要实现了基于用户和基于项目的协同过滤两种推荐算法

基于用户的协同推荐(User based Collaborative Filtering Recommendation)

基于用户协同推荐的原理是,根据所有用户对物品或者信息的偏好,发现当前用户口味和偏好相似的“邻居”用户群, 基于邻居的偏好信息,对用户进行推荐

举例, 假设有以下关系

A --> a,c 表示用户A喜欢物品a和c

B --> b

C --> a,c,d

可以发现用户A和C的口味偏好相似(他们是邻居),同时C喜欢物品d,那么我们可以推断 用户A也可能喜欢物品d

Item based Collaborative Filtering Recommendation

基于项目的协同推荐

基于项目的协同推荐的原理是,它使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度, 然后根据用户的历史偏好信息,将类似的物品推荐给用户

举例,假设有以下关系

A --> a,c

B --> a,b,c

C --> a

根据基于项目的协同过滤原理,可以发现物品a和物品c相似,用户C喜欢a物品,那么可以把c物品推荐给他

在github上搜索,发现项目较少,较为完善的是gorse项目

gorse: Go Recommender System Engine

gorse使用go语言实现推荐系统,提供以下模块方便构建推荐系统:

  • 数据:支持从文件加载(提供内置部分数据可用于测试)
  • 分离器:支持K-fold、比率、保留方式分离数据集
  • 模型:推荐模型基于协同过滤算法,包括矩阵分解、基于临接的方法、Slope One、Co-Clustering
  • 评估:可使用RMSE、MAE来评分,包括准确率、召回率、 归一化折损累积增益NDCG、平均准确率MAP、 MRR、AUC.
  • 参数搜寻:使用网格或随机方式寻找最佳超参
  • 持久化:保存模型或加载模型
  • SIMD(可选):理论上在对矢量采用AVX2指令,可以获得比单指令快4倍的速度

项目地址:github.com/zhenghaoz/gorse

  1. 推荐项亮著的 推荐系统实践
  2. 实现推荐系统引擎(一):评分预测

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

自媒体写作,从基本功到实战方法

自媒体写作,从基本功到实战方法

余老诗 / 清华大学出版社 / 2018-9-1 / 59.00元

《自媒体写作》是一本系统而通俗易懂的自媒体写作指导书。 全书共分为10章,分别从写作基本功、新媒体认知、新媒体传播规律和自媒体作者阅读写作素养以及如何进阶等方面展开,结合简书、公众号、今日头条等主流自媒体所选例文,讲解写作知识和新媒体特点,内容详实,有理有据,非常适合自媒体写作爱好者自学。 尤其值得一提的是,写作基本功部分从原理、方法和技巧三个层面展开论说,让自媒体写作学习者既能从根本......一起来看看 《自媒体写作,从基本功到实战方法》 这本书的介绍吧!

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具