从零开始玩人工智能—推荐服务

有一个非常经典的段子,就是“啤酒和尿布”。故事是说,沃尔玛的一位门店经理发现,周末啤酒和尿布的销量会“落霞与孤鹜齐飞,秋水共长天一色”,一起上涨。经过分析,是因为奶爸们周末看球喝啤酒的同时要给娃带上尿布,然后就把这两样商品摆在一起促进销售云云。甚至专门用这个案例作为一本书的标题:

  

先且不论这个故事的真实性(知乎:数据挖掘中最经典的案例之一-啤酒与尿布是真实的案例吗?),可见人们对于数据挖掘分析并用以提升业务是很痴迷的。以前可能要雇一群人分析大量的数据给出可能的结果,而现在,AI可以帮你搞定这个事情。

     你甚至不用写一行代码。

Azure 里面的AI及认知服务家族正在不断扩展,在下面这个长长的人工智能API清单里,有很多已经广为人知的例如计算机视觉,语义分析,表情分析,智能搜索等等,而有一个新出的服务,叫做建议(Recommendations)。

建议这个东西,是所有人都需要的。不信你看看你手机:“晚上吃啥啊?”,“周末去哪啊?”。对于业务来说,通过数据挖掘为客户提供合适的建议,不仅仅是可能扩大销售,更厉害的是培养信任感,跨越销售防备的城墙。

所以,通过一些简单的数据,利用人工智能,进行分析,也就是“互联网+”时代的刚需了。在Azure里面,可以直接添加这个有趣的服务,进行一番有趣的探索。服务部署后,有个简单的后续步骤,最重要的第一步是生成服务对应的Key,不论是使用站点简单实现建议的人工智能,还是自行使用API开发更为复杂的BI实现,都离不开这个Key来使用Azure云平台的能力。

复制这个Key之后,我们就可以打开用于尝鲜的站点:https://recommendations-portal.azurewebsites.net 输入Key即可登录。

登录之后我们干啥呢?在创建一个新的Project之前,可以参考一下官方的文档:https://docs.microsoft.com/zh-cn/azure/cognitive-services/recommendations/cognitive-services-recommendations-quick-start

在创建Azure服务之后,就可以为建议服务准备数据了。数据分为两部分,一部分是品类(catalog),一部分是事物(usage)。品类数据可以包括<item ID>,<item name>,<product category>等,事物数据可以包括<User ID>,<Item ID>,<Time Stamp>,<Event>等。具体的字段定义和数据类型,可以点击以上的链接访问相关API参考。

一开始不了解这个服务使用的数据,可以使用微软准备好的样例数据。示例数据是一家书店的样例。品类数据是各种书,而事务数据非常简单,只有user、item两个字段,便于快速进行处理演示。

新建一个Project, 把这两个数据上传到建议服务项目中,设定诸如模型递归、模型维度、数据取舍等参数,就可以开始进行人工智能的自动分析了。

云服务平台会给Build分配ID并创建Job任务。数据简单而且数量不多,几分钟后就能获得结果。

结果会以Score分数集合的形式得到展现。如何体现为人比较易读的结果呢?

点击“Score”,就会展现一个简单的购买模拟界面。可以把显示出的书添加到中间的购物车,同时,根据之前其他一起购买的信息,进行AI分析之后,在下面给出建议的书。

细心的你肯定发现了,建议的书除了书名,还显示了一个分数,姑且我们称之为推荐度吧。随你添加到购物车里的书不同,推荐的各种书的建议分数(推荐度)也是不同的。例如我选了一本《自私的基因》,系统就根据之前的购买记录猜测我喜欢科幻类的、科学类的书,例如《沙丘》、《宇宙尽头的餐馆》等。

而随着我添加的书数量增加,系统匹配到书的推荐度也在增加。这是因为添加的书之间也有一些关联度,这些关联度增强了建议购买的书之间的关联度。因为选择了《冰与火之歌》和《美国众神》,侧重反乌托邦的《安德的游戏》和《1984》也进入了建议书目。

建议服务在分析过数据后,还会对分析做出小结。当然,要进行人工智能的分析,“喂”给云平台服务的数据有一定的要求。除了前面提到的数据格式类型的要求,还有一些数据量和数据大小的限制。例如事务数据量应该至少20倍于品类数据。每个项目每次上载的数据不可大于200MB,但可以上传多个文件,只要不大于2GB。如果数据太大,估计是要做模型调整或者ETL清洗一下?

而建议服务能够提供的学习(Build)类型目前有几种:Recommendations、Rank、FBT、SAR。(这里文档有点矛盾,前文说支持Ranking和FBT,然后后文又说支持Recommendation和FBT,然后服务站点下来可选4个……估计发展快没更新)。FBT是“经常一起购买(Frequently Bought Togather)”的缩写, 不同的类型的比较可以参考:https://docs.microsoft.com/zh-cn/azure/cognitive-services/recommendations/cognitive-services-recommendations-buildtypes 我对照了一下,确实返回的内容是不同的。

需要说明的是,在新建建议服务时,微软提示说提交的数据会被用于改进人工智能,因此正式使用的话,需要考虑数据脱敏的问题。

看,我们确实没有写一个字的代码,但是完成了分析数据实现“啤酒和尿布”这件事情。

