Python 开源推荐算法模块

目前我们的推荐算法单一且标签质量一般,随着业务量的增加需要使用多推荐算法融合:

1)生成推荐商品候选集算法选择:

度算法融合的选型:**基于标签+iterm_based + 基于隐语义模型

模型选择理由:
1)亚马逊等电商优先选择iterm_based进行推荐,新闻如Digg则适合使用User_based
2)关于矩阵分解SVD,使用此方法主要是此方法能充分利用上用户与商品的交互数据。
3)利用上标签数据,还可以进一步结合矩阵分解的方法从更细的用户对商品的交互行为数据挖掘出用户对商品的兴趣,解决冷启动问题。

2)重排序

电商产品,非常需要对候选集合进行排序。目前排序的主流方法是把把排序当成广告点击率转化,预测用户对商品的(点击率),可参考learning to rank算法。

3)开源算法选择,选python语言,可参考开源推荐算法:

**SVD和协同过滤算法iterm_based可以参考:
**

1,tensorflow实现SVD,python实现,较为简单:
https://github.com/songgc/TF-recomm

2,surpriselib 此推荐算法模块非常简单,python实现
http://surpriselib.com/

3,重庆大学的开源推荐算法 python2.7实现,有SVD算法,不断更新中

https://github.com/recq-cse/RecQ

4,lightFM
https://github.com/lyst/lightfm python开发,不断更新

5,pyspark里的svd
参考:http://www.jianshu.com/p/086ea17b8208

排序算法参考(tensorflow和Scikit-learn相结合)

1,python算法
库 Scikit-Learn

2,tensorflow

4)总结:

4.1,SVD算法可以参考下

考虑到算法灵活性和后期维护成本,iterm_based算法自己实现,svd则调用开源模块。

4.2,排序算法库,初期可以考虑先用逻辑回归(LR)+GBDT的结合

4.3,难点:怎么存储计算,怎么理清重排序与候选集的逻辑,特征工程等,有一定挑战性

    原文作者:老周算法
    原文地址: https://www.jianshu.com/p/475305e1525c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