CWYAlpha

Just another WordPress.com site

Thought this was cool: 推荐系统的常见误区

leave a comment »


推荐系统现在在互联网领域是个非常热的词。推荐系统是个相对来说比较有技术门槛的活儿,很多人对推荐系统的认识有着一些误区。

本文总结一些常见的误区。

1、认为数据是绝对可靠的。

数据对于推荐系统来说,是一个最最重要的基础。因为如果光靠用户评分来做推荐的话,效果会非常差,因为用户的评分往往是非常少,造成得到的评分矩阵会非常的稀疏,不论算法有多么牛,RMSE有多么小。(这个指标只是学术界评价自己算法的一个指标,对于实际的系统来说并不能说明你推荐系统有多么的好。)那么大量的评分矩阵的值靠什么获得?

分析用户的行为,从用户的行为来获得用户对某个item的喜好程度。

那么将用户的行为转换为评分的时候数据将不是绝对可靠,一千个推荐系统有一千个转换的标准。只有不断地研究和分析用户的行为,才会不断地逼近用户的真实喜好。

2、觉得计算可以马上完成。

推荐系统往往需要作实时地推荐,反应的速度往往影响着经济的效益。但是推荐系统毕竟要处理大量的数据,尤其是离线计算的部分会花掉大量的时间,来计算用户的相似度,item的相似度,矩阵分解等等。

3、在设计系统和算法的时候不考虑数据的规模。

一般量级的数据,用任何低效的算法都可以很容易地解决;但是对于一个成熟的互联网应用,会产生海量的用户数据,算法是否高效,是否适合作海量数据的计算是个很重要的课题。

另一方面,海量的数据蕴藏着无数的信息,对于提升推荐系统的智能性非常重要,所以data mining,machine learning非常重要,通过海量的数据更加了解用户在想什么,想要什么。

4、在各种不同特点的系统中套用同样的算法。

不同方向的推荐系统适用不同的算法,即使同一方向的推荐系统因为产品不同,采用的算法调整的方向也不同。千万不能有以不变来应万变的想法,而应该具体问题具体分析才好。

比如,对于item明显远远多于user的情况,尤其是很多web应用的初期,用户量非常小的时候,应该采用item-based kNN的算法,当user增长到很大的量的时候,明显多于item的时候考虑换成user-based kNN的算法。

5、认为复杂的模型和算法一定比简单的好。

做一个实际推荐系统真正目的就是让它更快更准地给用户推荐他们喜欢的东西。复杂的算法可以在学术界写paper上用,因为复杂的算法可能会让RMSE降的很低,但复杂的算法对于一个实际的系统来说,往往会意味着大量计算时间的浪费,反而得不到好的效果。其实,选择算法还是要选择适合自己系统的算法,非常复杂非常炫的算法不一定能解决你的问题。

 

以上我是个人的一些看法,仅供参考,欢迎批评指正。

 

from 阿俊的博客: http://somemory.com/myblog/?post=26

Written by cwyalpha

五月 22, 2012 在 3:24 上午

发表在 Uncategorized

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: