基于PAI 10分钟搭建一个简单推荐系统

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

一、个性化推荐业务流程

今天会为大家介绍一下如何基于PAI去搭建一套非常简单的推荐系统。这套推荐系统有两个特点。第一是搭建非常方便,因为我们做了很多工具。第二,这套系统是可扩展的。大家知道现在的APP都有很多feed流推荐,包括一些广告推荐、内容推荐,本质上就是一个推荐系统。推荐系统可以分为两个主要的模块。第一个是召回模块,它做的事情就是初筛。比如说,把10万个候选新闻缩小范围到只剩500个。第二个是排序模块,按用户的偏好程度对500个新闻排序,就可以生成最终的推荐顺序。在一个非常简单的推荐系统中,只有召回模块也是可以做推荐的。假设我把这个范围缩到足够小,比如说10个新闻,不需要排序,直接把这10个都推给用户就好。所以今天我们这个视频的内容就是教大家搭建一个只有召回模块的简单推荐系统。
基于PAI 10分钟搭建一个简单推荐系统

二、协同过滤

召回和排序都有很多算法。比如说召回领域有很多矩阵分解算法、协同过滤算法等等。最经典的一个就是我们这里展示的collaborative filtering,即协同过滤算法。它可能是比较好理解的一个算法,我这里会用一个篇幅给大家介绍一下。比如说我们有用户A、B、C,他们的偏好如下图所示。你会发现A和C有一些相似的口味。A和C都喜欢Rice、Milk。除此之外,A还喜欢Lamb。就是说A和C有相似的口味,并且A还喜欢某个C没有尝试过的东西。我们就假设C也喜欢它,可以把它作为C的一个召回结果。这就是一个基于数据统计的标准的协同过滤的方式。这张图可以帮大家很好地去理解协同过滤算法的原理。就是说,先发现相似的物品或者相似的人,然后根据相似的人和相似的物品之间的关联性去找出它的一个推荐逻辑。我们今天的这一套推荐系统就是以协同过滤算法为基础去做。
基于PAI 10分钟搭建一个简单推荐系统

三、推荐方案架构

完整的推荐架构如下图所示,包含如下部分:Dataworks,PAI-Studio,TableStore,PAI-AutoLearning,PAI-EAS。
基于PAI 10分钟搭建一个简单推荐系统

四、实际操作

首先我们在PAI-Studio里基于你的原始数据生成你的协同过滤后的结果数据,这是两张表。
基于PAI 10分钟搭建一个简单推荐系统
接着我们在TableStore,即表格存储里去把这两张表按照要求的格式建立出来。
基于PAI 10分钟搭建一个简单推荐系统
然后利用Dataworks去把这个数据从PAI-Studio里灌到表格存储里。
基于PAI 10分钟搭建一个简单推荐系统
接着在AutoLearning里去把TableStore的两个数据配置出来,配出来呈一个策略。
基于PAI 10分钟搭建一个简单推荐系统
然后最后把这个策略变成一个PAI-EAS的服务,你可以在这看一个调用方式。最终用户拿到的结果就是这条服务。
基于PAI 10分钟搭建一个简单推荐系统
如果想更新迭代里面的整个的数据,你就可以去改最原始的这张表。因为整套服务都可以做成一个自动化的流程,都可以利用Dataworks的数据调度系统去做成一个自动化的系统。所以你只要每天去更新这里的原始的数据就可以了,剩下来的业务都可以自动化。
基于PAI 10分钟搭建一个简单推荐系统

上一篇:算法笔记--八个常见排序算法总结


下一篇:KMP算法的JavaScript实现