实战推荐(开发维护电子商务网站的推荐系统)几个月之后,感觉到达一个瓶颈。
从实战角度来讲,对于一个中型的电子商务网站(比如千万PV),独立构建一个推荐系统,完成基础的推荐功能,比如:ViewView(看过还看过)、ViewWant(看过还加车)、WantWant(加车还加车)、CollectCollect(收藏还收藏)之类的基于协同过滤的推荐;Similar(猜您喜欢)之类的基于内容的推荐,从数据的收集、抽取、计算、分析,已经没有问题。
但是对推荐的理论性认识,推荐策略及其适用场景,推荐算法,推荐效果评估等的认识,有待进一步提高。
值此阶段,看一本书,一本推荐的入门书:《Recommender System An Introduction》,中文名就叫《推荐系统》,几个奥地利人写的,百度的蒋凡翻译的。
看这本书之际,把学习内容记录一下,也写一些心得,达到加深记忆和理解的目的。
引言
《推荐系统》这本书重点讨论的是个性化推荐。提供个性化推荐系统要求系统知道每个用户的信息。推荐系统必须开发并维护一个用户模型(user model)或用户记录(user profile)保存用户的偏好。
用户模型对每个推荐系统都很重要,如何获取并利用这个信息取决于特定的推荐技术 。用户的偏好可以通过监测用户行为隐式地获取,也可以通过询问访问者显示地获取。
生成个性化推荐列表时,该利用什么样额外的信息?最著名的方法就是考虑其他用户构成的大规模群体的行为、意见和爱好。系统经常称之为基于群体或协同的方法。
协同过滤推荐
这些系统的基本思想是,如果用户在过去有相同的偏好(比如浏览或买过相同的书),那么他们在未来也会有相似的偏好,比如:User1、User2相似,User1购买了Book1,User2还不知道Book1,则可以向User2推荐Book1。
由于选择可能感兴趣的书涉及从大量集合中过滤出最优希望的书,而且用户是在隐式地与其他人相互协作,因此这种技术也被称为协同过滤(CF,Collaborative Filtering)。
常见问题如下:
1)如何发现与我们要推荐的用户有着相似偏好的用户?
2)如何衡量相似度?
3)如何处理还没有购买经历的新用户?
4)如果只有很少的评分该怎么办?
5)除了利用相似的用户之外,还有哪些技术可以用来预测某个用户是否喜欢其物品?
纯粹的协同过滤方法不会利用或要求任何有关物品本身的知识,比如卖书系统的推荐,不需要知道书的体裁、内容或作者。这种策略显而易见的优势是系统不需要获取并维护这些数据。
基于内容的推荐
基于内容推荐的核心是能够得到物品的描述(不管是人工生成还是自动抽取的)和这些特征的重要目录。
与物品的描述类似,用户记录也需要自动抽取或“学习”,方法是分析用户的行为和反馈,或者直接询问用户的兴趣和偏好。
常见问题:
1)系统如何自动获取并持续改进用户记录?
2)如何决定哪个物品匹配或者至少能接近、符合用户的兴趣?
3)什么技术能自动抽取或学习物品的描述,从而减少人工标注?
基于内容的推荐有两大优点:
首先,不需要大规模用户就可以达到适度的推荐精准度;
其次,一旦得到物品的属性就能立刻推荐新物品。
基于知识的推荐
如果把注意力投向其他应用领域,比如消费类电子产品,就会涉及大量的单次购买者。这意味着我们可能无法依赖购买记录,而这可是协同过滤和基于内容过滤方法的前提条件。
即便如此,我们还是能够获取到更为精细和结构化的内容,包括专业性的优质特征。
比如对于购买数码相机,一般用户每隔几年才会买一部新相机,所以推荐系统不可能构建用户记录或推荐其他人喜欢的相机,这将导致只推荐畅销机型。
此时,系统需要利用额外的因果知识生成推荐。在这种基于知识的方法中,推荐系统通常会用到有关当前用户和有效物品的额外信息(这些信息一般都是人工提供的)。
在许多基于知识的推荐系统中,用户需求必须通过交互引导得出。真正用心设计的交互式方法应该像平常对话一样,在个性化的一问一答中,系统能够摸索出用户的真正喜好。
总体来说,基于知识的推荐系统要解决的问题如下:
1)哪种领域知识能表示成知识库?
2)什么机制可根据用户的特点来选择和排名物品?
3)如何在没有购买记录的领域获取用户信息?如何处理用户直接给出的偏好信息?
4)哪种交互方式能够用于交互式推荐系统?
5)设计对话时,要考虑哪些个性化因素才能确保准确获得用户偏好信息?
评估推荐系统
推荐系统领域研究的主要推动力是提高推荐质量。随之而来的问题就是,我们如何实际衡量推荐系统所给出建议的质量?我们应该选择哪些评估方法?
通过回答如下问题,可以得到解答:
1)哪些研究设计适用于评估推荐系统?
2)如何利用历史数据实验评估推荐系统?
3)什么衡量标准适合不同的评估目标?
4)现有评估技术的局限是什么?尤其是在推荐系统的会话性或商业价值方面。
小结
本章是推荐系统相关的的一些基本概念,在以后的章节中会逐渐深入学习每部分的内容。
关于推荐系统,要能回答以下问题:
1)推荐系统的商业价值是什么呢?
2)它能帮助提高销售额或将很多访问者转化为购买者吗?
3)不同推荐算法在效果上有差别吗?在哪种情况下应该使用哪种技术?