在设计实际的推荐系统时,我们不可能计算一个用户对所以电影的评分,然后排序,找出topK。在BellKor的论文中,他用TopK评测预测问题时,
是随机选出1000个电影,然后评分排序,得出TopK。
实际的系统中,我们需要用binary data首先找出一个候选集,这个过程其实是TopK的过程(这个过程其实不需要评分,只需要关系0-1矩
阵),然后我们计算用户对候选集中电影的评分,然后对候
选集用评分排序。所以说,topk和netflix其实不是一个问题,而是推荐系统中两个不同的问题,所以用不同的评测方法也是应该的。
在Netflix中,我不需要做TopK,因为候选集已经给定了,就是quiz。在实际系统中,我们需要先做TopK,然后用评分对TopK中的K个候
选物品评分排序。
不知道大家是否有同样的看法。
On Aug 3, 11:05 pm, gary <gary.wang1...@gmail.com> wrote:
> 我基本同意你的看法。
> 不过有一点不同意见:在实际问题中,Top-K的寻找过程也是一个进行分值Ranking的过程,尽管不需要Rating,但是我想这个候选集就已经是
> 排序好的了,如果需要打分,即约束到一个分值范围内,可以进行打分预测或者scale。所以不需要专门为了排序而进行评分。
对,我的意思就是,如果没有rating,我们已经可以做推荐了,有了rating可以更好的改善topk。其实,举个简单的例子。
topk是找到用户最可能看的电影,他的排名是根据用户看电影的可能性排名的,而rating是在用户可能看的电影中找出用户喜欢的电影,因为有的时候
用户也会对不喜欢的电影评分。
所以这两者结合的结果就是,找出用户最可能看,且看了之后会喜欢的电影。
> > > 不知道大家是否有同样的看法。- 隐藏被引用文字 -
>
> - 显示引用的文字 -
你可以用你做的那个东西试试 GitHub Contest,这个是 TopK 的推荐,呵呵。
On Aug 3, 11:19 pm, gary <gary.wang1...@gmail.com> wrote:
> 很有道理----binary数据如果看做是看/不看,评分数据作为喜欢程度。
纯粹从逻辑的角度讲,RMSE包含TopK,解决了RMSE就解决了TopK,解决了TopK未必能解决RMSE。即便是0-1数据也可以把RMSE作
为优化指标啊。实际系统中,预测评分也只是预测与用户相关的条目,并且,相关条目的选择和预测评分往往是同一个过程。
差异在于这两种方式的优化目标不同,RMSE可以认为是在优化一个连续函数,TopK的优化有些用 precision/recall作优化指标,有些
用逆序数作指标,还有其他各种各样的指标,这些指标往往不是连续变化的,因此各种优化技术可施展的空间也不大。
实际用起来也是各有利弊,TopK倾向于给出保险但是平庸的推荐,用RMSE作指标会比较灵活,因为我可以自己选候选集,但犯错(比如给用户推荐他不喜
欢的东西)的可能性也要大一些。
On 8月3日, 下午10时35分, xlvector <xlvec...@gmail.com> wrote:
我从模式识别的角度看,在rating data上,我们是有正样本和负样本的,>3的可以看作正样本,反之是负样本。所以他的学习是有监督学习。而所
有的missing value的值的期望应该是在3附近的
但在0-1问题上,我们只有正样本,给了1的表示用户会看,但给0的全部是missing value,因为给0不代表不看,而是代表不知道。所以
binary的问题上是没有负样本的,如果用SVD之类的学习,效果不会很好。
Ensemble的Aron在Github Contest上用KNN和SVD做了一个实验,他用SVD(1看作正样本,0看作副样本)结果小于
10%,但用KNN结果>20%。
所以我感觉,应该是先用0-1数据选出候选集,然后如果是有评分信息的,再用评分信息学习出的模型(SVD等)对候选集重新排序,这样可能比较靠谱。
BellKor的论文中也是这么做的,只不过他的候选集是随机选择的,不是用0-1数据上的KNN选择,所以他最终的效果也是比用了TopK选候选集要
差。
On 8月7日, 下午12时30分, Gary Wang <gary.wang1...@gmail.com> wrote:
> 我试过用0-1来选在候选集合,在netflix数据中,特别密集,所以候选集没有太大的实际意义。不过同意shoukun的意见,解决了RMSE就解决了To pK,解决了TopK未必能解决RMSE。TopK倾向于给出保险但是平庸的推荐,不过就是实际应用中的隐含交互数据的分值确定以及优化有可能会带来更大的成本 问题,包括时间成本和风险成本。
> 2009/8/7 xlvector <xlvec...@gmail.com>
LengedCode是个什么东西?有相关数据集吗?
> > > > > > 不知道大家是否有同样的看法。- Hide quoted text -
>
> - Show quoted text -
> > > - Show quoted text -- Hide quoted text -
> > - Show quoted text -- 隐藏被引用文字 -
>
> - 显示引用的文字 -
> > > - 显示引用的文字 -- 隐藏被引用文字 -
>
> - 显示引用的文字 -
另外,也许可以试试加入time factor的矩阵分解,看会不会有提高。
On Aug 7, 4:29 pm, raullew <raul...@hotmail.com> wrote:
On Aug 7, 6:06 pm, 张亮 <cddb.zh...@gmail.com> wrote:
> http://www.cadal.zju.edu.cn/plugins/legendcode.zip
>
> 不知道如何上传,就放这个链接吧。
>
> 2009/8/7 clickstone <wendell...@gmail.com>
实际系统最大的特点是面对的一个一个的用户,而不是优化指标。无论是RMSE还是topk,目前的优化指标有几个问题都需要小心面对:
1. 用户重要程度是不同的,一个持续访问的用户和来一次就走的用户所期望的到的服务是不一样的。
2. 推荐的重要程度也不同,一个惊喜的推荐可能会得到一个忠实用户,一个不靠谱的推荐可能会赶走一个用户
3. 推荐作为产品(而不是技术)的目标不应该是预测,而是发现
On 8月6日, 下午10时57分, xlvector <xlvec...@gmail.com> wrote:
但,这个也跟应用场景有很大关系,对item比较强调的场景(单品页面关联展示时),neighborhood的推荐可能没那么有效
> > > > 不知道大家是否有同样的看法。- 隐藏被引用文字 -
>
> - 显示引用的文字 -
On 8月7日, 下午1时23分, Gary Wang <gary.wang1...@gmail.com> wrote:
> 阿里可以搞一个netflix的比赛阿,他的数据更接近于实际。
> 2009/8/7 晨醒 <chenxing.y...@gmail.com>
On Aug 8, 10:47 pm, wanght <wangh...@gmail.com> wrote:
P.S. wanght在dangdang工作?
--
The best material model of a cat is another, or preferably the same, cat
在binary data上做Top K的recommendation,有没有相关比较好的paper?个人觉得TopK在工业界更实用些,我目前做的一个实验,在数据密度为6%%的数据集上,采用Item Based算法,Recall在3%左右,用的是归一化的余弦相似度~ :-)
在 2009年8月3日星期一UTC+8下午10时35分56秒,xlvector写道:
在binary data上做Top K的recommendation,有没有相关比较好的paper?个人觉得TopK在工业界更实用些,我目前做的一个实验,在数据密度为6%%的数据集上,采用Item Based算法,Recall在3%左右,用的是归一化的余弦相似度~ :-)
在 2009年8月3日星期一UTC+8下午10时35分56秒,xlvector写道:很多人都困惑与TopK和RMSE的评测的区别,我感觉其实这两种评测方法解决的是不同的两个问题。在设计实际的推荐系统时,我们不可能计算一个用户对所以电影的评分,然后排序,找出topK。在BellKor的论文中,他用TopK评测预测问题时,
是随机选出1000个电影,然后评分排序,得出TopK。实际的系统中,我们需要用binary data首先找出一个候选集,这个过程其实是TopK的过程(这个过程其实不需要评分,只需要关系0-1矩
阵),然后我们计算用户对候选集中电影的评分,然后对候
选集用评分排序。所以说,topk和netflix其实不是一个问题,而是推荐系统中两个不同的问题,所以用不同的评测方法也是应该的。在Netflix中,我不需要做TopK,因为候选集已经给定了,就是quiz。在实际系统中,我们需要先做TopK,然后用评分对TopK中的K个候
选物品评分排序。不知道大家是否有同样的看法。
--