大数据处理实例——Amazon商品评分评论(一)
概述
在积累了一定的主流大数据分析工具(Hadoop, Spark, Storm, HBase等)的基础知识后,加之以前学习和工作中积累的机器学习和分布式的相关经验,想着尝试一下自己对一个大数据案例完整的分析实践一遍。因此本文所述观点更多的是对自己这一个多月的大数据知识体系的学习的总结和实践,仅供参考。
准备工作
一、 案例筛选
个人在这一阶段主要考虑了以下几个方面:
- 数据真实性:无论是自己采集真实数据还是使用开源的供分析数据,希望这是一次真正有意义的实践
- 覆盖知识点:希望是可以把之前学习的知识点基本都串联起来的一次完整实践
- 可实现性:就个人当前技能(前端知识空白)而言,是可以实现的
- 个人兴趣:希望可以借机温习下以前对机器学习算法和自然语言处理的理解
综合以上因素,我选择了Amazon商品评分&评论这个案例,其实网上也没有关于这个案例的讨论,只是自己在网上找到了Amazon商品评论相关的开源数据和以此为基础的数据分析论文后,决定结合主流大数据分析工具做这么一个案例实践的。
二、资料收集
这里提供两个开源数据索引,一个是自己使用的是Stanford公开的Amazon商品评论信息数据源,另一个是更加全面的整理的比较好的开源数据索引。有需要的同学可以自行下载需要的数据,构建自己想要的案例实践
- http://jmcauley.ucsd.edu/data/amazon/
- http://snap.stanford.edu/data/#amazon
- https://mran.revolutionanalytics.com/documents/data/#networks
由链接可知,Stanford已经对Amazon商品评论按照商品类型进行了分类。为了简化实践,本次只针对乐器类商品评论进行分析,主要参考的数据分析论文:
J. McAuleyHidden and J. Leskovec, Factors and Hidden Topics:Understanding Rating Dimensions with Review Text, ACM, 2013
案例分析
目标及使用场景:
这个案例想要的目标是希望通过用户评分和用户评论信息构建商品的主题模型以及用户感兴趣的主题模型,并以此来做一些推荐和预测的工作,个人想到的该案例可以实现的目标如下:
- 根据用户评论,学习出某一类商品评论的主题模型
- 根据用户评分和评论,学习出用户相似度模型
- 对有少量用户评论的新商品,根据主题和相似用户进行推荐
需求分解:
- 根据所有评论构建乐器类商品的主题模型(Top K的主题及其对应单词)
- 归纳用户的每一条评论文本到相应的主题
- 根据用户对商品的评分和评价主题,学习用户评分-主题模型
- 根据用户评分-主题模型,找出用户感兴趣主题
- 根据用户感兴趣主题,建立用户相似度模型
- 对有少量用户评论的新商品,归纳其所属主题,根据用户评分-主题模型,预测每个用户对其评分
- 对有少量用户评论的新商品,根据其评价用户及用户相似度模型,找出感兴趣的用户
- 综合6和7的分析结果,对特定用户推荐该商品
详细分析
- 商品的主题模型可以通过LDA模型学习出来,这里使用Spark MLlib中的LDA Module实现。使用该模型的前提是要构建出评论文本的词频向量,这就需要对评论文本进行分词,去停用词,词频统计等。本人考虑是使用Storm来对每一条评论文本做这些实时预处理工作,并将预处理结果存到HBase中。
- 在已知商品主题模型(主题–单词列表)及评论的词频向量后,可以很容易的通过TF-IDF余弦相似度将其归纳到与之有最高相似度的主题
- 参考论文中给出的HFT模型及主要参数含义如下:
| 符号 | 含义 |
|---|---|
| ru,i | 实际的用户 u 对商品 |
| rec(u,i) | 预测的用户 u 对商品 |
| α | 全局因子 |
| βu | 用户 u 的偏移参数 |
| 商品 i 的偏移参数 | |
| 用户 u 对 | |
| γi | 商品 i 对 |
| θi | 商品 i 的 |
| ϕk | 主题 k 的单词序列 |
| 主题或潜在特征的个数 |
预测函数: rec(u,i)=α+βu+βi+γu∗γi
误差函数: f(T|Θ,Φ,k,z)=∑ru,i∈T(rec(u,i)−ru,i)2−μl(T|θ,ϕ,z)
其中的 Θ={α,βu,βi,γu,γi} , Φ={θ,ϕ} 都是待学习的参数。
使用最小化误差 argminΘ,Φ,k,zf(T|Θ,Φ,k,z) 来使得算法收敛,同时学习到以上待学习参数
4. 在3中已经学习到用户 u 对
5. 计算用户间潜在主题的特征值序列 γu 的余弦相似度即可作为用户相似度模型
6. 对有少量用户评论的新商品 v ,通过统计新商品的词频向量,计算其与每个主题单词序列
7. 对有少量用户评论的新商品 v ,根据5中找出的相似用户及该用户对新该新商品的预测评分,决定是否为相似用户推荐该新商品。
下一章将对该案例的实现进行详细分析。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
