分类: C/C++
2011-06-20 15:00:46
数据稀疏
协同过滤的精度主要取决于用户数据的多少。如果一个系统有很多用户的历史数据,他就能更好的对用户的喜欢做出预测。所以,目前推荐系统做的最好的都是那些有着很大量用户数据的公司,比如Google, Yahoo, Netflix, Amazon等等。但是,即使拥有很多数据,数据还是不够多,因为推荐系统的历史还不够长,还没有积累足够的数据。在目前处理稀疏数据的算法中,软性SVD是一种最好的方法。
新用户问题
这个问题和数据稀疏问题有一些相似性,他是指如何对新用户做出推荐。当一个新用户进入一个网络时,我们对他的兴趣爱好还一无所知,这时如何做出推荐是一个很重要的问题。一般在这个时候,我们只是向用户推荐那写普遍反映比较好的物品,也就是说,推荐完全是基于物品的。
新用户问题还有一个变种就是长尾(long tail)问题,在Amazon中,不是所有的用户都对很多书给出了评分,很多用户只给少数的书给出了评分,这些用户就处在一个长尾中,如何处理那些不太表露自己兴趣的用户,也是推荐系统的一个主要问题。
隐性喜好发现
在现在的推荐系统中,用户的喜欢是通过用户对某些物品进行评分获得的。这种获得用户兴趣的方法是一种很直接的方法。但在实际的互联网中,用户有很多隐性的方法表露他们的喜欢。比如用户的文字评论,我们可以通过自然语言处理从用户的评论中获得用户的兴趣;或者是用户的浏览行为,比如用户长时间的浏览一个物品,或者用户经常浏览一个物品,或者用户
购买了一个物品,这些行为都可以作为模式识别系统中的特征。
所以,发现用户的隐性喜好,相对于模式识别的特征提取,这方面的研究也很热门。
用户兴趣的变化
我们知道,用户的兴趣不是永远不变的,随着年龄和阅历的变化,用户的行为会发生变化。也就是说,协同过滤其实还应该加入一个时间因子。目前对于变化的用户兴趣的研究还处于起步阶段,主要是因为现有的系统历史都不是很久,大多数用户的兴趣还是比较稳定的,但是随着互联网的发展,用户兴趣的变化对推荐系统的影响将会越来越明显,所以这方面的研究也将越来越重要。
偏激的用户和全新的物品
我们知道,这个世界上有一些用户是很偏激的。他们和大多数人的观点是相反的。对于这种用户,现有的推荐系统做出的预测往往是很差的。如何处理偏激的用户,是推荐系统中的一个重要问题。
和偏激用户相对应的,是全新的物品。比如有一部新电影,他是颠覆性的,和以前的电影都不太相似。用户对于这个电影的爱好和用户以前的兴趣是没有太大关系的,因为用户从来没见过这种电影,这个问题也是导致现有的推荐系统精度不高的主要原因。
马太效应以及推荐系统对互联网的影响
我们知道,被推荐系统所推荐的物品将会越来越热门,这就导致了大量很好的物品可能会被推荐系统所淹没。在互联网中,物品实在是太多了,而推荐系统只能推荐有限的物品。解决这个问题的主要方法是增加推荐系统的多样性,比如一个推荐系统发现一个用户非常喜欢吃德芙巧克力,那么他给这个用户推荐10个产品,不需要都是德芙巧克力,也可以推荐别的一些巧克力,或者一些和巧克力相似的甜品。在推荐时,不仅要推荐用户喜欢的东西,而且要通过推荐让用户喜欢一些东西,有的时候,用户自己也不知道他喜欢什么,通过推荐系统,他可能会发现一些新东西他比较喜欢。
推荐系统中的作弊
只要涉及到经济利益,就有人作弊。搜索引擎作弊是一个被研究了很久的问题,因为在搜索引擎中,自己的网站排名越高,就能获得越多的经济利益。在推荐系统中也是如此,比如在淘宝中,如果一个卖家的物品经常被推荐,他就可能获得很多经济利益。这样,很多电子商务的推荐系统都遭受到了作弊的干扰,一些人通过一些技术手段,对自己卖的物品给出非常高的评分,这就是一种作弊行为。
推荐系统中的作弊在电子商务网站中越来越严重,特别是在美国这种互联网比较发达的国家,已经受到一些研究者的重视。作弊行为相当于人为的向系统中注入了噪声。目前解决作弊的算法主要是基于信任度和信用的。现在很多电子商务网站都引入了信用系统,比如淘宝等等。如何设计信用系统和推荐系统更好的融合,是一个重要的研究问题。
推荐系统:Amazon、Pandora 和 Del.icio.us
Written by on 2007-01-20 —
本文可以任意转载,转载时请务必以超链接形式标明文章 与 。
Alex Iskold 在 RWW 上发表了一篇文章,“”,这是一篇非常不错的关于“Recommender Systems”的文章,推荐大家一定阅读一下。由于Google,现在大家关注的热点是“Search”,但互联网不仅仅只是 Search,应该有更多,我们也需要更多。当我们知道自己要什么的时候,我们要做的是“Search”,比如我喜欢易中天的《品三国》,我可以 google 一下,看看它会给我些什么不一样的东西。这个时候,我的目的很明确,Search 围绕我的目的,可以作很多。但更多的时候,我其实并不是明确地知道自己想要什么,我只是无聊,我不知道应该 Search 什么,我就是想随便“翻翻”。这个“翻翻”就是 Alex 文章里面说到的 “Browse”。Alex 提到了很重要的一点,在 “Browse” 的状态下,用户“需要一些建议”(open to suggestions)。这正是需要 Recommender Systems 发挥作用的时候!
Alex 总结了 3 种推荐模式,它完全是从应用的角度划分的,但基本是可以和我之前提到的学术界的 3 种划分相对应的。
1 个人化推荐(personalized recommendation)—— 基于个人以前的行为模式进行推荐。
2 社会化推荐(social recommendation)—— 基于和你相似用户以前的行为模式进行推荐。
3 项推荐(item recommendation)—— 基于项本身进行推荐。
当然还有这 3 种混合模式的推荐。而且通常下,一个好的推荐系统,必然也是多种推荐方法相混合。觉得推荐模式的是数据!我们不讨论 Alex 的划分。他分析了 3 个非常成功的案例:Amazon、Pandora和 Del.icio.us。
Amazon 是当之无愧的“推荐之王(King of recommendation)”,无论是从推荐的实际效果还是从对推荐的重视程度上来看,都很难再找出一个能和 Amazon 比肩的应用。“据说(rumored)” Amazon 30% 的销售是依靠推荐带来的!Amazon 自然是根据需要选择了不同的推荐方法,Alex 的分析基本正确。
Pandora 为推荐系统打开了一个新思路,Alex 形象地称之为基于“基因”的推荐。据说,Pandora 大概花了四年的时间来准备它的音乐库,分析每一首歌曲的音乐特质,提取它的基因。冷开始问题,是所有推荐系统新上线时的最大问题,Pandora 通过耐心的积累和专业的工作,换来了上线后用户对其推荐准确性和低廉进入成本的如潮好评!“绑架?我们不专业啊!”,石头里这句经典的台词,其实在玩笑间说出了一个实实在在的道理——要成就一件事情,需要专业,包括态度的专业和技术的专业。但我个人认为,如果 Pandora 仅是停留在目前这种状况,还是无法建立不可逾越的壁垒的。它需要进一步在自己和用户之间建立一种有效的反馈回路,从而不断调整自己的推荐系统。Amazon 具备这种天然的反馈回路——它可以跟踪用户对推荐产品的实际购买情况。这完全不影响用户体验,在不知不觉间就可以完成。而 Pandora 不具备此天然回路,因为听音乐通常是一种背景活动,比如我,我会边写程序边听音乐,绝大部分它推荐给我的歌曲,我都会听,很少快进或者跳过,从而使 Pandora 丧失了获取反馈的机会。以 Pandora 现有的数据基础,如果可以很好的解决这个问题,那么 Pandora 之外的音乐推荐网站就都可以干别的去了。
有没有可能把 Pandora 这种基于“基因”的推荐方法拓展开来呢?Alex 说可以使用“tag”。但我个人持保留态度。Del.icio.us 是 tag 应用的开创者,它确实为我们管理和组织信息带来了一种新的行之有效的方法。但以此为基础进行推荐可行吗?应该慎重对待此问题。tag 的使用太过于随意,因人而异差别很大,基于这种随意打上的 tag 进行推荐,风险太大。推荐系统里有句名言,“不准确的推荐,还不如不推荐”!我曾经贴过一篇关于 tag 的文章,“”,也推荐大家看一看。总之,一套精心设计的、能够引导用户正确标注的 tag 系统,是围绕 tag 展开推荐的基础。
Greg 对 Alex 的文章进行了回应,“The value of recommendation engines”,同样值得一看。