分享好友 最新动态首页 最新动态分类 切换频道
golang源码分析:推荐系统gorse(part I)
2024-12-26 20:48

con gorse使纯go实现的一套分布式推荐系统解决方案:

https://github.com/zhenghaoz/gorse,包含了master,worker和server三个部分。

整套模型中包含了三个实体:用户、物料、反馈

用户通过一个ID来唯一标示

物料包含一个时间戳,通过它来判断物料是否过期,Lables是物料的特征

反馈的类型可以是正向、负向或者中性( positive (like), negative (dislike) or neutural (read))

gorse做的事情就是把合适的物料推荐给合适的人:推荐数据包括两部分:个性化推荐和非个性化推荐(popular/latest/similar)。

三个节点的分工非常明确:

master节点负责用所有的物料数据和用户数据以及反馈数据来拆分训练集和测试集,然后训练模型,模型分为两大类:排序和点击预测;训练完毕后通过模型搜索来获取最优模型和参数。同时非个性化推荐也是master节点完成的。推荐结果写入缓存,缓存是用list来维护的,会定期过滤过期的数据。

worker节点 ,通过grpc从master拉取模型数据,还有用户列表,定时分批对每一个用户来计算推荐数据,存入缓存。

server节点提供,提供restful的api接口和swagger文档,前端可以通过接口从缓存中获取当前用户的推荐数据,或者对推荐的数据做出反馈。

以上就是gorse的架构和核心数据,下面结合源码来进行分析。源码目录如下:

master

master 节点的核心逻辑主要包含下面几步

1,训练模型的大循环也分为三个部分

其中排序模型包含三部分的内容

2,最佳模型参数筛选大循环

主要包括两部分的筛选:排序模型和点击预测模型:

排序模型具体有多种

点击预测模型参数搜索也分两步:搜索、计算评分

3,全局非个性化推荐,存入缓存

worker

个性化推荐的逻辑在worker节点上,运用master节点训练的模型数据,来做排序推荐,主要分为下面几步:

1,同步的数据分三类

2,个性化推荐是根据系统的处理能力和用户数量进行分批处理的,处理过程如下

server

其它两个节点主要是离线的,server节点提供在线服务,分为三步

提供http服务包括三个部分

以上就是三个节点的相关核心源码,下面介绍下排序模型和点击预测模型

1,排序模型

gorse实现了4个排序模型

A,als:Alternative -Least-Squares

交替最小二乘法

它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法可用于曲线拟合。

B,bpr:Bayesian Personalized Ranking

基于贝叶斯后验优化的个性化排序算法

BPR算法将用户对物品的评分(显示反馈“1”,隐式反馈“0”)处理为一个pair对的集合<i,j>,其中i为评分为1的物品,j为评分为0的物品。假设某用户有M个“1”的评分,N个“0”的评分,则该用户共有M*N个pair对。

这样数据集就由三元组 <u,i,j>表示,该三元组的物理含义为:相对于物品“j”,用户“u”更喜欢物品“i”。

C,ccd:Cyclic Coordinate Descent (CCD)

是一个启发式的迭代搜索算法,

D,knn:k-Nearest Neighbor

K最近邻分类算法

如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的

大多数属于某一个类别,则该样本也属于这个类别

2,点击预测模型

Classification

Regression

分离器:支持k-fold、 比率ratio 、 leave-one-out分离数据集

模型:推荐模型基于协同过滤算法,包括矩阵分解、基于临接的方法、Slope One、Co-Clustering2

评估:可使用RMSE、 MAE来评分,包括准确率Precision、召回率Recall、归一化折损累积增益NDCG、MAP、MRR、AUC

参数搜寻:使用方式网格搜索grid search 或 随机搜索random search寻找最佳超参数

最新文章
网站建设公司怎么推广产品,精细分析解释定义_9DM11.71.96
摘要:,,关于网站建设公司如何推广产品,这涉及到一系列的策略ࡴ
智能坐便器有哪些品牌 智能坐便器十大知名品牌介绍【详解】
  对于国产智能马桶盖和进口智能马桶盖,很多消费者都选择去相信进口智能马桶盖,特别是日本的品牌,很多人不惜花重金远洋购买,其实国产中也有不错的品牌,以下的十大智能坐便器就有很多国产品牌,我们一起来看看。  十大智能坐便器和
SEO小白必学,轻松入门搜索引擎优化
本教程将带你轻松入门SEO,从基础概念到优化技巧,助你快速掌握搜索引擎优化,提升网站排名。随着互联网的快速发展,搜索引擎()已经成为网站中不可或缺的一环,SEO不仅可以提高网站的曝光度,还能提升用户体验,从而带来更多的流量和,本
怎么开发微信小程序百科-零基础,如何入门并开发出一个微信小程序?
随着移动互联网的发展,微信小程序已成为越来越多商家入驻的必选之一。但是对于零基础的开发者来说,怎么开发微信小程序却是一道难题。微信官方推出了一款专业的小程序开发工具——“微信开发者工具”,它可以帮助你创建、编辑、调试和预览
高清美女写真生成工具评测:用AI让你打造专属女神!
通过上述比较,可以看出搜狐简单AI在功能与易用性方面具有显著优势。如果你在寻找一个不需要专业知识,能够快速上手的工具,搜狐简单AI绝对值得你尝试!使用搜狐简单AI生成美女写真步骤 现在,我们开始进入具体的使用教程部分,让你在实际
谷歌最新量子芯片突破! 5分钟完成目前超算需要“10的25次方”年的运算
2019年,谷歌曾在《Nature》发布了一项量子计算突破,在世界第一超级计算机需要计算1万年的实验中,谷歌研究的量子计算机只用了短短3分20秒。当时,谷歌CEO桑达尔皮查伊(Sundar Pichai)将此次突破比作莱特兄弟的首飞。12月10日,谷歌在官
百度极速版与百度app的区别在哪里?核心差异就在这里
百度作为搜索引擎是知名度非常的高,而且是国内非常多人使用的搜索方式。市面上出现了两个版本,第1个就是百度极速版,第2个就是百度本身,所以百度极速版和百度有什么区别?大家有没有发现,自从其他APP出了极速版像爱奇艺、百度、抖音、
长合汽车金融全国24小时人工客服电话
长合汽车金融全国24小时人工客服电话00861-82913-38043二线00861-52030-84830长合汽车金融:推动汽车产业与金融服务的深度融合随着汽车产业的飞速发展,汽车金融作为连接汽车产业与金融服务的桥梁,正逐渐成为推动汽车市场繁荣的重要力量,
表白小作文写作生成器:让爱意表达不再难,轻松俘获TA的心
新用户专享:「香港/美国云服务器」新购6折 低至9元/月!点击查看活动介绍>>>不善言辞者往往难以直接流露心绪。写一封真挚的表白信能传达内心情感,但写作起来却颇为不易。如今,表白信写作生成器的问世,为那些有表白需求的人带来了极大的
轻松获取小红书海量数据:爬虫软件介绍
小红书作为国内最具人气的电商社交平台之一,其流量价值不言而喻。然而,由于平台对内容的高度审查以及个人账号的限制,想要在小红书上实现商业变现并不容易。而一款优秀的小红书爬虫采集软件,可以帮助你轻松获取平台上的海量数据,并提供
相关文章
推荐文章
发表评论
0评