近期想使用推荐系统实现一些功能,因为不懂Java,担忧Python的性能不够,所以就关注了go语言实现的开源项目。git
协同过滤的原理很简单,就是根据用户对物品或者信息的偏好,发现物品或者内容自己的相关性, 或者是发现用户的相关性,而后再基于这些关联性进行推荐github
这里主要实现了基于用户和基于项目的协同过滤两种推荐算法1算法
基于用户协同推荐的原理是,根据全部用户对物品或者信息的偏好,发现当前用户口味和偏好类似的“邻居”用户群, 基于邻居的偏好信息,对用户进行推荐dom
举例, 假设有如下关系性能
A --> a,c 表示用户A喜欢物品a和c
B --> b
C --> a,c,d
能够发现用户A和C的口味偏好类似(他们是邻居),同时C喜欢物品d,那么咱们能够推断 用户A也可能喜欢物品d测试
Item based Collaborative Filtering Recommendationspa
基于项目的协同推荐的原理是,它使用全部用户对物品或者信息的偏好,发现物品和物品之间的类似度, 而后根据用户的历史偏好信息,将相似的物品推荐给用户blog
举例,假设有如下关系ci
A --> a,c
B --> a,b,c
C --> a
根据基于项目的协同过滤原理,能够发现物品a和物品c类似,用户C喜欢a物品,那么能够把c物品推荐给他get
在github上搜索,发现项目较少,较为完善的是gorse项目
gorse使用go语言实现推荐系统,提供如下模块方便构建推荐系统:
项目地址:github.com/zhenghaoz/gorse