该文章有疏有深,不一而论。旨在为对个性化推荐感兴趣或想加入该领域的的小白用户提供一些助力。同时也是自我工作总结。
最早的推荐系统出于商业目的,Amazon在1998年推出推荐算法,使得推荐系统能够处理数百万商品并为数百万的顾客提供服务。2003年Amazon公开了该算法,并在网络上得到了广泛的使用,包括YouTube、Netflix等。协同过滤算法会根据用户的购买记录和在商店浏览过的商品,突出地显示推荐商品。搜索结果页面会推荐与用户的搜索相关的商品。购物车会推荐用户可能已经在考虑要补充到购物车里的商品。据了解,Amazon 35%的销售额都是与推荐系统相关的。
在互联网环境下,由于货架成本极端低廉,恰好符合长尾理论描述的场景,其中最有名的案例就是电子商务亚马逊公司的成功,那些需求和销量不高的冷门书产品所占据的共同市场份额,居然可以和热门书的市场份额相当,甚至更大。直接刺激了各大公司对长尾效应的深入挖掘。
信息化时代最核心的问题正是信息过载的问题,谁能更好的解决这个问题,谁就能在残酷的市场竞争中取得不败之地。无数的工程师提出了很多天才的解决方案,其中最具代表性的就是分类目录的雅虎和搜索引擎的谷歌,看似无所不有的雅虎最终败给了只有网页搜索一项核心业务的谷歌,这就是互联网用户对信息准确获取的欲望传递到企业竞争层面的结果。
个性化推荐系统三个核心要素
一、用户模型
个性化推荐系统中,用户模型用于描述、存储和管理用户的兴趣需求。由于个性化推荐是以计算机平台为依托的,因此用户模型不是对用户兴趣的一般性描述,而是一种面向算法的、具有特定数据结构的的描述。用户建模则是从有关用户兴趣和行为的信息中归纳出可计算的用户模型的过程。只有将用户兴趣信息从无结构的原始形式转化为计算机能够理解的结构化形式,才能对用户兴趣进行分析和处理。
二、内容模型
对商品或文章等内容数据进行建模归类,提取内容特征处理,便于推荐策略与用户特征相关联,内容模型的丰富是推荐精准的基石。
数据进入到建立模型基本要经过:重复识别、内容过滤、高低质、时效性识别、关键词提取、建立分类、主题计算
基于Tag的特征提取问题:在Tag系统中,一个资源可以同时标注多个Tag,Tag集合描述了资源的各个特征,一个用户可以拥有多个Tag,Tag集合描述了用户的兴趣偏好,Tag的使用次数反映了用户对某类资源的偏好程度。
基于基因的特征提取问题:一直以来,购书网站上的图书推荐引擎提供服务的方式不外乎『购买了某本书的人还购买了这些书』『这些书是编辑精选』『这些书正在热销』。然而,就算购买了同一本书,不同读者的阅读兴趣和阅读习惯仍然可能存在巨大差异。
基于『基因』的分析技术则另辟蹊径,不关注作者也不关注读者,仅根据书籍自身的『基因』来做出阅读推荐。具体来说是将一本书的『基因』总结为语言风格和故事情节两方面,其中语言风格DNA由语言密度、语言节奏、对话、描述组成;故事情节DNA则又关键主题词和写作手法组成。
相似度计算问题:文本相似度计算在信息检索、数据挖掘、机器翻译等领域有着广泛的应用。基于语义理解的相似度计算主要由:词语与词语、词语与句子、词语与段落、句子与句子、句子与段落和段落与段落等。各种相似度关系可以分别用于不同的业务场景,例如词语与词语可以用于机器翻译领域,词语与句子,词语与段落,句子与段落之间的相似度计算可以用于搜索引擎。段落与段落之间相似度计算可以用于复制检测或抄袭检测领域。
三、推荐系统
1.基于人口统计学推荐(Demographic-based Recommendation)
一种最易于实现的推荐方法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。
从图中可以很清楚的看到,首先,系统对每个用户都有一个用户 Profile 的建模,其中包括用户的基本信息,例如用户的年龄,性别等等;然后,系统会根据用户的 Profile 计算用户的相似度,可以看到用户 A 的 Profile 和用户 C 一样,那么系统会认为用户 A 和 C 是相似用户,在推荐引擎中,可以称他们是“邻居”;最后,基于“邻居”用户群的喜好推荐给当前用户一些物品,图中将用户 A 喜欢的物品 A 推荐给用户 C。
2.协同过滤(Collaborative filtering)
协同过滤的推荐机制的原理很简单,就是根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,然后再基于这些关联性进行推荐。基于协同过滤的推荐可以分为三个子类:基于用户的推荐,基于项目的推荐和基于模型的推荐。
2.1基于用户的协同过滤:基于用户的协同过滤推荐的基本原理是根据所有用户对物品或者信息的偏好,发现与当前用户口味和偏好相似的“邻居”用户群,在一般的应用中是采用计算“K- 邻居”的算法;然后基于这 K 个邻居的历史偏好信息,为当前用户进行推荐。
上图示意出基于用户的协同过滤推荐机制的基本原理,假设用户 A 喜欢物品 A,物品 C,用户 B 喜欢物品 B,用户 C 喜欢物品 A ,物品 C 和物品 D;从这些用户的历史喜好信息中,我们可以发现用户 A 和用户 C 的口味和偏好是比较类似的,同时用户 C 还喜欢物品 D,那么我们可以推断用户 A 可能也喜欢物品 D,因此可以将物品 D 推荐给用户 A。
2.2基于项目的协同过滤:它使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。
假设用户 A 喜欢物品 A 和物品 C,用户 B 喜欢物品 A,物品 B 和物品 C,用户 C 喜欢物品 A,从这些用户的历史喜好可以分析出物品 A 和物品 C 时比较类似的,喜欢物品 A 的人都喜欢物品 C,基于这个数据可以推断用户 C 很有可能也喜欢物品 C,所以系统会将物品 C 推荐给用户 C。
3.基于内容推荐(content based):
根据用户过去喜欢的产品,为用户推荐和他过去喜欢的产品相似的产品。CB推荐的本质就是为每个用户建立一个兴趣模型,并将符合兴趣模型的内容推荐给用户。例如通过用户过往的购买记录,推荐与已购买商品相似的周边产品。
图中给出了基于内容推荐的一个典型的例子,电影推荐系统,首先我们需要对电影的元数据有一个建模,这里只简单的描述了一下电影的类型;然后通过电影的元数据发现电影间的相似度,因为类型都是“爱情,浪漫”电影 A 和 C 被认为是相似的电影(当然,只根据类型是不够的,要得到更好的推荐,我们还可以考虑电影的导演,演员等等);最后实现推荐,对于用户 A,他喜欢看电影 A,那么系统就可以给他推荐类似的电影 C。
4.新热推荐
新热策略其实最简单的做法就是将内容分为新库和热库,并且有合理的规则能够让新库的内容流入热库。新内容的曝光需要得到一定量的比例,才能使新内容流转变热。
5.混合推荐(排序)
推荐往往都不是单纯只采用了某一种推荐的机制和策略,他们往往是将多个方法混合在一起,从而达到更好的推荐效果。