推荐算法 编辑

推荐算法推荐算法

推荐算法是计算机专业中的一种算法,通过一些数学算法,推测出用户可能喜欢的东西,应用推荐算法比较好的地方主要是网络。所谓推荐算法就是利用用户的一些行为,通过一些数学算法,推测出用户可能喜欢的东西。

起源

编辑

图示图示

个性化推荐概念的首次出现是在1995年3月的美国人工智能协会上,由卡耐基梅隆大学的Robert Armstrong等提出了个性化导航系统Web Watcher。同时,斯坦福大学的Marko balabanovic等也推出了LIRA——一个个性化推荐系统。自此之后,个性化推荐的研究开始蓬勃发展。

推荐算法的研究起源于20世纪90年代,由美国明尼苏达大学GroupLens研究小组最先开始研究,他们想要制作一个名为Movielens的电影推荐系统,从而实现对用户进行电影的个性化推荐。首先研究小组让用户对自己看过的电影进行评分,然后小组对用户评价的结果进行分析,并预测出用户对并未看过的电影的兴趣度,从而向他们推荐从未看过并可能感兴趣的电影。此后,Amazon开始在网站上使用推荐系统,在实际中对用户的浏览购买行为进行分析,尝试对曾经浏览或购买商品的用户进行个性化推荐。根据 enture Beat的统计,这一举措将该网站的销售额提高了35%自此之后,个性化推荐的应用越来越广泛。

分类

编辑

基于内容

基于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上做出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料。

在基于内容的推荐系统中,项目或对象是通过相关特征的属性来定义的,系统基于用户评价对象的特征、学习用户的兴趣,考察用户资料与待预测项目的匹配程度。用户的资料模型取决于所用的学习方法,常用的有决策树、神经网络和基于向量的表示方法等。基于内容的用户资料需要有用户的历史数据,用户资料模型可能随着用户的偏好改变而发生变化。

基于内容的推荐与基于人口统计学的推荐有类似的地方,只不过系统评估的中心转到了物品本身,使用物品本身的相似度而不是用户的相似度来进行推荐。

基于内容的推荐算法的优势在于:对用户兴趣可以很好地建模,并通过对物品属性维度的增加,获得更好的推荐精度。而不足之处就在于:①物品的属性有限,很难有效得到更多数据;②物品相似度的衡量标准只考虑到了物品本身,有一定的片面性;③需要用户的物品的历史数据,有冷启动的问题。

基于协同

基于协同过滤的推荐算法(Collaborative Filtering Recommendation)技术是推荐系统中应用最早和最为成功的技术之一。它一般采用最近邻技术,利用用户的历史喜好信息计算用户之间的距离,然后利用目标用户的最近邻居用户对商品评价的加权评价值来预测目标用户对特定商品的喜好程度,从而根据这一喜好程度来对目标用户进行推荐。

基于协同过滤的推荐算法最大优点是对推荐对象没有特殊的要求,能处理非结构化的复杂对象,如音乐、电影。

基于协同过滤的推荐算法是基于这样的假设:为一用户找到他真正感兴趣的内容的好方法是首先找到与此用户有相似兴趣的其他用户,然后将他们感兴趣的内容推荐给此用户。其基本思想非常易于理解,在日常生活中,人们往往会利用好朋友的推荐来进行一些选择。基于协同过滤的推荐算法正是把这一思想运用到电子商务推荐系统中来,基于其他用户对某一内容的评价来向目标用户进行推荐。

基于协同过滤的推荐系统可以说是从用户的角度来进行相应推荐的,而且是自动的,即用户获得的推荐是系统从购买模式或浏览行为等隐式获得的,不需要用户努力地找到适合自己兴趣的推荐信息,如填写一些调查表格等。

