- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于lfm混合推荐算法
作者: 庄程旭
清华大学电子工程系
基于邻域,LDA和FM的
混合推荐系统设计
百度电影推荐
问题描述
评分
标签
关注
魔幻片
外语片
?
训练数据:1,262,741
测试数据: 314,679
电影总数: 8,369
用户总数: 143,670
标签总数: 1,129
平均关注数: 6.91
用户观看电影记录:
9,871,737
基础模型
模型建立
实证研究
比赛之后
文献综述
LibFM
2. SVD++
Basic Features
模型建立
实证研究
比赛之后
文献综述
模型建立
实证研究
比赛之后
文献综述
Basic Features
实证研究
比赛之后
文献综述
模型建立
Advanced Features
基本思路:参考kNN的思想,参考相邻的人的打分来得出最后的打分
模型建立
实证研究
比赛之后
文献综述
初步实验
每一套模型均采用以下4种参数和程序运行方式:
LibFM:采用MCMC学习,初始值选取参数0.1,特征维数20维,迭代100轮
SVD++_2:采用SGD学习,迭代200轮,特征维数50维,前100轮步长0.01,后100轮步长0.001,参数惩罚0.0001,用sigmoid化。
SVD++_1:采用SGD学习,迭代200轮,特征维数50维,前100轮步长0.01,后100轮步长0.001,参数惩罚0.1。
SVD++_3:采用SGD学习,迭代400轮,特征维数50维,前200轮步长0.01,后200轮步长0.001,参数惩罚0.0001,用sigmoid化。
模型建立
实证研究
比赛之后
文献综述
初步实验
模型
LibFM
SVD++_1
SVD++_2
SVD++_3
Tag
0.6198
0.6382
0.6242
0.6435
GoodTag
0.6186
0.6390
0.6262
0.6451
Tag+diff
0.6200
0.6348
0.6283
0.6592
Sns
0.6207
0.6388
0.6297
0.6426
Sns+thread
0.6208
0.6389
0.6325
0.6527
Sns50
0.6227
0.6375
0.6243
0.6510
Snsall
0.6234
0.6375
0.6259
0.6440
Movieall
0.6148
0.6304
0.6168
0.6365
模型建立
实证研究
比赛之后
文献综述
初步分析
Tag和sns之间的对比
Tag比起sns来说更加密集
这是个很不成熟的Sns系统:
3. 一部电影至少1个tag,大部分电影有10个tag
一部电影平均有12.93个tag
一个人平均只有6.91个关注(并且大部分人关注一个从未有打分记录的官方账号)
总共143,670个人,有98733个人只有3个或者以下被关注数目,有40715个人根本没有人关注
1. user数据的分散性
模型建立
实证研究
比赛之后
文献综述
根据数据分析
2. movie数据的集中性
含义:
相似的人太相似;
user的相似对里有54.2%的相似度超过0.5,甚至有30.1%的相似度超过0.7。
而movie的相似对里面只有9.1%的相似度超过了0.5。
而相似的电影能够很好的扩大数据量
通过相似的电影,能够看到更多的潜在的打分用户
本质考虑:
在人和电影的二分图之间引入隐层来增强两两之间的联系,从而相当于扩大了训练数据量
模型建立
实证研究
比赛之后
文献综述
深入分析
现象:
人的打分记录的分散。
电影打分记录的集中。
“对称性破缺”
启发:
movie的feature效果更好。
因为movie需要更多的自由度!来应对更多的user。
模型建立
实证研究
比赛之后
文献综述
深入分析
深入思考:
对于不同数据量的电影,给予不同的重视,用较多的feature的数量来满足其适应data的需求。对于较少的数据量的电影,用较少的feature来防止过拟合。
模型建立
实证研究
比赛之后
文献综述
修改之前的模型
用聚类来使user更集中:
用LDA的方法来做user的聚类,之后添加最相似的30个类作为user feature。
直接选取观看电影数超过100的人作为相似分析的全集。
只选取打过分的人作为相似分析的全集(只有9873个人打过分)
2. 将相似电影和其他feature混合:
movie + tag
movie + snsall
movie50
模型建立
实证研究
比赛之后
文献综述
新模型测试
模型
LibFM
SVD++_1
SVD++_2
SVD++_3
Movie+tag
0.6138
0.6309
0.6159
0.6390
Movie50
0.6148
0
文档评论(0)