入驻新浪看点号因为辅助材料是直接材料吗不能通过,在线跪求方法

尽管还没进入六月可各大电商嘚暑期大促早已如火如荼地开始了。优惠、满减、秒杀、返券……当然在你成功清空购物车后,还少不了人民群众们喜闻乐见的「猜你囍欢」环节经常使用就会发现,这类推荐内容通常都会很合你自己的口味电商到底是怎么做到的?这就涉及到「推荐系统」这个概念叻

商品推荐系统,到底是怎样的原理

推荐系统,是利用电子商务网站向客户提供商品信息和建议帮助用户决定应该购买什么产品,並模拟销售人员帮助客户完成购买过程个性化推荐则是根据用户兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品
最早的推薦算法通常是用关联规则建立的,如著名的啤酒尿不湿的故事就是利用关联规则推荐商品促进成交的经典案例。为之而生的算法如 算法就是亚马逊所发明的。

当我们在 Amazon 上购买图书时会经常看到下面两个提示:

  1. 这些书会被消费者一起购买,并且价格上有一定的折扣;
  2. 购買了这本书的人也会购买其他书。

Amazon 会对平台中海量用户记录进行挖掘发现这些规律,然后将这些规律应用于实际销售工作当中而结果也显示,使用这种算法优化对于当时亚马逊的业绩提升起到了很大作用。

今天随着电子商务规模的不断扩大,商品种类快速增长顧客需要花费大量的时间才能找到自己想买的商品。这种浏览大量无关信息和产品的过程无疑会使淹没在信息过载问题中的消费者不断流夨为解决这些问题,个性化推荐系统应运而生

个性化推荐系统是建立在海量数据挖掘基础上的一种高级商务智能平台,可帮助电子商務网站为其顾客购物提供完全个性化的决策支持和信息服务区别于传统的规则推荐,个性化推荐算法通常使用机器学习甚至深度学习算法对于用户信息与其行为信息充分挖掘,进而进行有效的推荐
常用的推荐算法有很多,其中最为经典的就是基于 Matrix Factorization(矩阵分解)的推荐矩阵分解的思想简单来说就是:每个用户和每个物品都会有自己的一些特性,用矩阵分解的方法可以从评分矩阵中分解出用户—特性矩陣以及特性—物品矩阵等,这样做的好处是得到了用户的偏好和每件物品的特性矩阵分解的思想也被扩展和泛化到深度学习及 Embedding 中,这樣构建模型能够增强模型的准确率及灵活易用性

下文介绍的方法将会用到 ,它可以帮助开发人员和数据科学家构建、训练并部署ML模型Amazon SageMaker 昰一项完全托管的服务,涵盖了ML的整个工作流可以标记和准备数据、选择算法、训练模型、调整和优化模型以便部署、预测和执行操作。

同时本方案基于 Gluon APIGluon 是微软联合亚马逊推出的一个开源深度学习库,这是一个清晰、简洁、简单但功能强大的深度学习API该规范可以提升開发人员学习深度学习的速度,而无需关心所选择的深度学习框架Gluon API提供了灵活的接口来简化深度学习原型设计、创建、训练以及部署,洏且不会牺牲数据训练的速度

首先一起看看如何在 Amazon SageMaker Notebook 上运行这个项目,在本地运行训练任务然后再进行部署,直接利用 Amazon SageMaker 的相关接口调用

本文使用了亚马逊官方开源数据集,其中包含2000位亚马逊电商用户对160k个视频的评论打分打分分数为1-5,您可以访问该查看完整的数据说明並下载由于本数据集很大,我们将使用临时目录进行存储


 
 
下载好数据后,可以通过Python的Pandas库进行数据的读取浏览和预处理。
首先运行洳下代码加载数据:
随后可以看到如下结果,因为列比较多这里截图显示的并不完整:

我们可以看到,该数据集包含了很多特征(列)其中每列具体的含义如下:
  • marketplace:两位数的国家编码,此处都是「US」
  • customer_id:一个代表发表评论用户的随机编码对于每个用户唯一
  • review_id:对于评论的唯一编码
  • product_id:亚马逊通用的产品编码
  • product_parent:母产品编码,很多产品有同属于一个母产品
  • verified_purchase:该评论是否来源于已购买该产品的客户
 
在这个例子中峩们只准备使用 custermor_id、product_id 和 star_rating 三列构建模型。这也是我们构建一个推荐系统所需要最少的三列数据其余特征列如果在构建模型时添加,可以有效提高模型的准确率但本文不会包括这部分内容。同时我们会保留 product_title 列用于结果验证
同时,因为大部分的视频对大部分人而言都没有看过所以我们的数据是很稀疏的。一般来说推荐系统的模型对于稀疏数据可以很好地处理,但这一般需要大规模的数据来训练模型为了實验示例运行更加顺畅,这里我们将把这种数据稀疏的场景进行验证并且进行清洗,并使用一个较为稠密的reduced_df进行模型的训练
随后可以通过如下代码进行稀疏(「长尾效应」)的验证
可以看到,只有5%的客户评论了5个及以上的视频同时只有25%的视频被超过10个用户评论。
接下來我们将把数据进行过滤去掉长尾用户和产品:
随后对用户与产品进行重新编码:
接下来,我们将准备好的数据集切割为训练集和验证集其中验证集将作为模型效果的验证使用,并不会在训练中使用:
 
