查看原文
其他

大咖专栏 | 如何使用Apache Mahout在 Amazon Elastic MapReduce上构建推荐系统

2017-06-26 AWS云计算


大咖专栏

大咖专栏主要刊登AWS诸位大咖亲自撰写的Blog,内容涉猎广泛,话题讨论前沿,且与实战紧密相连。我们非常欢迎小伙伴们在评论区留言,与大咖互动交流!


今天为大家撰文的大咖,是我们的AWS中国专家服务团队大数据咨询顾问——刘磊老师。

刘磊

AWS中国专家服务团队大数据咨询顾问

曾供职于中国银联电子支付研究院,期间获得上海市科技进步一等奖,并申请7项国家发明专利。现任职于AWS中国专家服务团队,致力于为客户提供基于AWS服务的专业大数据解决方案、项目实施工作以及咨询服务。

本篇博文首先简单介绍了机器学习,并给出了Apache Mahout项目的背景情况以及推荐系统中需要注意的一些细节,然后我们会构建一个电影推荐系统并写一个简单的Web服务来提供给客户端查询结果。最后我们会列出学习和参与到Mahout社区中的一些方法。

机器学习

机器学习植根于人工智能,这意味着机器学习工具具有对数据问题的认知和自动决策能力,但是目前的机器学习算法并不包含真正意义上的计算思想。尽管如此,机器学习经常采用某种类型的自动化决策,并采用迭代的方式来最大化或最小化与模型性能相关的特征值。


机器学习领域包含许多主题和方法,通常有分类、聚类以及推荐等。


分类是基于其他已知(独立)变量的组合来预测未知(从属)变量的过程,例如预测银行的客户流失或某项音乐服务的订阅者数量。在这两种情况下,我们使用关于客户的已知变量来预测他们停止使用相关服务的趋势。 下表列出了几个可能的已知变量:

变量类型

例子

用户信息

城市、州、年龄、性别

行为方式

银行客户消费习惯、用户播放特定艺术家音乐的频率

环境因素

银行客户的费用评估、用户播放音乐时遭遇缓冲的频率

在进行分类工作时,我们通常针对包含从属变量真实取值的数据进行训练,然后通过比较留存测试数据的预测值和真实值的差距来评估模型的性能。


聚类是寻找事物集合和分组的过程。在几何学中,我们经常讨论N维空间中的聚类向量。举个例子,下面图中在二维空间中展示了四对由向量代表的人,每一个维度是一种支出类别,在本例中是娱乐支出和杂项支出。

左上角图中显示两人的支出数量是相近的,但是消费习惯则完全指向了不同的方向,所以这两人是不相似的。基于同样的原因,左下图中的两人就拥有相近的消费习惯。当然通常我们在分类时引入的维度是多于两个的,甚至是成千上万的维度,并且从数学上可以推广到任意有限的维度空间。


聚类的关键在于我们用来定义相似性的距离度量或者测量方法。一些常用的方法如欧几里德距离、余弦相似度(相似向量间的夹角的余弦值接近0,反之则接近1)以及Tanimoto系数(两个向量相同点占两个向量所有点的比例)。


推荐系统通常接收数据输入,通常是基于行为的数据,然后预测用户最终会倾向于哪个选项。过去十年推荐系统的流行很大程度上得益于Netflix Prize的推广,它在2006年到2009年间奖励给那些击败Netflix现有推荐系统的人。


推荐系统的性能以预测值和真实值之间的比较来得出,在生产系统中通常还结合A/B测试来进行优化。

Apache Mahout

大多数的Hadoop发行版本都包含了Apache Mahout,这其中就有Apache Bigtop和EMR。本质上Apache Mahout是一个机器学习的算法库,包含分类、聚类以及推荐等多种工具,可以被用于计算相似性和生成用户推荐等目的。Mahout使用Hadoop的MapReduce框架来执行具体的计算过程,现在也支持新的计算框架,比如UC Berkeley's AMPLab的Spark。


Mahout第一次bug修复发生在2008年1月,直到本篇博文写就之时,总共有1700个Jira tickets,其中54个依然是open状态。时至今日,社区中的贡献者和用户仍然在不停地针对代码和文档进行优化工作。

推荐系统

大多数人感觉到推荐系统的存在是从网页开始的,后台推荐系统会将结果显示在用户浏览网页的某一部分之上。这些包含推荐结果的网页帮助用户找到想买的商品、想听的音乐、想看的电影、想雇佣的人,甚至是约会的对象。


GroupLens研究团队于上个世纪90年代早期构建了USENET文章推荐系统,自此推荐系统技术开始了快速发展。随着时间的推移,推荐对象本身也发生了变化,除了新的文章,还有大量的在线行为值得分析,比如用户在网页上的点击链接行为;点赞和档案浏览;购物行为以及听音乐和看电影。


这些发展提供了基于用户行为进行推荐的可能性,能够帮助我们进一步改进推荐系统。 在USENET示例中,用户扫描作者和主题的文章列表,点击,阅读和关闭文章。 在线零售网站,购物者搜索产品,浏览产品页面,点击照片放大,阅读评论,并将产品添加到购物车。 在流媒体音乐网站上,音乐消费者搜索艺术家或专辑,播放曲目,通过曲目快速播放,并将艺术家添加到收藏夹,流媒体视频网站的工作方式类似。 在专业或个人联系的社交网站上,用户搜索并与其他人互动。 每个示例包括用户以某种方式与某些类型的项目进行交互的用户。

在接下来的内容里,我们会介绍:


如何构建推荐系统

如何构建推荐服务


请感兴趣的小伙伴点击“阅读原文

阅读完整版文章

AWS 技术峰会2017 北京

可能是这个夏天

最酷的技术峰会

   正在火热报名中!

在北京国家会议中心

Amazon.com CTO Werner Vogels博士

将与AWS全球副总裁、

大中华区执行董事容永康一起,

和你分享行业与 AWS 最新热点


数十位业界大咖齐聚

细数云计算的云卷云舒

九大技术分会场

话题丰富,覆盖你想了解的一切

马上扫描/长按识别上方二维码

免费报名参加峰会

和我们一起

  用云,执掌未来!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存