大家好,我是东哥。
本次给大家安利 10 个开源的推荐系统,GitHub链接如下。然后再给大家介绍下推荐系统框架下各个环节及作用。
1、muricoca/crab
https://github.com/muricoca/crab
2、ibayer/fastFM
https://github.com/ibayer/fastFM
3、Mendeley/mrec
https://github.com/mendeley/mrec
4、MrChrisJohnson/logistic-mf
https://github.com/MrChrisJohnson/logistic-mf
5、jadianes/winerama-recommender-tutorial
https://github.com/jadianes/winerama-recommender-tutorial
6、ocelma/python-recsys
https://github.com/ocelma/python-recsys
7、benfred/implicit
https://github.com/benfred/implicit
8、lyst/lightfm
https://github.com/lyst/lightfm
9、python-recsys/crab
https://github.com/python-recsys/crab
10、NicolasHug/Surprise
https://github.com/NicolasHug/Surprise
工业中的推荐系统一般包含四个环节,分别是召回、粗排、精排和重排。
召回:根据用户的兴趣和历史行为,从海量的物品库里,快速找回一小部分用户潜在感兴趣的物品,然后交给排序环节,排序环节可以融入较多特征,使用复杂模型,来精准地做个性化推荐。
粗排:有时候因为每个用户召回环节返回的物品数量还是太多,怕排序环节速度跟不上,所以可以在召回和精排之间加入一个粗排环节,通过少量用户和物品特征,简单模型,来对召回的结果进行粗略的排序,在保证一定精准的前提下,进一步减少往后传送的物品数量,粗排往往是可选的,可用可不同,跟场景有关。
精排:使用你能想到的任何特征,可以上你能承受速度极限的复杂模型,尽量精准地对物品进行个性化排序。
重排:排序完成后,传给重排环节,重排环节往往会上各种技术及业务策略,比如去已读、去重、打散、多样性保证、固定类型物品插入等等,主要是技术产品策略主导或者为了改进用户体验的。