首先通过自己定义一个简单的网络结构在本地进行训练这里我们会繼承 Gluon 接口构建 MFBlock 类,需要设置如下的主要网络结构更多关于如何使用 Gluon 构建自定义网络模型的信息,可以参考简单说明如下:
  • 将输入的稠密向量转换为固定长度。这里我们选取「64」可调节
  • 全链接层,使用 ReLU 激活函数
 
 
 
 
 
 
 
 
 
 
同时我们还需要构建一个评估函数用来评价模型这里将使鼡 MSE:
接下来定义训练的代码并且示例一下进行几个轮次的训练:
可以看到,打印出来的训练日志如下图所示显示训练成功进行,并且 Loss 随著迭代次数的增加在下降:
 
在上文范例中我们使用本地环境一步步训练了一个较小的模型,验证了我们的代码现在,我们需要把代码進行整理在 Amazon SageMaker 上进行可扩展至分布式的托管训练任务。
首先要将上文的代码整理至一个 Python 脚本然后使用 SageMaker 上预配置的 MXNet 容器,我们可以通过很哆灵活的使用方式来使用该容器详情可参考 mxnet-sagemaker-estimators。
接下来将执行如下几步操作:
  • 将所有数据预处理的工作封装至一个函数本文中为prepare_train_data
  • 将所有訓练相关的代码(函数或类)复制粘贴
  • 定义一个名为 Train 的函数,用于:
    ? 添加一段 Sagemaker 训练集群读取数据的代码
    ? 定义超参数为一个字典作为入參在之前的例子我们是全局定义的
    ? 创建网络并且执行训练
 
我们可以在下载的代码目录中看到 Recommender.py脚本,是编辑后的范例
现在,我们需要將数据从本地上传至 S3这样 Amazon SageMaker 后台运行时可以直接读取。这种方式通常对于大数据量的场景和生产环境的实践十分常见
  • 训练的实例类型和實例个数,SageMaker 提供的 MXNet 容器支持单机训练也支持多 GPU 训练只需要指定训练机型个数即可切换
  • 模型存储的 S3路径及其对应的权限设置
  • 模型对应的超參数,这里我们将 Embedding 的个数提升后面可以看到这个结果会优于之前的结果,这里的超参数配置可以进一步进行调优从而得到更为准确的模型
 
完成以上配置后,可以用.fit () 来开启训练任务这会创建一个 SageMaker 训练任务加载数据和程序,运行我们 Recommender.py 脚本中的 Train 函数将模型结果保存至传入嘚 S3路径。

训练启动后我们可以在 Amazon SageMaker 控制台看到这个训练任务,点进详情可以看到训练的日志输出以及监控机器的 GPU、CPU、内存等使用率等情況,以确认程序可以正常工作

6.托管部署及推理测试

在本地完成训练后,即可轻松地将上述模型部署成一个实时可在生产环境中调用的端ロ:


上述命令运行后我们会在控制面板中看到相应的终结点配置。当成功创建后可以测试一下,为此可以发出一个 HTTP Post 请求也可以简单哋调用 SDK 的.predict () 直接调用,随后会得到返回的预测结果:[5.393, 1.8467]

在此基础上我们还可以计算模型在测试集上的误差,结果为1.27这个结果优于我们之前夲地 Embedding 设置为64时的1.65,这也体现了通过调节网络结构我们可以不断优化模型。

本文介绍了如何利用Amazon SageMaker基于Gluon构建一个简单的推荐系统并且将它進行部署调用。这可以是大家入手推荐系统的很好的入门教程但值得注意的是:本文作为基础示例,并没有包含超参数调优网络结构嘚优化,多特征的引入等工作这都是后续提升准确率构建一个完备推荐系统所必需的工作。如果需要使用更复杂深入的推荐系统模型戓是基于 Gluon 构建其他应用,请关于我们后续发布地相关内容或参阅 Amazon SageMaker 官方文档。

尽管还没进入六月可各大电商的暑期大促早已如火如荼地開始了。优惠、满减、秒杀、返券……当然在你成功清空购物车后,还少不了人民群众们喜闻乐见的「猜你喜欢」环节经常使用就会發现,这类推荐内容通常都会很合你自己的口味电商到底是怎么做到的?这就涉及到...

新浪看点平台新浪旗下自媒体岼台,发布的内容将会在新浪新闻客户端、新浪微博、手机新浪网和新浪网等多个平台分发呈现重要的是新浪看点平台负责人在群内交鋶时表示,新浪看点目前正在筹备收益功能很快就会开通。

新浪看点平台注册申请攻略如下以个人号为例:

一,百度搜索“新浪看点岼台”进入其登录注册页面如图

也可以通过.cn,直接进入

二选择“登录”使用微博登录,没有微博账号的可以【注册】一个

三,登录の后选择注册申请类型为“个人”并“选择入驻”

四,接下来是入驻资料的填写这里需要能去验证码的手机号及准备手持身份证照片,身份证上的信息清晰可见身份证号码必须清晰可识别,大小不超过2M

注意:授权链接的链接的填写非常重要,关系到你的账号能不能通过审核此处应该认真填写。可以提供本人的微信公共账号(非昵称)或专栏,博客链接新浪看点会依此为参考依据,审核申请的賬号三项至少需要填写一项。

如有邀请码可以填写邀请码,将优先审核您的材料

五确认信息无误后提交,提交之后将进入审核期申请反馈会在3个工作日内反馈结果。

老宋谈谈微网创创始人,草根站长网络创业者,自媒体人

文章为作者原创文章,未经授权不嘚转载!

我要回帖

更多关于 辅助材料是直接材料吗 的文章

 

随机推荐