推荐系统
- 目的:
对于用户:面向需求不明确的人;是信息过载所采用的措施,从海量数据中迅速推荐出符合用户特点的物品。
对于商家:可以通过推荐系统让自己的产品脱颖而出。
对于网站:让内容更好的推送到喜欢它的用户手中。 - 应用:电商、音乐、广告、新闻、电影、视频、社交网络等。
- 基本思想:
推荐具有用户喜欢的特征的物品
给用户推荐他喜欢过的物品相似的物品
利用和用户兴趣相似的其他用户,推荐其他用户喜欢的物品
(精准推荐,物以类聚,人以群分)
用户:个人信息、喜好标签等
物品:内容信息、分类标签、关键词
行为数据:判断用户对物品的偏好,分为显式(用户对物品评价 from数据库)和隐式(用户查看了物品等 from日志)。 - 分类:离线/实时、基于相似度/知识/模型、基于统计/个性化、基于人口统计学/内容/协同过滤
推荐算法
- 基于人口统计学的推荐:基于用户基本信息,人以群分
- 基于内容的推荐:基于物品信息,物以类聚
- 基于协同过滤的推荐 CF :同时与用户和物品有关系。
基于近邻的协同过滤:基于用户 User-CF、基于物品 Item-CF
基于模型的协同过滤:奇异值分析SVD、潜在语义分析LSA、支撑向量机SVM - 混合推荐:加权、切换、分区、分层
推荐系统评测
实验方法:
- 离线实验:即收集用户行为数据集,并分为训练集和测试集,在训练集上训练用户兴趣模型,在测试集上进行预测——通过事先定义的离线指标评测算法在测试集上的预测结果。缺点是无法获得很多商业上关注的指标,比如点击率、转化率等。
- 用户调查:即调查问卷。缺点是不一定找得到足够的和可靠的用户、数据难以在短时间收集到。
- 在线AB测试:即分成不同的组进行对照试验。缺点是数据难以在短时间收集到。
一般要通过离线实验证明很多离线指标优于现有算法;
调查问卷证明用户满意度不低于现有算法(准确度高不一定满意度高;
通过在线的AB测试确定其商业指标优于现有算法;
评测指标:主要有预测准确度(评分预测、topN推荐)、覆盖率、多样性、新颖性、惊喜度、用户满意度、信任度、实时性、健壮性、商业目标等。有些可以定量计算,有些则只能定性描述。
- 预测准确度:即通过用户以往对于各种商品的评分,来获得用户的兴趣模型,然后==预测用户看到一个没有评过分的物品时会给多少分。评分预测准确度通过均方根误差RMSE和平均绝对误差MAE计算。
$RMSE=\sqrt{ \frac{ \sum_{r,i\in T}(r_{ui}-\hat{r}_{ui}) }{|T|} } $
$ MAE=\frac{ \sum_{u,i \in T}|r_{u,i}-\hat{r}_{u,i}| }{|T|} $
$r_{ui} 是 用 户 u 对 商 品 i 的 实 际 评 分 , 是用户u对商品i的实际评分, 是用户u对商品i的实际评分,\hat{r}_{ui} $这是推荐算法的预测评分。
topN推荐即网站推荐给用户的推荐列表,一般通过 准确率precision/召回率recall 度量。公式如下:
$ Recall=\frac{ \sum_{u \in U}|R(u)\cap T(u)| }{ \sum_{u \in U}|T(U)| } $
$ Recall=\frac{ \sum_{u \in U}|R(u)\cap T(u)| }{ \sum_{u \in U}|R(u)| } $
其中 R(u)是根据用户在训练集上的行为给出的推荐列表, T(u) 是根据用户在测试集上的行为给出的推荐列表。
数学基础
- 矩阵:按长方形阵列排列的复数或实属集合。由m*n个数排成的m行n列的数表A就称为m行n列的矩阵。乘法、转置、运算法则、逆;
- 微积分:
导数:一元函数在某一点处沿x轴正方向的变化率。
偏导数:多元函数在某一点处沿某一坐标轴正方向的变化率。
方向导数:函数在除坐标轴正方向外,其他特定方向上的变化率。
梯度:是一个向量,它的方向与取得最大方向导数的方向一致,而它的模为方向导数的最大值。
凸函数和凹函数 - 概率论:
常用统计变量:样本均值、样本方差、样本标准差
常见概率分布:均匀分布、正太分布、指数分布
重要概率公式:条件概率公式、全概率公式、贝叶斯公式