推荐系统排序算法及架构说明-阿里云开发者社区

开发者社区> 阿里云机器学习> 正文

推荐系统排序算法及架构说明

简介: 阿里巴巴技术专家傲海为大家带来推荐系统排序算法及架构说明的介绍。内容包括排序模块在推荐系统中的位置,排序算法的介绍,离线排序模型的训练架构,以及在线排序模型的训练架构。

课程地址:https://developer.aliyun.com/course/2052

一、排序模块在推荐系统中的位置

在如何构建企业级推荐系统系列课程的第一课中,我们介绍了如何去设计整个企业级的推荐系统架构。在第二课中,我们介绍了怎么去理解召回算法以及召回算法的一些意义。在本节课中,我们分享一下推荐系统的排序算法,以及它的一些架构特点。首先,我们再回顾一下这张图,确定一下排序算法在推荐系统中的一个位置。一个用户进入到平台,会发现有很多商品,得把用户可能喜欢的商品先挑出来。我们通过召回模块,进行一个初筛,缩小排序模型的一个受众的范围。
召回模块从潜在的超大规模的item中筛选用户可能喜欢的较小比例的item。比如说平台上有10万个item,用户进来之后筛选出500个他可能会喜欢的。接下来通过排序模块根据他的喜好程度对item进行排序。从这500个item里怎么挑出用户最喜欢的东西,怎么挑出用户第二喜欢的东西,这时候需要一个排序的算法模型。它会针对这500个商品和用户的一些特点,即用户特征进行一个排序。
image.png

二、排序算法介绍

我们今天介绍一下排序算法究竟有哪些种类,排序的模型该怎么训练,它的系统架构是怎么样的。排序模型非常多,随着深度学习的发展,整个的排序算法已经从浅层的算法逐渐往深度学习迁移。目前比较经典的排序算法还是我列的这4种,如下图所示。首先,逻辑回归是应用非常广泛的一种算法。它是目前业内最经典的线性二分类算法,特点是容易上手,对于计算力要求低,模型可解释性好。第二,FM算法近一两年来,在很多客户的场景中都得到大规模的应用,效果也不错。它是通过内积的方式增强特征的表现力。第三,在LR基础上通过GBDT和特征编码增强数据特征的可解释性。第四,DeepFM算法也是现在被应用得非常多的一个深度学习的算法,它把深度学习和经典的机器学习算法做一个结合。如果大家刚开始尝试搭建一套推荐系统,建议先从简单的算法去尝试,后续再逐渐的往更复杂的模型迁移。当然,这些算法都已经内置到了PAI平台,已经可以插件化的应用。
image.png

三、离线排序模型训练架构

接下来讲一下排序模型该怎么训练产生,训练过程分为离线训练和在线训练,首先讲离线排序。
离线训练用的是T-1的数据,也就是说,今天业务上用的模型是通过今天以前的数据训练出来的。好处是可以把历史的大量数据几乎集合到一个数据仓库里,然后基于整体的全样本的特征和数据进行离线的训练,并且再做一个离线的验证。这样的话,生成的模型已经离线验证过了是没问题的。第二天直接把它推到线上去用,可以保证一定的安全性和效果。这是一个离线的训练模型的架构。目前几乎所有的客户都采用离线排序模型的训练方案。如果你想做实时化的训练,会有比较大的架构挑战。
image.png

四、在线排序模型训练架构

我们今天重点放在在线模型训练这块。相比于离线训练,在线训练提供什么好处。离线训练毕竟使用的是T-1或者T-2的数据去做的,没有对线上实时产生的行为数据进行利用,对于数据的时效性利用相对较差。比如说,有这样的一个场景,今天我的整个平台只对14岁以下的少女做某个运营活动,而平台上充斥了大量的年龄段的客户,整个平台的交互行为都变了,这个时候你的模型还是T-1去做的,将无法对线上业务做一个及时的感知。这个时候,通过在线训练就能比较好的解决这个问题。在线模型训练的流程如下图所示。在线模型训练意味着我可以用实时线上传输化的数据,然后用我们的实时机器学习模型训练框架去做训练。在线训练虽然数据是实时进来的,但你的模型并不是从0开始的。而是说我从离线先训练好这个模型,我站在离线模型的巨人的肩膀上,再往上去优化。这就是在线排序模型训练的一个框架。它有3个特点。第一,它是基于Flink框架实现的流式模型训练能力。第二,它是基于实时生成的模型去实时评估模型效果。第三,它具备线上模型回滚和版本管理的能力。你要达到这三个标准,才可以构建一个完整的在线模型训练的架构。
image.png

五、参考资料

最后,介绍一下我们给大家准备的一些资料。这第一个link它对应的是PAI团队结合自身过去几年在推荐领域的一些探索,总结了140页的推荐业务的动手实践文档。没有机器学习背景的人基于我们这些文档,也可以在一周之内搭建一套企业级的推荐系统,大家如果感兴趣可以去用一下。另外这一个是PAI的产品地址。
image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里云机器学习
使用钉钉扫一扫加入圈子
+ 订阅

官方博客
官网链接