我们有很多用户的页面浏览数据,需要做一个推荐系统(猜你喜欢),但用户和页面浏览数据量特别大,一般用什么模型好?

2015-03-30 18:09:45 +08:00
 alexapollo

像小说和视频都是百万量级的,每天新增的url也不多
而我们这数据量特别大,有啥好方法吗?

5875 次点击
所在节点    程序员
36 条回复
kimmykuang
2015-03-31 11:00:30 +08:00
@alexapollo 没有做过推荐系统,不过当初在学数据挖掘时做过降噪和聚类,我还记得当时的样本数据是国外工资与性别、年龄、教育、地域等有关的一大堆带有较多噪音数据的记录,样本数据是10W条左右,比较小纯练手项目。
kimmykuang
2015-03-31 11:01:55 +08:00
@alexapollo 如果有实践的话可以反馈下效果~我觉得坛子里对于这方面感兴趣的人还是挺多的,比较大数据。
sleeperqp
2015-03-31 11:38:51 +08:00
@alexapollo 我的想法是把user过去的浏览记录提取成向量 比如说经常看体育 娱乐其他就基本不看 然后抽象成搜索向量(5,4,0,0,0...)这样
然后对url内容进行处理然后进行相似度计算这类的 推荐前K相关
当然这样就不是纯粹的CF了
其实说到底推荐系统也是一个求相似度的过程
alexapollo
2015-03-31 11:47:53 +08:00
@sleeperqp 嗯。。。。我也是这样想的,不过这样应该是content-based推荐吧,容易一直推用户以前喜欢看的
并且问个小白问题:用户有特征向量,而文章也有特征向量(很多tag),那么这个相似度要全部都算过去吗?用户*文章?
SmiteChow
2015-03-31 12:30:38 +08:00
协同过滤足够了,user-url
bluewinger
2015-03-31 12:56:31 +08:00
《推荐系统实践》
alexapollo
2015-03-31 16:58:45 +08:00
@bluewinger 看过了,不顶用,因为我们这个数据量比较大,它里面的手段没法直接用(可能做一些过滤、初始化也可以)
alexapollo
2015-03-31 16:59:29 +08:00
@SmiteChow 矩阵特别大= = 而且user-url的评分都是0/1啊
sleeperqp
2015-03-31 17:02:26 +08:00
@alexapollo 可以先过滤一些tag不足的 比如说用户喜欢体育 娱乐 你就可以把经济类的url去掉
就约等于 用户*过滤后的文章
至于推荐过去用户喜欢看的 你可以把url设置一个时效 过了一定时效就不再录入推荐
alexapollo
2015-03-31 20:39:23 +08:00
@sleeperqp 恩,现在就是做短期时间的,我指的是内容没法外延
过滤的想法就是用户先聚类了,比如先把体育用户拿出来,专门推体育,是可以比较好降维,或者更细粒度的聚类
有研究过这种聚类吗?
sleeperqp
2015-03-31 21:55:12 +08:00
@alexapollo 我想想了觉得用搜索引擎可能导致推荐的内容过于相似 这个还是有点问题
如果基于user的话 先根据用户(tag向量)聚类得到用户的类别 然后url根据访问的用户 对url进行评分 比如所有访问的用户tag向量求均值之类的得到url的tag向量 对其进行聚类
然后在给某个用户进行的推荐的时候用基于user的CF 得到的url 然后进行只推荐像与该用户类别类似的url进行过滤 推荐
laozhao0
2015-03-31 23:19:38 +08:00
dpi 数据?
staticor
2015-03-31 23:39:23 +08:00
只说说想法, 可能没什么帮助.

对内容(页面)作多级Tag, 比如 搞笑- [生活, 动物], 娱乐-[明星, ...]
根据现有数据量确定分类的层数(不应让最低级的叶子节点容量过小)



对用户关系是否建立social network, 如果有的话也可以推荐好友(亲密度最高的K个好友)正在喜欢的内容.
如果没有用户关系直接从内容出发.

所谓的打标签, 只是一种构造tags空间从而计算不同内容的相似度的方式, 就像两首歌怎么就相似, 也是从歌曲基本属性和歌曲演艺风格计算.

供参考
http://www.cnblogs.com/qwj-sysu/p/4368874.html

最近有空会在学习推荐的东西, 希望以后我再有时间更正粗浅的见解.
cfan8
2015-04-01 10:28:26 +08:00
做过推荐系统,过来给点建议

首先你要想好是做在线的算法还是离线的算法,是基于内容的推荐还是基于用户相似度的推荐。

在线算法要达到和离线算法一样的结果,要复杂很多。个人建议是,如果基于内容,在线可以做但是如果是基于用户的话,建议做离线算法。网易云音乐的推荐就是离线跑的。

第二,算法不要太复杂。算法复杂之后就得上hadoop,而且一般来说,简单的算法已经足够用了。通常情况R树+kNN已经能解决很多问题了。

第三,与其纠结如何把推荐准确度提升10%,不如考虑好如何在推荐的时候把用户体验给做好,比如过滤掉已经看过的东西,增加屏蔽系统等等。
padthai
2015-04-01 17:20:36 +08:00
外包无觅吧 还能拉些流量来
chevalier
2015-07-30 15:25:29 +08:00
@cfan8 你好,能不能推荐点入门资料和书籍?刚接触推荐系统,不知道怎么下手

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/180385

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX