如何建立一个推荐系统(推荐系统常用术语大全)
老规矩,开始正文前:微信搜索并关注公众号“智能推荐系统”,更多干货等着你。
本文总结了推荐系统常用的术语及知识清单,供大家参考。
1、推荐系统
推荐系统相当于信息的“过滤器”,它旨在解决信息过载的问题,帮助人们更好地作出决策。它的主要原理是根据用户过去的行为(比如购买、评分、点击等)来建立用户兴趣模型,之后利用一定的推荐算法,把用户最可能感兴趣的内容推荐给用户,如下图:
2.1、召回
从海量(数千万)item中粗选出几百或者上千的候选集的过程,可以理解为向用户粗选一批待推荐的商品。相当
2.2、排序
从召回的上千候选集中,预测出用户的点击概率,以此排序,给出最终向用户推荐的结果集。
2、数据
为了完成上面的计算,我们需要三部分数据:
2.1、 用户数据(User)
指用来建立用户模型的数据,这些数据根据不同的推荐算法而不同,典型的数据包括用户兴趣点、用户profile、用户的社交好友关系等;
2.2、 内容数据(Item)
指用来描述一个被推荐内容主要属性的数据,这些属性主要都是跟具体的内容相关的,如一部电影的导演、演员、类型和风格等;
2.3、 用户-内容数据
用户-内容交互是指反映用户与内容内在联系的数据,分为隐式和显式两种;显式主要是指评价、打分、购买等能明显反映用户对内容兴趣的交互数据,隐式指的是用户的点击、搜索记录等间接反映用户对内容兴趣的交互数据。
3、算法
当前主流的推荐算法可以分为以下几类:
3.1、基于内容的推荐(Content-based)
根据用户过去喜欢的内容而推荐相似的内容;
3.2、基于协同过滤的推荐(Collaborative Filtering,CF)
根据与当前用户相似的用户的兴趣点,给当前用户推荐相似的内容
3.3、基于人口统计学的推荐(Demographic-based)
根据用户共同的年龄、地域等人口统计学信息进行共同的推荐
3.4、基于知识的推荐(Knowledge-based)
根据对用户和内容的特定领域知识,给特定的用户推荐特定的内容
3.5、基于团体的推荐(Community-based)
根据用户的社交好友关系,给用户推荐其好友感兴趣的内容
3.6、混合推荐(Hybrid Recommender System)
以上各种推荐算法的特定组合
4、数据预处理
推荐系统相关的数据预处理技术除了通常的归一化、变量替换等以外,最主要的是相似度计算、抽样和维度约减。
4.1、相似度计算
相似度通常有两种衡量方式,一是直接计算相似度,二是计算距离,距离是本质上是相异程度的度量,距离越小,相似度越高。
4.1.1、相似度度量
4.1.1.1、余弦相似度
相似度计算最常见的方式是余弦相似度,对于n维空间的两个向量,通过以下公式计算相似度。其几何意义就是两个向量的空间夹角的余弦值,取值范围在-1到1之间。取值为-1表示完全相反,取值为1表示完全相同,其余值表示介于二者之间。
4.1.1.2、皮尔逊相关系数
相似度计算的另一种常见方式时皮尔逊相关系数。皮尔逊相关系数的实际意义是两个随机变量x和y之间的线性相关性,取值范围在-1和1之间。-1表示负线性相关,1表示正线性相关,其余值表示介于二者之间。
4.1.1.3、Jaccard相关系数(Jaccard Coefficient)
Jaccard用于集合相似度的一种方式。
4.1.2、距离度量
4.1.2.1、欧几里得距离(Euclidean Distance)
距离度量最常见的是欧几里得距离,计算多位空间中两个点之间的绝对距离。
4.1.2.2、曼哈顿距离(Manhattan Distance)
曼哈顿距离也称为城市块距离,是将多个维度的直线距离求和后的结果。
4.1.2.3、切比雪夫距离(Chebyshev Distance)
4.1.2.4、闵可夫斯基距离(Minkowski Distance)
Minkowski距离是欧氏距离(p=2)、曼哈顿距离(p=1)和切比雪夫距离(p=无穷)的推广。
4.1.2.5、标准化欧氏距离(Standardized Euclidean Distance)
标准化欧氏距离是为了解决以上四种距离的一个重要不足而产生的,即以上四种距离把不同维度指标的差异视为相同的。标准欧式距离则通过每一维的标准差,对该维度进行一个标准化后再进行计算。
4.1.2.6、马哈拉诺比斯距离(Mahalanobis Distance)
Mahalanobis距离是标准化欧氏距离的推广,在协方差矩阵是对角阵时,Mahalanobis距离就变成了标准化欧氏距离。
4.2、抽样
抽样技术在数据挖掘中主要用在两个地方:一是在数据预处理和后处理阶段,为了避免计算规模过大,进行抽样计算;二是在数据挖掘阶段,通常会对训练出来的模型进行交叉验证,需要抽样将所有样本划分为训练集和测试集。
通常所说的抽样都是随机抽样(random sampling),主要用于所有样本点都可以认为没有区分时适用。还有一种分层抽样(striated sampling),在样本需要显著的分为不同的子集时,针对每个子集分别进行抽样。
4.3、维度约减(Dimensionality Reduction)
在统计学习理论中,当样本的维度增加的时候,待学习的模型的复杂性是随着维度呈指数增长的,这种现象通常称为“维数灾难(curse of dimensionality)”。这也就意味着,如果我们想在高维空间中学到和在低维空间中精度一样高的模型,所需要的样本数是呈指数增长的。
维度约减通常是用来处理维灾难问题的。通常维度约减有两种思路,一是从高维数据中选出最能表达数据的一些维度,并用这些维度来代表数据,称为特征选择(feature selection);另一种是将高维数据通过某种trick变换映射到低维空间,称为特征构造(feature extraction)。
主成分分析(Principal Component Analysis, PCA)是最主要的一种特征选择方式。它通过特征分解能够得到每一个维度对于整个数据的最小均方差的贡献程度,从而定量判断每一维对于数据所包含信息的贡献度。然后保留最主要的一些维度,抛弃一些不显著的维度,对数据进行降维。
奇异值分解(Singular Value Decomposition, SVD)是主要的特征构造方式。它通过矩阵分解的方式,将数据从高维空间映射到低维空间,对数据进行降维。
5、数据挖掘-分类
分类是数据挖掘的主要内容,方法众多,各自都有不同数据假设和理论支持。下面简单列举最有代表性的一些算法。
5.1、KNN(K-nearest Neighbor)
KNN是最容易理解的分类器,它不训练任何模型。当有一个未知样本需要预测时,它从已知样本中找到与这个未知样本距离最近的K个点,根据这K个点的类别来预测未知样本的类别。
它最主要的不足在于它需要的样本量非常大,同时因为它没有任何训练的模型,每一次预测都要计算k次距离,计算量非常大。
5.2、决策树(Decision Tree)
决策树将分类过程抽象为一颗树,它通过最大化信息增益的方式对树的分支进行划分,最终通过设置不纯度的阈值来停止树的划分,形成最终的决策树。
它的主要优点在于模型的训练和预测都非常快,不足在于模型的精度有时会低于其它分类器。不过,通过集群学习(ensemble learning)的方式能够极大的克服这一点,如采用bagging思想的random forest和采用boosting思想的GBDT,都是决策树的延伸,它们综合多棵决策树的分类结果来组合出更精确的分类器。
5.3、基于规则的分类器(Rule-based Classifier)
基于规则的分类器通常都是利用“如果…则…”一类的规则来进行分类。其适用性有限,且要获得靠谱的规则比较困难,一般用的较少。
5.4、贝叶斯分类器(Bayes classifier)
贝叶斯分类器其实是一类分类器,主要是利用贝叶斯公式,通过估计先验概率和似然概率,并利用一部分先验信息,来计算给定样本的各维度数据值的情况下,样本属于某个类别的概率。
5.5、人工神经网络(Artificial Neural Network,ANN )
神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
5.6、支持向量机(Support Vector Machine, SVM)
支持向量机是线性分类器的代表。与贝叶斯分类器先估计概率密度然后计算判别函数不同,线性分类器都是直接估计线性判别式,并最小化某个目标函数,利用某种凸优化方法求解得到最终的线性判别式。
这是最流行的分类器之一,通常认为它训练、预测速度快,而且精度靠谱,所以在各种领域广泛使用。
5.7、集成学习(Ensemble Learning)
集成学习的想法是集合若干个弱分类器来组合成一个强分类器,通常有bagging和boosting两种思路。
5.8、分类器评估
分类器评估是对一个分类器性能进行评价的重要一步,其主要有以下标准:
Precision-recall:准确率-召回率,根据混淆矩阵计算
F1:结合准确率-召回率的一个综合指标
ROC:直观的曲线比较分类器性能
AUC:ROC的定量化表达
MAE:平均绝对误差
RMSE:平均根方误差
微信搜索并关注公众号“智能推荐系统”,更多干货等着你。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com