推荐算法介绍目录二、为什么需要推荐算法-Why三、推荐算法的常用领域-Where四、写在推荐之前-冷启动问题五、推荐引擎分类一、什么是推荐算法-What六、常用推荐算法介绍一、什么是推荐算法-What所谓推荐算法就是利用用户的一些行为,通过一些数学算法,推测出用户可能喜欢的东西。最早的推荐系统出现在1992年,是一种基于协同过滤算法的邮件过滤系统。近些年由于互联网的爆发,推荐算法变得比较火热。•数据抽取数据仓库数据建模前端展现二、为什么需要推荐算法-Why•信息超载•用户无明确需求•数据抽取数据仓库数据建模前端展现二、为什么需要推荐算法-Why随着互联网技术和社会化网络的发展,每天大量的信息被发布到网上,使得信息资源呈几何级速度增长。在这样的情形下,搜索引擎(Google、百度、Bing等等)成为大家快速找到目标信息的最好途径。在用户对自己需求相对明确的时候,用搜索引擎通过关键字搜索能很快的找到自己需要的信息。但搜索引擎并不能完全满足用户对信息发现的需求,因为在很多情况下,用户并不明确自己的需要,或者他们的需求很难用简单的关键字来表述,又或者他们需要更加符合他们个人口味和喜好的结果。正是由于这种信息的爆炸式增长,以及对信息获取的有效性、有针对性的需求使得推荐系统应运而生。与搜索引擎相对应,大家习惯称之为推荐引擎。•数据抽取数据仓库数据建模前端展现二、为什么需要推荐算法-Why推荐系统的主要任务就是联系用户和信息。对用户而言,推荐系统能帮助用户找到喜欢的物品/服务,帮忙进行决策,发现用户可能喜欢的新事物;对商家而言,推荐系统可以给用户提供个性化的服务,提高用户信任度和粘性,增加营收。我们可以通过一组数据了解推荐系统的价值:Netflix:2/3被观看的电影来自推荐;Google新闻:38%的点击量来自推荐;Amazon:35%的销量来自推荐。•数据抽取数据仓库数据建模前端展现三、推荐算法的常用领域-Where目前,推荐系统已经渗透到了我们日常生活中的方方面面:电子商务、电影或视频网站、个性化音乐网络电台、社交网络、个性化阅读、基于位置的服务、个性化邮件、个性化广告……。在你逛淘宝、订外卖、听网络电台、看美剧、查邮件、淘攻略的时候,推荐系统在你不知不觉中将你可能感兴趣的内容推送给你。和搜索引擎不同,个性化推荐系统需要依赖用户的行为数据,一般都是作为一个应用存在于不同网站之中。在互联网的各大网站中都可以看到推荐系统的影子。•数据抽取数据仓库数据建模前端展现三、推荐算法的常用领域-Where•淘宝•京东•当当•亚马逊•数据抽取数据仓库数据建模前端展现三、推荐算法的常用领域-Where•音乐(网易云音乐、QQ音乐、酷狗、虾米等)•电影(时光网、豆瓣)•图书(豆瓣)•……•数据抽取数据仓库数据建模前端展现三、推荐算法的常用领域-Where•各社交平台•今日头条•数据抽取数据仓库数据建模前端展现三、推荐算法的常用领域-Where浏览网页时出现在页面上的各种广告广告联盟•数据抽取数据仓库数据建模前端展现四、写在推荐之前-冷启动问题推荐系统需要根据用户的历史行为和兴趣来预测用户未来的行为和兴趣,如何在没有用户行为数据,对用户一无所知的情况下进行最有效的推荐呢?这就衍生了冷启动问题。•数据抽取数据仓库数据建模前端展现四、写在推荐之前-冷启动问题•用户冷启动:如何给新用户做个性化推荐。新的用户因为没有在产品上留下行为数据,自然无法得知新用户的喜好。•物品冷启动:如何将新的物品推荐给可能对它感兴趣的用户。因为新物品还没有用户行为数据,自然也无法得知什么样的用户对其感兴趣;•系统冷启动:如何在一个新开发的网站上设计个性化推荐系统,从而在网站刚发布时就让用户体会到个性化推荐。新网站没有用户,没有用户行为,只有部分物品信息。冷启动的分类•数据抽取数据仓库数据建模前端展现四、写在推荐之前-冷启动问题1、提供非个性化的推荐提供热门排行榜:最简单的例子就是给用户推荐热门排行榜,等到用户数据收集到一定的时候,再切换为个性化推荐;推荐随机的热门内容:推荐随机的热门内容,再通过评估用户的点击来快速调整(实时推荐的好处);提供具有很高覆盖率的启动物品集合:在冷启动时,我们不知道用户的兴趣,而用户兴趣的可能性非常多,我们需要提供具有很高覆盖率的启动物品集合,这些物品能覆盖几乎所有主流的用户兴趣。•数据抽取数据仓库数据建模前端展现四、写在推荐之前-冷启动问题2、利用用户注册信息人口统计学信息:年龄、性别、职业、民族、学历和居住地等;用户兴趣的描述:部分网站会让用户用文字来描述兴趣;从其他网站导入的用户站外行为:比如用户利用社交网站账号登录,就可以在获得用户授权的情况下导入用户在该社交网站的部分行为数据和社交网络数据。•数据抽取数据仓库数据建模前端展现四、写在推荐之前-冷启动问题3、利用内容特征的相似度如果是要对一个新内容推荐相关的其他内容,那么可以多多利用内容特征的相似度。此外,很多系统在建立的时候,既没有用户的行为数据,也没有充足的物品内容信息来计算物品相似度。在这种情况下,很多系统都利用专家进行标注。比如个性化网络电台Pandora雇用了一批音乐人对几万名歌手的歌曲进行各个维度的标注,最终选定了400多个特征。每首歌都可以标识为一个400维的向量,然后通过常见的向量相似度算法计算出歌曲的相似度。•数据抽取数据仓库数据建模前端展现四、写在推荐之前-冷启动问题4、利用用户的手机等兴趣偏好进行冷启动Android手机开放的比较高,所以在安装自己的app时,就可以顺路了解下手机上还安装了什么其他的app,可以比较精准的判定用户,对于解决冷启动问题有很好的帮助。•数据抽取数据仓库数据建模前端展现五、推荐引擎分类通用推荐:也叫根据大众行为的推荐引擎,对每个用户都给出同样的推荐,这些推荐可以是静态的由系统管理员人工设定的,或者基于系统所有用户的反馈统计计算出的当下比较流行的物品。个性化推荐:对不同的用户,根据他们的口味和喜好给出更加精确的推荐,这时,系统需要了解需推荐内容和用户的特质,或者基于社会化网络,通过找到与当前用户相同喜好的用户,实现推荐。根据是否为不同的用户推荐不同的数据•数据抽取数据仓库数据建模前端展现五、推荐引擎分类大部分推荐引擎的工作原理还是基于物品或者用户的相似集进行推荐,根据不同的数据源发现数据相关性的方法可以分为以下几种。基于人口统计学的推荐:根据用户的基本信息发现用户的相关程度(比如可以把年龄或性别相同的用户判定为相似用户)。基于内容的推荐:根据推荐物品或内容的元数据,发现物品或者内容的相关性(比如物品具有相同关键词和标签,这里没有考虑人为因素)。基于协同过滤的推荐:根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性。根据推荐引擎的数据源•数据抽取数据仓库数据建模前端展现五、推荐引擎分类基于物品和用户本身推荐:将每个用户和每个物品都当作独立的实体,预测每个用户对于每个物品的喜好程度,这些信息往往是用一个二维矩阵描述的。基于关联规则的推荐:主要是挖掘一些数据的依赖关系,比如购物篮问题,通过关联规则的挖掘,可以找到哪些物品经常被同时购买,或者用户购买了一些物品后通常会购买哪些其他物品,当挖掘出这些关联规则之后可以基于这些规则给用户进行推荐。基于模型的推荐:这是一个典型的机器学习的问题,可以将已有的用户喜好信息作为训练样本,训练出一个预测用户喜好的模型,这样以后用户可以基于此模型计算来推荐。这种方法的问题在于如何将用户实时或者近期的喜好信息反馈给训练好的模型,从而提高推荐的准确度。根据推荐模型的建立方式•数据抽取数据仓库数据建模前端展现六、常用推荐算法介绍根据物品或内容的元数据,发现物品或内容的相关性,然后基于用户以前的喜好记录推荐给用户相似的物品。基于内容的推荐对电影元数据进行建模,这里只简单的描述了一下电影的类型,然后通过电影的元数据发现电影间的相似度。因为电影A和C的类型相同,所以电影A和C被认为是相似的电影,对于用户A,他喜欢看电影A,那么系统就可以给他推荐类似的电影C。当然要得到更好的推荐,除了类型还可以考虑电影的导演、演员等等。•数据抽取数据仓库数据建模前端展现六、常用推荐算法介绍在现今的推荐技术和算法中,最被大家广泛认可和采用的就是基于协同过滤的推荐方法。它的原理就是根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,然后再基于这些关联性进行推荐。比如你想看一部电影但不知道看哪部,这时大部分人会问周围的朋友,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。物以类聚,人以群分。基于协同过滤的推荐•数据抽取数据仓库数据建模前端展现六、常用推荐算法介绍基于协同过滤的推荐1、基于用户的协同过滤算法(user-basedcollaborativefiltering)先使用统计技术寻找与目标用户有相同喜好的邻居,然后根据目标用户的邻居的喜好产生向目标用户的推荐。基本原理就是利用用户访问行为的相似性来互相推荐用户可能感兴趣的资源。上图示意出基于用户的协同过滤推荐机制的基本原理,假设用户A喜欢物品A、C,用户B喜欢物品B,用户C喜欢物品A、C和D。从这些用户的历史喜好信息中,我们可以发现用户A和用户C的口味和偏好是比较类似的,同时用户C还喜欢物品D,那么我们可以推断用户A可能也喜欢物品D,因此可以将物品D推荐给用户A。•数据抽取数据仓库数据建模前端展现六、常用推荐算法介绍基于协同过滤的推荐2、基于物品的协同过滤算法(item-basedcollaborativefiltering)根据所有用户对物品或者信息的评价,发现物品和物品之间的相似度,然后根据用户的历史偏好信息将类似的物品推荐给该用户。上图表明基于物品的协同过滤推荐的基本原理,用户A喜欢物品A和物品C,用户B喜欢物品A、B和C,用户C喜欢物品A,从这些用户的历史喜好中可以认为物品A与物品C比较类似,喜欢物品A的都喜欢物品C,基于这个判断用户C可能也喜欢物品C,所以推荐系统将物品C推荐给用户C。基于物品的协同过滤推荐和基于内容的协同过滤推荐都是基于物品相似度预测推荐,只是相似度度量的方法不一样,前者是从用户历史的偏好推断,而后者是基于物品本身的属性特征信息。•数据抽取数据仓库数据建模前端展现六、常用推荐算法介绍1、组合推荐各种推荐方法都有优缺点,所以在实际中应用中,组合推荐经常被采用。2、持续改进推荐算法都是有生命周期的,无法一劳永逸,算法需要不断的迭代。一点感想THANKSBD&AILab