Upload
jescie-solis
View
44
Download
1
Embed Size (px)
DESCRIPTION
百度电影系统推荐算法创新大赛. 钟文波 | [email protected] 2013-05-17, Friday. 2. 数据预处理分析. training_set 数据集: 训练集大小: 1262741 用户数: 9722 (平均每用户评分 130 部电影) 电影数: 7889 (平均每部电影被 160 用户评分) 全局评分平均数: 3.678 ( RMSE : 0.6900 ) 评分分布:. 2. 数据预处理分析. movie_tag 数据集: 标签数量范围:( 1~ 52 ). 2. 数据预处理分析. user_history 数据集: - PowerPoint PPT Presentation
Citation preview
2. 数据预处理分析
training_set 数据集: 训练集大小: 1262741 用户数: 9722 (平均每用户评分 130 部电影) 电影数: 7889 (平均每部电影被 160 用户评分) 全局评分平均数: 3.678 ( RMSE : 0.6900 ) 评分分布:
1 2 3 4 5
17139 64298 400006 608401 172897
1.36% 5.09% 31.68% 48.18% 13.69%
2. 数据预处理分析
movie_tag 数据集: 标签数量范围:( 1~ 52 )
2. 数据预处理分析
user_history 数据集: 历史记录数量: 987W 历史记录用户 ID 及电影 ID 在训练集中: 1577431
猜测用户观看历史数据中用户对于电影的评分: 如果用户 ID&& 电影 ID 在训练集中的平均评分大于全局
平均评分,则取对应的评分值为大于全局平均数的值。 如果用户 ID&& 电影 ID 在训练集中的平均评分小于全局
平均评分,则取对应的评分值为小于全局平均数的值。 其余取全局平均分或者介于以上两个评分的评分。
2. 数据预处理分析
user_social 数据集 单向关注的社交网路数据 ;类似于新浪微博,用户 A 可
以关注用户用户 B 而不需要得到用户 B 的允许,这种社交网络中的用户关系是单向的,可以用有向图表示。
3. 主要推荐算法模型 RMSE
全局评分值 0.72
以用户评分平均值作为预测评分 0.66
以电影评分平均值作为预测评分 0.66
基于用户的协同过滤 0.6421
基于物品的协同过滤 0.6120
slopeone 0.6489
LFM 0.6227
加入偏置 LFM 0.6172
考虑邻域影响的 LFM ( SVD++ ) 0.6231
以 Bias-SVD 为基准的 user-base 0.6142
以 Bias-SVD 为基准的 item-base 0.6049
线性拟合模型 0.6012
3. 主要推荐算法
基于物品的协同过滤推荐算法:( 1 )计算电影相似度,得到 K 个最近邻居( 2 )预测用户对于电影的打分
U jU i
U ji
rrrr
rrrrjisim
u uuu uu
u uuuu
2,
2,
,,
)()(
))((),(
改进的余弦计算公式:
U jU i
U ji
rrrr
rrrrjisim
u juu iu
u juiu
2,
2,
,,
)()(
))((),(
皮尔逊相似度计算公式:
3. 主要推荐算法
( 1 )基于物品的协同过滤相似度压缩: 例如计算 item1 , item2 之间的相似度,如果 A 表示
对 item1 评分过的用户集合, B 表示对 item2 评分过的用户集合,压缩系数公式表示如下:
U jU i
U ji
rrrr
rrrrSjisim
u juu iu
u juiu
2,
2,
,,
)()(
))((*),(
增加压缩系数后皮尔逊相似度计算公式:
BA
BA)2,1(S
itemitemorpunishFact
3. 主要推荐算法
(2) 利用电影标签信息改进相似度的计算:基于邻居的协同过滤推荐算法 (Item-Base) 当中,对于数据
集 movie_tag ,利用这个数据集来求两部 movie 之间的相似度。我们可以这么认为如果两部电影具有相同的标签,那么这两部电影之间是具有一定的相似度的,相同标签越多它们则具有更高的相似度。在标签系统中,两部电影之间的相似度用两部电影的共同标签数除以两部电影的总标签数成正比。
如果用 A 表示 movie1 的标签, B 表示 movie2 的标签,则在标签系统中两部电影的相似度可以表示为:
BA
BA)2,1(St
moviemovieagSimilarByT
3. 主要推荐算法
(3) 利用用户观看电影历史记录信息改进相似度的计算:基于邻居的协同过滤推荐算法 (Item-Base) 当中,对于数据
集 user_history 。我们可以这么认为如果两部电影具有相同的观看用户,那么这两部电影之间是具有一定的相似度的,相同观看用户越多它们则具有更高的相似度。
如果用 A 表示观看过 movie1 的用户, B 表示观看过movie2 的用户,则利用用户观看电影历史记录,两部电影的相似度可以表示为:
BA
BA)2,1(UserHisSh
moviemovieSimilarBy
3. 主要推荐算法
最终 item 相似度的计算公式:
)()( Sh*1*St*1*),(*),( bajiPearsonSjisim
)2,1(S itemitemorpunishFact
)2,1(St moviemovieagSimilarByT
)2,1(UserHisSh moviemovieSimilarBy
惩罚系数:
通过标签计算的相似度:
观看历史计算的相似度:
3. 主要推荐算法
预测评分阶段:( 1 )预测评分计算公式(以电影平均分作为基准评分):
J
j
sim
rrsimrip
j
j ju
i ji
jiu
),(
)(),(),( J ,
( 2 )最终预测评分计算公式(以 SVD 预测作为基准评分):
J
j
sim
brsimbip
j
j ju,u
iu, ji
jiu
),(
)(),(),( J ,
3. 主要推荐算法
加入偏置后的 LFM 计算公式:( 2 ) Netflix Prize——BiasSVD 实际情况下,一个评分系统有些固有属性和用户物品无
关,而用户也有些属性和物品无关,物品也有些属性和用户无关。
f
ifufiuui qpbbmeanr̂
mean 训练集中所有记录的评分的全局平均数。网站不同,网站的整体评分分布也会显示出一些差异。
bu 用户偏置项。这一项表示了用户的评分习惯中和物品没有关系的那种因素。
bi 物品偏置项。这一项表示了物品接受评分中和用户没有什么关系的因素。
3. 主要推荐算法
加入偏置后的 LFM 计算公式:( 2 ) Netflix Prize——BiasSVD 定义损失函数:
f
ifufiuui qpbbmeanr̂
)||||||(||ˆ),( 222
),(iu
Trainiuuiui qprrqpC
最小化上边的损失函数,根据随机梯度下降法,得到递推公式。
3. 主要推荐算法
加入偏置后的 LFM 计算公式:( 1 )梯度下降法(参数
Gamma1 , Lambda1 , Gamma2 , Lambda2 ),最小化损失函数,根据随机梯度下降法,得到如下递推公式:
uiuiui rre ˆ)*(* 11 uuiuu bebb )*(* 11 iuiii bebb
)**(* 22 ufifuiufuf pqepp
)**(* 22 ifufuiifif qpeqq γ 是学习速度,取值需要通过反复试验获取,每一次迭代对 γ 进行衰减( γ*=0.9 ),这是随机梯度下降算法要求的,目的是使算法尽快收敛。
3. 主要推荐算法
加入偏置后的 LFM 计算公式:( 1 )影响算法的主要因素:• 1 、 Dimension 数( factor 数)• 2 、 P 、 Q 矩阵的初始值(
nextFloat()/Math.sqrt(factor) )• 3 、学习速率与正则化系数
( Gamma1 , Lambda1 , Gamma2 , Lambda2 )• 4 、 bi[] 、 bu[] 初始化, bi[] 、 bu[] 一般初始化为 0
3. 主要推荐算法
模型拟合:( 1 )预测值线性拟合
K
k
kkrar
1
)(ˆˆ
method :假设我们有 K 个不同的预测器。
5. 主要参考文献
( 1 )《推荐系统实践》项亮( 2 )《 Netflix Prize 中的协同过滤算法》吴金龙( 3 ) Baidu URL : http://www.baidu.com( 4 )《 How we won the Netflix progress prize》 Yehuda Koren