推荐系统基本概念
在此介绍的推荐系统有
一、协同过滤推荐系统(Collaborative Filtering, CF)
基本思想:如果用户在过去有相同的偏好,那么他们在未来也有相同的偏好。
解释:
用户:不是指用户自己,而是多个用户
时间:基于用户过去的偏好,计算两个用户之间的偏好相似度,从而预测其未来的偏好相似度。
如果用户A 和用户B的购买经历非常重叠,那么其偏好相似度就非常高,这样就可以做出一个判断,当A购买一本书的时候,B用 户很大程度上也会购买这本书。于是当A最近购买了一本B的购物记录中还没有的书时,就可以向B推荐A购买的这本书,并且这本书确实与B的过去喜欢的书相似。
当选择可能感兴趣的书时,涉及到从大量集合中过滤出最有希望的书,而且用户A与用户B的互动是隐式的协作关系,是通过购书系统被动地建立起来的相互推荐关系。因此这种技术就是协同过滤。
常见问题如下:
如何发现与要推荐的用户有着相似的用户?
如何衡量相似度?
如何处理还没有购买经历的新用户?
如果只有很少的评分该怎么办?
除了利用相似的用户之外,还有哪些技术可以用来预测某个用户是否喜欢其物品?
协同过滤不需要获取与物品本身相关的知识。用书做例子,不需要书籍本身的作者,体裁或内容等知识。因此,协同推荐不需要获取并维护这些数据。
二、基于内容的推荐
推荐系统的使用范围:
1,激发用户去做某件事情,如买一本书或看一场电影;
2、可以被看做解决信息过载的工具,因为推荐系统的目标是从大集合里选择最感兴趣的物品。因此推荐系统研究也深深植根于信息检索和信息过滤领域。
这些领域这要强调的是区分相关和不相关的文档(相对于传统电子商务领域的书或数码相机等实物而言)。这些领域的许多技术利用了源于文档内容的信息进行排名。
关键:
1、得到关于物品的描述,即特征 (可以人工标注或自动抽取)
2、获取关于特征的记录
再考虑书店的例子,这些特征可能包括载体、主题或作者。与物品的描述类似,用户记录也需要自动抽取或“学习”,方法是分析用户的行为和反馈,或直接询问用户的兴趣和偏好。
基于内容的推荐中,必须回答以下问题:
协同过滤不涉及内容。基于内容的推荐有两大优点:系统如何自动获取并持续改进用户记录?
如何决定哪个物品匹配或者至少能接近、符合用?
什么技术能自动抽取或学习物品的描述,从而减少人工标注?
1、不需要大规模的用户就可以达到适度的推荐精准度。
2、一旦得到物品的属性就能立刻推荐新物品。
在某些领域,这样的物品描述能够自动抽取(如文本文档中抽取)或者直接读取物品的电子目录。 而在很多领域,更为主观的物品特征(比如“好用”或者“设计精妙”)可能对推荐过程更有用。这些特征通常很难自动获取,必须由人工输入这些信息,而这个过程不仅投入大而且容易出错。
三、基于知识的推荐
当涉及到单次购买时,则无法依赖购买记录。这是协同过滤和基于内容过滤方法的前提条件。即便如此,还是能够获取到更为精细和结构化的内容,包括专业性的优质特征。
例如,数码相机的推荐系统能够帮助最终用户找到一部符合其特殊要求的相机。一般用户每隔几年才会买一部新相机,所以推荐系统不可能构建用户记录或推荐他人喜欢的相机,这将导致只推荐畅销机型。
此时,系统需要利用额外的因果知识生成推荐。在这种基于知识的方法中,推荐系统通常会用到有关当前用户和有效物品的额外信息(这些信息一般都是人工提供的)。基于约束的推荐就是此类系统的一个例子,将在讨论基于知识的推荐中提到这点。
在数码相机领域,基于约束的系统会用到相机特征的详细知识,比如分辨率、重量或价格。此外,当某些 特征与用户相关时,还需要用明确的约束条件来描述情景,比如,如果用户喜欢冲洗大照片,那么高分辨率相机会更有优势。仅仅展现满足已知要求特征的物品是不够的,由于缺少个性化,每个用户(需求特征都是相同的)将会得到相同的推荐集合。
因此,基于约束的推荐同样需要维护用户记录。在数码相机方面,系统会询问用户有关特征的相对重要性,比如分辨率是否比重量更重要。
基于知识的推荐,还涵盖了“用户交互”的内容,这是由于在许多基于知识的推荐系统中,用户需求必须通过交互引导得出。在很多实际应用中,仅有的交互就是给推荐的物品评分,比如从5到1,或者给出“喜欢/不喜欢”的评价。以数码相机推荐系统为例,它也需要为首次购买的用户服务。在没有购买记录可以利用的情况下,需要更多复杂的交互方式才能确定用户的需求和偏好。一种简单的方法可能就是直接询问用户的要求,比如最高价、最低分辨率等。然而,这种方法需要对物品的特征有着深入的专业理解,而且在物品特征非常多的时候还会使人不知道如何选择。真正用心设计的交互方式应该像平常对话一样,在个性化的一问一答中,系统能够摸索出用户的真正喜好。
基于知识的推荐系统要解决的问题如下:
哪种领域知识能表示成知识库?
什么机制可根据用户的特点来选择和排名物品?
如何在没有购买记录的领域获取用户信息?如何处理用户直接给出的偏好信息?
哪种交互方式能够用于交互式推荐系统?
设计对话时,要考虑哪些个性化因素才能确保准确获得用户偏好信息?
四、混合推荐方法
当面对的问题背景不同时,所用方法的优缺点也各有不同。
一种显而易见的方法就是组合不同技术产生更好或更精确的推荐。
如果既有群体知识,有可以取得详尽的物品信息,那么把基于内容的技术与协同或社会化过滤技术相混合就能够增强推荐系统的效果。
这种设计尤其适用于克服纯粹协同方法的规模膨胀问题,并可依赖内容分析处理新物品或新用户。
但要回答以下问题:
哪种方法能被组合,特定的组合的前提是什么?
两个或多个推荐算法是应该顺序计算,还是采用其他混合方式?
不同方法的结果如何赋以权重,可以动态决定吗?