MOMOJI.故事接龙·让我们一起讲故事,做个有故事的人

hadoop streaming使用的关键是用stdio形式来处理数据,所以要以这种模式来设计算法;算法要做的是:定义好各个mr阶段的map和reduce的输入/输出的格式和处理过程;

item-based 相似度mapreduce计算步骤:

0.构造user,item.score矩阵;

1.规范化

将矩阵排列为i-u-s形式,按照每一列item,进行规范化(normalization),让每一个item对应的向量都成为单位向量(模为1);

处理成单位向量,之后只要计算两个item的点乘积即可;

2.item之间在每一个user下,得分的两两乘积

将上述结果排列为u-i-s形式,针对每个user,进行其对应的所有items之间两两的乘积运算,输出:item_a-item_b-score_a*score*b;

注意这里要计算出item_a-item_b-score_a*score_b 和 item_b-item_a-score_a*score_b;在后续第三步中,按照一个item_a_item_b排序分组,再组内将这些乘积相加,就算得item_a与item_b的点乘积;

3.计算item间两两点乘积

将上述结果按照item_a_item_b,score_a*score_b的形式排序分组处理,将分组内的所有数值相加,即得item_a和item_b的点乘积;

by 匿名 @ 2020-03-07 11:21:32
全文模式 复制地址