一、推荐系统
在信息暴涨的时代,每天大量的微博转载和创作,给用户不断更新信息的同时,也增加了用户筛选信息的难度,当用户有明确的需求时可以使用搜索引擎。但是在用户没有明确的需求时,只是为了打发时间,在微博中为了给用户筛选出他们感兴趣的信息,就要分析用户的兴趣,从海量的信息中选择与用户兴趣相似的信息,并将此推荐给用户。推荐系统(Recommendation System RS)被提出,推荐系统的任务就是能够链接信息和用户,帮助用户找到其感兴趣的信息,同时让一些有价值的信息能够触达到潜在的用户。
推荐算法是根据用户的历史行为,挖掘出用户的喜好,并为用户推荐与其喜好相符的商品或者信息。
推荐系统的核心问题是为用户推荐与其兴趣相似度比较高的商品。为此需要函数 f(x)计算候选商品与用户之间的相似度,并向用户推荐相似度比较高的商品。为了预测函数 f(x)可用的历史数据有:用户的历史行为数据、与该用户相关的其他用户信息,商品之间的相似性、文本的描述。
二、推荐的常用方法
- 协同过滤的推荐:主要依据的是用户或者项之间的相似性。
- 基于内容的推荐:主要依据的是推荐项的性质。
- 基于关联规则的推荐
- 基于效用的推荐
- 基于知识的推荐
- 组合推荐
三、基于协同过滤的推荐
1.协同过滤算法概述
协同过滤(Collaborative Filtering CF)推荐算法是通过在用户的行为中寻找特定的模式,并通过该模式为用户产生有效推荐,依赖于系统中用户的行为数据。
基于协同过滤的推荐算法的核心思想是:通过对用户的历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的项。在计算推荐结果的过程中,只与用户对项的评分有关。
2.协同过滤算法分类
- 基于项的协同过滤算法:主要依据的是项与项之间的相似性。
- 基于用户的协同过滤算法:主要依据的是用户与用户之间的相似性。
下图基于项的协同过滤算法中,用户 u1、u2、u3,与用户 u1 互动的商品有 i1,i2,与用户 u2 互动的商品有 i1,i2,i3,用户u3 互动的商品 i1。通过计算 i1,i3 商品相似,对于用户 u3 来说,用户 u1 互动过的 i3 用户 u3 为互动,所以为用户 u3 推荐商品 i3。
下图基于用户的协同过滤算法中,与用户 u1 互动的商品 i1,i3,用户 u2 互动的商品 i2,用户 u3 互动的商品 i1,i3,i4,。通过计算,用户 u1 和 u3 较为相似,对于用户 u1,用户 u3 互动过的商品 i4 使用户 u1 未互动过的,所以为用户 u1 推荐商品 i4。
四、相似度的度量方法
相似性的度量方法必须满足拓扑学中的度量空间的基本条件:
假设 d 是度量空间 M 上的度量:, 其中度量 d 满足:
- 非负性: