作者del680202 (HANA)
看板DataScience
标题[问题] 推荐系统除了预先准备结果有更好的方法吗
时间Sun Apr 1 19:49:17 2018
不确定这个版适不适合问这问题
想了下应该还算跟机器学习相关就决定PO这里了
最近在研究怎麽作个人化的推荐系统
目前看到的流程大致分成
蒐集user/item清单 -> 建模 -> 打分 -> 排序 -> 储存到某个DB给人呼叫
也就是预先作好推荐清单然後给人使用
之後就是一个建立一个batch定期更新这个清单
建模方法目前常看到的就相似度计算/MF/FM等等
当user/item清单非常庞大的时候这是一个很重的作业
产出的结果档案也很庞大
想问问推荐系统的结果交付除了像这样预先做出推荐清单之外
其他还有什麽好的交付方式吗
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.199.17.235
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1522583359.A.12B.html
1F:推 lucien0410: 这是机器学习的问题没错 04/02 01:30
2F:推 Wush978: 如果运用如Linear Regression的模型,可以考虑即时算 04/02 22:51
有想过使用可以即时运算的模型 还没试过不知道效果如何
之前有想过作成real time预测的形式,预想问题大概就是item很多
每次用SGD更新後都要重头打分在排序後输出可能效能不会很好
不过这也只是自己在猜测而已
3F:推 minikai: 利用分散式运算勒,这类协同过滤运算,很常被Spark这类 04/02 23:23
4F:→ minikai: 的分散式运算当成火力展示的范例。 04/02 23:23
嗯...治标不治本 我现在的环境就是spark
使用100个worker去跑MF 1000万使用者base,从建模到输出结果要几个小时
光是输出结果档这个动作都很花时间
5F:推 yogi: user/item set很大的时候, 可以用UV/SVD这些矩阵分解的方法 04/03 09:28
6F:→ yogi: 来做dim. reduction 04/03 09:28
7F:→ yogi: 特别是SVD 如果能够找到适当的singular values, 其对应的向 04/03 09:36
8F:→ yogi: 量通常能给交付的内容增添除了黑盒子般的模型以外的insight 04/03 09:37
後来跟一个朋友聊天他也是说用降维来辅助
另外准备一个real time更新用的矩阵
也就是把batch跑的矩阵跟real time的矩阵ensemble後作real time预测
这招还在研究中
麻烦的可能还是在於item多的时候,想到还要重新排序就感觉有盲点
※ 编辑: del680202 (61.199.17.235), 04/03/2018 20:06:36
9F:推 bruce3557: 有考虑用bandit来解一些的new item的方法吗 04/11 17:37
10F:推 chaselsu: 我的经验是通常都是多层filtering or ANN的方法噎 04/17 13:30
11F:→ chaselsu: 前面几层偏offline, 後面可以用复杂的模型 通常不会只用 04/17 13:31
12F:→ chaselsu: MF/FM/SLIM这种, 大多数都是多种模型blending 去避免推 04/17 13:32
13F:→ chaselsu: 荐系统常见的问题 04/17 13:32
14F:推 chaselsu: 觉得MF/FM这种可能是问题已经被定义好的最佳解 但实际上 04/17 13:35
15F:→ chaselsu: 问题是自己定义的 你可以拿更多不同面向资料的时候 MF这 04/17 13:36
16F:→ chaselsu: 种就不是最佳解 我印象最深的是我刚毕业的时候做FM 竟然 04/17 13:37
17F:→ chaselsu: 会推输以很简单的方式做的推荐 04/17 13:38
18F:→ chaselsu: 只因为简单的方式考虑了"category" 04/17 13:38