像小说和视频都是百万量级的,每天新增的url也不多
而我们这数据量特别大,有啥好方法吗?
1
O14 2015-03-30 18:55:36 +08:00
给页面加tag,根据用户的页面浏览数据计算用户偏爱的tag, 推荐tag相似的页面.定时做这些统计,将计算出来的页面保存在表中
|
2
erse 2015-03-30 19:16:10 +08:00
关注这个问题
|
3
Tianpu 2015-03-30 20:38:51 +08:00 via iPhone
有来路吗?造关系链
有用户属性吗?区分不同用户 两个维度交叉下,大致够用了吧 |
4
babyname 2015-03-30 21:34:42 +08:00 via iPhone
mahout
|
5
qiayue 2015-03-30 22:10:08 +08:00
最简单的就是向喜欢 A 的人推荐其他也喜欢 A 的人喜欢的内容 B
|
6
sleeperqp 2015-03-30 22:22:54 +08:00
user多还是item多
页面浏览数据量更偏向计算权值吧 |
7
alexapollo OP @O14 tag系统已经做好了,基于tag推荐是不是等同基于内容推荐?但有个问题,假如用户1亿,url也是1亿,那么这个用户矩阵感觉很大?要算1亿*1亿的数据量?
还有,除了cosine,相似度算法你觉得应该用啥? |
8
alexapollo OP @Tianpu 关系链数据比较难搞,用户属性你指的是哪方面?
|
9
alexapollo OP @babyname 有关注,但还没有用上,有啥相似的case吗?
|
10
alexapollo OP @qiayue 基于user的CF?
|
11
alexapollo OP |
12
ligyxy 2015-03-30 22:58:47 +08:00
@alexapollo 确实是高维稀疏矩阵,肯定要降维
|
13
sleeperqp 2015-03-30 23:09:54 +08:00
|
14
alexapollo OP @ligyxy 有什么好的降维方法吗?我之前咨询过几个同学,有一些learning to rank的想法,不过我对这块也不大熟
|
15
alexapollo OP @sleeperqp 恩,我现在是根据PV来算的,每个PV都加对应tag的权重,item是url
|
16
sleeperqp 2015-03-31 08:45:59 +08:00
@alexapollo 如果item是url的话 我觉得你不要直接用推荐系统的常用算法 一定要用的话还是基于user比较好
我个人觉得倒是可以借用下信息检索的思想 从搜索引擎的角度来考虑这个问题 |
17
alexapollo OP @sleeperqp 我打算先去掉点击量小的url,或者一些其他方法filter掉数据来降维,或者从tag的角度出发
你是做搜索引擎相关吗?指点一下?我觉得这个想法挺靠谱的 |
18
liuhaotian 2015-03-31 10:23:53 +08:00 via iPhone
Followed.
|
19
kimmykuang 2015-03-31 10:26:20 +08:00 1
首先是不是先降噪,比如不小心点到“宝刀屠龙点击就送”这种item的可以干掉;其次可以尝试对url进行归类,其实归类的过程中就可以得到用户大致浏览过的类目,对于类目可以加tag,weight啊之类的;有了数据的清理之后,再用上相似算法,比如最简单的线性算法:A用户与B用户经常浏览的类目有70%相近,那么是不是可以给B用户推荐A用户喜欢的其余30%,基于这个算法还有很多变种,比如可以基于权重进行调整。
|
20
alexapollo OP @kimmykuang 嗯,想法就是数据清洗+聚类+usercf?
看起来靠谱。。。有实践过吗?不知道效果好不好? |
21
kimmykuang 2015-03-31 11:00:30 +08:00
@alexapollo 没有做过推荐系统,不过当初在学数据挖掘时做过降噪和聚类,我还记得当时的样本数据是国外工资与性别、年龄、教育、地域等有关的一大堆带有较多噪音数据的记录,样本数据是10W条左右,比较小纯练手项目。
|
22
kimmykuang 2015-03-31 11:01:55 +08:00
@alexapollo 如果有实践的话可以反馈下效果~我觉得坛子里对于这方面感兴趣的人还是挺多的,比较大数据。
|
23
sleeperqp 2015-03-31 11:38:51 +08:00
@alexapollo 我的想法是把user过去的浏览记录提取成向量 比如说经常看体育 娱乐其他就基本不看 然后抽象成搜索向量(5,4,0,0,0...)这样
然后对url内容进行处理然后进行相似度计算这类的 推荐前K相关 当然这样就不是纯粹的CF了 其实说到底推荐系统也是一个求相似度的过程 |
24
alexapollo OP @sleeperqp 嗯。。。。我也是这样想的,不过这样应该是content-based推荐吧,容易一直推用户以前喜欢看的
并且问个小白问题:用户有特征向量,而文章也有特征向量(很多tag),那么这个相似度要全部都算过去吗?用户*文章? |
25
SmiteChow 2015-03-31 12:30:38 +08:00
协同过滤足够了,user-url
|
26
bluewinger 2015-03-31 12:56:31 +08:00
《推荐系统实践》
|
27
alexapollo OP @bluewinger 看过了,不顶用,因为我们这个数据量比较大,它里面的手段没法直接用(可能做一些过滤、初始化也可以)
|
28
alexapollo OP @SmiteChow 矩阵特别大= = 而且user-url的评分都是0/1啊
|
29
sleeperqp 2015-03-31 17:02:26 +08:00
@alexapollo 可以先过滤一些tag不足的 比如说用户喜欢体育 娱乐 你就可以把经济类的url去掉
就约等于 用户*过滤后的文章 至于推荐过去用户喜欢看的 你可以把url设置一个时效 过了一定时效就不再录入推荐 |
30
alexapollo OP |
31
sleeperqp 2015-03-31 21:55:12 +08:00
@alexapollo 我想想了觉得用搜索引擎可能导致推荐的内容过于相似 这个还是有点问题
如果基于user的话 先根据用户(tag向量)聚类得到用户的类别 然后url根据访问的用户 对url进行评分 比如所有访问的用户tag向量求均值之类的得到url的tag向量 对其进行聚类 然后在给某个用户进行的推荐的时候用基于user的CF 得到的url 然后进行只推荐像与该用户类别类似的url进行过滤 推荐 |
32
laozhao0 2015-03-31 23:19:38 +08:00
dpi 数据?
|
33
staticor 2015-03-31 23:39:23 +08:00
只说说想法, 可能没什么帮助.
对内容(页面)作多级Tag, 比如 搞笑- [生活, 动物], 娱乐-[明星, ...] 根据现有数据量确定分类的层数(不应让最低级的叶子节点容量过小) 对用户关系是否建立social network, 如果有的话也可以推荐好友(亲密度最高的K个好友)正在喜欢的内容. 如果没有用户关系直接从内容出发. 所谓的打标签, 只是一种构造tags空间从而计算不同内容的相似度的方式, 就像两首歌怎么就相似, 也是从歌曲基本属性和歌曲演艺风格计算. 供参考 http://www.cnblogs.com/qwj-sysu/p/4368874.html 最近有空会在学习推荐的东西, 希望以后我再有时间更正粗浅的见解. |
34
cfan8 2015-04-01 10:28:26 +08:00 1
做过推荐系统,过来给点建议
首先你要想好是做在线的算法还是离线的算法,是基于内容的推荐还是基于用户相似度的推荐。 在线算法要达到和离线算法一样的结果,要复杂很多。个人建议是,如果基于内容,在线可以做但是如果是基于用户的话,建议做离线算法。网易云音乐的推荐就是离线跑的。 第二,算法不要太复杂。算法复杂之后就得上hadoop,而且一般来说,简单的算法已经足够用了。通常情况R树+kNN已经能解决很多问题了。 第三,与其纠结如何把推荐准确度提升10%,不如考虑好如何在推荐的时候把用户体验给做好,比如过滤掉已经看过的东西,增加屏蔽系统等等。 |
35
padthai 2015-04-01 17:20:36 +08:00
外包无觅吧 还能拉些流量来
|