在积累了一定的主流大数据分析工具(Hadoop, Spark, Storm, HBase等)的基础知识后,加之以前学习和工作中积累的机器学习和分布式的相关经验,想着尝试一下自己对一个大数据案例完整的分析实践一遍。因此本文所述观点更多的是对自己这一个多月的大数据知识体系的学习的总结和实践,仅供参考。
个人在这一阶段主要考虑了以下几个方面:
综合以上因素,我选择了Amazon商品评分&评论这个案例,其实网上也没有关于这个案例的讨论,只是自己在网上找到了Amazon商品评论相关的开源数据和以此为基础的数据分析论文后,决定结合主流大数据分析工具做这么一个案例实践的。
这里提供两个开源数据索引,一个是自己使用的是Stanford公开的Amazon商品评论信息数据源,另一个是更加全面的整理的比较好的开源数据索引。有需要的同学可以自行下载需要的数据,构建自己想要的案例实践
由链接可知,Stanford已经对Amazon商品评论按照商品类型进行了分类。为了简化实践,本次只针对乐器类商品评论进行分析,主要参考的数据分析论文:
J. McAuleyHidden and J. Leskovec, Factors and Hidden Topics:Understanding Rating Dimensions with Review Text, ACM, 2013
这个案例想要的目标是希望通过用户评分和用户评论信息构建商品的主题模型以及用户感兴趣的主题模型,并以此来做一些推荐和预测的工作,个人想到的该案例可以实现的目标如下:
符号 | 含义 |
---|---|
ru,i | 实际的用户 u 对商品 i 的评分 |
rec(u,i) | 预测的用户 u 对商品 i 的评分 |
α | 全局因子 |
βu | 用户 u 的偏移参数 |
βi | 商品 i 的偏移参数 |
γu | 用户 u 对 K 维潜在主题的特征值序列 |
γi | 商品 i 对 K 维潜在主题的特征值序列 |
θi | 商品 i 的 K 维主题分布 |
ϕk | 主题 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 对 K 维潜在主题的特征值序列 γu ,显然较大特征值对应的主题就是用户感兴趣主题
5. 计算用户间潜在主题的特征值序列 γu 的余弦相似度即可作为用户相似度模型
6. 对有少量用户评论的新商品 v ,通过统计新商品的词频向量,计算其与每个主题单词序列 ϕk 的相似度,作为该新商品的 K 维潜在主题的特征值序列 γv 。带入预测函数中计算其 rec(u,v) 即为该用户对其评分的预测值
7. 对有少量用户评论的新商品 v ,根据5中找出的相似用户及该用户对新该新商品的预测评分,决定是否为相似用户推荐该新商品。
下一章将对该案例的实现进行详细分析。