原文地址:http://blog.51cto.com/haohu/2069852

时间: 2024-08-30 11:58:29

从零开始玩人工智能—推荐服务的相关文章

从零开始玩人工智能-机器人服务-04

前文书说到目前微软的Bot机器人分为五类,也从以前的Bot Framework迁往Azure的Bot Service.利用QnA Maker,我们已经快速的做了一个对话机器人.那么,怎么让这个对话机器人面向大众提供服务呢?目前的架构而言,自己开发代码连到QnA Maker机器人是一种做法,而使用Azure的Bot Service让机器人更加容易部署,更加聪明也是一种做法.接下来就会看看怎么在Azure里部署一个机器人.   在Azure的订阅里,从"AI+Cognitive Services&q

从零开始玩人工智能—机器视觉API—02

本期有福利哦!不要错过啦! 前文简单实现了认知服务对图片的检测识别.检测识别是其他机器视觉实现的基础,除了我们示例代码涉及的初步"看懂"图片,认知服务其实可以按照要求返回不同的信息,例如: Categories – categorizes image content according to a taxonomy defined in documentation. Tags – tags the image with a detailed list of words related t

从零开始玩人工智能-人脸 API-03

前文我们尝试写了一个完整的人脸验证过程,从创建一个组,一个人,到为人提供照片,并训练AI,直至最后提供一张照片让 AI 利用 Face API 判断是不是这个特定的人. 另一个经常会用到的人脸识别,是在一张照片中查找认识的人.Facebook什么的挺早就能够识别照片中的人并可以让你给他们打上标签.其实,利用Face API做类似的事情也一点不复杂.不信我们用代码来看看. 为了说明在一张合影中 AI 能够找到并识别特定人,我用了去年峰会中国MVP及MVP Lead梁迪和微软CEO萨蒂亚·纳德拉(S

[转]玩转Windows服务系列——命令行管理Windows服务

本文转自:http://www.cnblogs.com/hbccdf/p/managewindowsservicewithcmd.html 说到Windows服务的管理就不得不说通过命令行的方式管理Windows服务,因为无论是系统管理员,还是通过编程的方式调用cmd命令,命令行都是非常方便以及强大的工具. 接下来就看一下如何通过cmd命令管理Windows服务. 管理Windows服务的主要cmd命令 管理Windows服务的命令应该有很多,但是我所了解到的命令主要有两个:sc.net. 说是

玩转Windows服务系列&mdash;&mdash;给Windows服务添加COM接口

当我们运行一个Windows服务的时候,一般情况下,我们会选择以非窗口或者非控制台的方式运行,这样,它就只是一个后台程序,没有界面供我们进行交互. 那么当我们想与Windows服务进行实时交互的时候,我们应该怎么做呢? 快速给Windows服务添加实时交互功能的方案 Windows服务是一个进程,而我们用于交互的程序,又是另外一个进程.我们与Windows服务实时交互,其实就是一个进程间通信的问题.所有的进程间通信的方案基本上都适用于实时交互的方案,比如Socket.共享内存.管道.COM等.

玩转Windows服务系列汇总(9篇文章)

玩转Windows服务系列汇总 创建Windows服务Debug.Release版本的注册和卸载及其原理无COM接口Windows服务启动失败原因及解决方案服务运行.停止流程浅析Windows服务小技巧命令行管理Windows服务Windows服务启动超时时间使用Boost.Application快速构建Windows服务给Windows服务添加COM接口 http://www.cnblogs.com/hbccdf/p/summary_of_windows_service.html

基于AWS的电子商务网站架构——营销与推荐服务

用AWS可以建立一个营销与推荐服务,来管理有针对性的营销活动,并为正在浏览电子商务网站的客户提供个性化的产品推荐. 为了建立这样一个服务,你必须处理非常大量来自多个数据源的数据.由此产生的客户配置文件信息必须是可用的,以完成电子商务网站对客户实时产品. 获得有关客户的评论,也可以用于管理针对特定客户群的个性化营销活动.通过AWS提供的工具,可以通过不同的渠道构建高度可扩展的推荐服务,如动态产品推荐,或对客户有针对性的电子邮件营销. 1.  Amazon ElasticMapReduce (Ama

(四)跟我一起玩Linux网络服务:DHCP服务配置之中继代理

继第三部分的DHCP服务器的设置成功,我们来做一个中继代理服务器的配置吧. 我们的虚拟机结构如图: 具体参考: (一)跟我一起玩Linux网络服务:DNS服务——BIND(/etc/named.conf./var/named)设置实现和解释 根据第三部分,我们在vm1上面部署了DHCP服务器,我们就在vm2上面配置中继服务,具体内容如下: 1.先在vm1下面同样配置DHCP的文件上多配置一个subnet 1 ddns-update-style interim; 2 ignore client-u

从零开始玩转JMX(四)——Apache Commons Modeler &amp; Dynamic MBean

Apache Commons Modeler 前面的Model MBean的创建方式看上去特别复杂,一个简单功能的类ModelMBeanUtils 写了很多代码,那有木有简单点的方式呢,答案是肯定的,这里就引出了Apache Commons Modeler(使用这个需要在classpath中导入commons-modeler-2.0.1.jar以及modeler的依赖项目commons-logging-1.1.3.jar,下载地址:http://commons.apache.org/proper