基于协同过滤的推荐算法具有如下优点:

  • 能够过滤难以进行机器自动内容分析的信息,如艺术品、音乐等。

  • 共享其他人的经验,避免了内容分析的不完全和不精确,并且能够基于一些复杂的,难以表述的概念(如信息质量、个人品位)进行过滤。

  • 有推荐新信息的能力。可以发现内容上完全不相似的信息,用户对推荐信息的内容事先是预料不到的。这也是基于协同过滤的推荐算法和基于内容的推荐一个较大的差别,基于内容的推荐很多都是用户本来就熟悉的内容,而基于协同过滤的推荐可以发现用户潜在的但自己尚未发现的兴趣偏好。

  • 能够有效地使用其他相似用户的反馈信息,减少用户的反馈量,加快个性化学习的速度。

    基于关联规则

    基于关联规则的推荐(Association Rule-based Recommendation)是以关联规则为基础,把已购商品作为规则头,规则体为推荐对象。关联规则挖掘可以发现不同商品在销售过程中的相关性,在零售业中已经得到了成功的应用。

    关联规则就是在一个交易数据库中统计购买了商品集X的交易中有多大比例的交易同时购买了商品集y,其直观的意义就是用户在购买某些商品的时候有多大倾向去购买另外一些商品。比如购买牛奶的同时很多人会购买面包。

    算法的第一步关联规则的发现最为关键且最耗时,是算法的瓶颈,但可以离线进行。其次,商品名称的同义性问题也是关联规则的一个难点。

    基于效用

    基于效用的推荐(Utility-based Recommendation)是建立在对用户使用项目的效用情况上计算的,其核心问题是怎样为每一个用户去创建一个效用函数,因此,用户资料模型很大程度上是由系统所采用的效用函数决定的。

    基于效用推荐的好处是它能把非产品的属性,如提供商的可靠性(Vendor Reliability)和产品的可得性(Product Availability)等考虑到效用计算中。

    基于知识

    基于知识的推荐(Knowledge-based Recommendation)在某种程度是可以看成是一种推理(Inference)技术,它不是建立在用户需要和偏好基础上推荐的。

    基于知识的方法因它们所用的功能知识不同而有明显区别。效用知识(Functional Knowledge)是一种关于一个项目如何满足某一特定用户的知识,因此能解释需要和推荐的关系,所以用户资料可以是任何能支持推理的知识结构,它可以是用户已经规范化的查询,也可以是一个更详细的用户需要的表示。

    组合推荐

    由于各种推荐方法都有优缺点,所以在实际中,组合推荐(Hybrid Recommendation)经常被采用。研究和应用最多的是内容推荐和协同过滤推荐的组合。

    最简单的做法就是分别用基于内容的方法和协同过滤推荐方法去产生一个推荐预测结果,然后用某方法组合其结果。尽管从理论上有很多种推荐组合方法,但在某一具体问题中并不见得都有效,组合推荐的一个最重要原则就是通过组合来避免或弥补各自推荐技术的弱点。

    在组合方式上,有研究人员提出了七种组合思路。

  • 加权(Weight):加权多种推荐技术结果。

  • 变换(Switch):根据问题背景和实际情况或要求决定变换采用不同的推荐技术。

  • 混合(Mixed):同时采用多种推荐技术给出多种推荐结果,为用户提供参考。

  • 特征组合(Feature Combination):组合来自不同推荐数据源的特征被另一种推荐算法所采用。

  • 层叠(Cascade):先用一种推荐技术产生一种粗糙的推荐结果,第二种推荐技术在此推荐结果的基础上进一步做出更精确的推荐。

  • 特征扩充(Feature Augmentation):将一种技术产生附加的特征信息嵌入另一种推荐技术的特征输入中。

  • 元级别(Meta-Ievel):用一种推荐方法产生的模型作为另一种推荐方法的输入。

  • 推荐方法优缺

    编辑
    各种推荐方法都有其各自的优点和缺点,见表1。

    推荐方法

    优点

    缺点

    基于内容推荐

    推荐结果直观,容易解释;

    不需要领域知识

    新用户问题;

    复杂属性不好处理;

    要有足够数据构造分类器

    协同过滤推荐

    新异兴趣发现、不需要领域知识;

    随着时间推移性能提高;

    推荐个性化、自动化程度高;

    能处理复杂的非结构化对象

    稀疏问题;

    可扩展性问题;

    新用户问题;

    质量取决于历史数据集;

    系统开始时推荐质量差;

    基于规则推荐

    能发现新兴趣点;

    不要领域知识

    规则抽取难、耗时;

    产品名同义性问题;

    个性化程度低;

    基于效用推荐

    无冷开始和稀疏问题;

    对用户偏好变化敏感;

    能考虑非产品特性

    用户必须输入效用函数;

    推荐是静态的,灵活性差;

    属性重叠问题;

    基于知识推荐

    能把用户需求映射到产品上;

    能考虑非产品属性

    知识难获得;

    推荐是静态的

    应用

    编辑
    推荐算法已经应用到了各个领域的网站中,包括图书、音乐、视频、新闻、电影、地图等等。而电子商务的应用近年来逐渐普及,Amazon.com、ebay.com、Staples.com、当当网、豆瓣图书、淘宝网等都使用了电子商务推荐系统,推荐系统不止给这些互联网商家带来了巨大的附加利益,同时也提高了用户满意度,增加了用户黏性。

    观点

    编辑
    数据是基础,模型是蓝图,算法是大脑,算力是动力。未来算力与人力、物力、财力一样,将成为中国经济竞争力的主要指标。

    下一篇 数字签名算法

    上一篇 私钥