Flink-Learning训练营:课时1:基于Swing算法的商品推荐
课程地址:https://developer.aliyun.com/trainingcamp/0bcc1ab57cf841a2af632d6252fecbab
基于Swing算法的商品推荐
内容简介
一、实验准备
二、实验内容
三、实验收获
一、实验准备
(1)领取flink和oss的免费试用资源
实验开始前,请先领取flink和oss的免费试用资源。这是领取资源的链接 https://free.aliyun.com/?searchKey=flink 。搜索oss或flink即可领取免费的资源。
(2)开通阿里云机器学习平台pad designer的工作空间
这是工作空间的链接 https://pai.console.aliyun.com 。请选择和Flink资源相同的一个区域,开通默认的工作空间。开通时可以忽略组合开通这里的提示。本实验的重点内容是介绍以PAI-designer机器学习平台为基础,以对象存储oss作为业务数据的存储路径,使用的sinner平台的索引算法组件,搭建一个推荐系统。
二、实验内容
(1)算法介绍
Flink ML算法库,是基于flink的流批一体的机器学习算法库。目前,flint ML支持了40余个算法,包括分类回归区类特征工程,评估等。这是FlinkML的项目链接[release]Update version to 2.4-SANOSHOT 。欢迎大家在get up上查看FlinkML材料项目。本次实验介绍的swing算法,其代码也在这里
SWING算法是一种召回算法,它考虑用户商品关系图中的用户商品,用户结构如下,图中的ijk是商品,uv是用户。对于点击过商品I和g的用户,如果用户共同点击的其他商品预约, i和g的相似度越高。基于这一思想商品的相似度计算公式如下,在上式中UI表示点击商品I的所有用户,iu表示用户u点击的所有商品,阿尔法一和贝塔是平滑参。
(2)如何上传数据到对象存储oss
下面我们介绍如何上传数据到对象存储oss。本实验使用的数据是89000条,亚马逊用户的杂志类商品购买记录数据的下载链接,提供在教程里,数据是csv格式,
其各列从左至右的含义依次是用户ID商品ID用户的打分和时间戳。下面介绍如何上传数据到oss。如果您没有使用过oss,请先创建一个和designer工作空间区域相同的bucket,
然后进入bucket。选择上传文件,扫描文件。
(3)在designer的平台搭建一个推荐系统
下面介绍如何在designer的平台搭建一个推荐系统。
我们进入工作空间,先绑定领取的免费资源,在工作空间详情页面计算资源,资源管理。选择flink全托管资源,我们这里已经关联了免费资源,并且将它选为了默认资源。然后进入designer开发界面。新建一个工作流,进入工作流。在工作流数据存储这里,我们选择一个oss路径,我是数据和模型的保存路径,在左侧的工具栏里,先拖拽一个读取csv文件的组件。文件来源选择oss选择我们的数据文件,输入文件的Schema,然后搜索swing训练组件。输入item的命名和user列名,这里的列名和这里的csv组件的sky MA名称应该保持一致。在参数设置这里,阿尔法参数用户阿尔法参数和用户贝塔参数分别对应这里
的阿尔法,阿尔法一和贝塔。可以使用默认参数。此问推荐组件的第一个端口,我们连接swing训练组件的输出,第二个端口,我们连接csv组件。这里的item列名依然和csv文件的item列名保持一致,然后为结果链输入一个合适的名称。然后点击一下页面的空白处,在默认执行资源类型里选择flink。然后点击运行。对于运行中的节点,我们可以右键查看日志,点击日志中的v VP job URL。来到flink实时计算的作业运维界面,可以查看当前作业的状态,这是私印算法的运行图
现在作业已经全部结束了,再次查看日志。找到输出文件的存储路径,这个路径名是由节点ID作业ID拼接而成的。复制这个路径
在oss的文件名前缀匹配里粘贴。因为文件格式不支持预览,所以我们需要将它下载到本地。这是下载后的文件,它是由逗号分割的cs cv文件,它的最后一列是推荐结果。推荐结果是一个jason格式的字符串。Item的内容是相似商品的编号score的内容是相似度得分。Score和item的内容是一一对应的。以上就是基于spring算法的商品推荐的全部内容。
三、实验收获
做完本实验后,你将能够了解swing算法,学会使用派第三的品牌搭建模型,并提交作业,使用flint实时计算平台,查看作业日志使用对象存储oss进行读写。