❶ 基于用户的的协同过滤算法怎样算准确率
协同过滤(Collaborative Filtering)的基本概念就是把这种推荐方式变成自动化的流程
协同过滤主要是以属性或内兴趣相近的用户经验容与建议作为提供个性化推荐的基础。透过协同过滤,有助于搜集具有类似偏好或属性的用户,并将其意见提供给同一集群中的用户作为参考,以满足人们通常在决策之前参考他人意见的心态。
本人认为,协同过滤技术应包括如下几方面:(1)一种比对和搜集每个用户兴趣偏好的过程;(2)它需要许多用户的信息去预测个人的兴趣偏好;(3)通过对用户之间兴趣偏好相关程度的统计去发展建议那些有相同兴趣偏好的用户。
❷ 推荐系统的准确率召回率f值 在多少
在信息检索、统计分类、识别、预测、翻译等领域,两个最基本指标是准确率和召回率,用来评价结果的质量。准确率(Precision),又称“精度”、“正确率”、“查准率”,表示在检索到的所有文档中,检索到的相关文档所占的比例。召回率(Recall),又称“查全率”,表示在所有相关文档中,检索到的相关文档所占的比率。两者的公式为:准确率=检索到的相关文档数量/检索到的所有文档总数召回率=检索到的相关文档数量/系统中所有相关文档的总数图示如下:举例来说:一个数据库中有500个文档,其中有50个文档符合定义的问题。系统检索到75个文档,其中只有45个文档符合定义的问题。准确率=45/75=60%召回率=45/50=90%若将所有文档都检索到,这些指标有何变化:准确率=50/500=10%召回率=50/50=100%可见,准确率和召回率是相互影响的,理想情况下肯定是两者都高,但是一般情况下准确率高,召回率就低;召回率高,准确率就低;如果两者都低,那肯定是什么环节有问题了。比如,在检索系统中,如果希望提高召回率,即希望的相关文档被检索到,就要放宽“检索策略”,便会在检索中伴随出现一些不相关的结果,从而影响到准确率。如果希望提高准确率,即希望去除检索结果中的不相关文档时,就需要严格“检索策略”,便会使一些相关文档不能被检索到,从而影响到召回率。针对不同目的,如果是做搜索,那就是优先提高召回率,在保证召回率的情况下,提升准确率;如果做疾病监测、反垃圾,则是优先提高准确率,保准确率的条件下,提升召回率。那么,在两者都要求高的情况下,如何综合衡量准确率和召回率呢?一般使用F值。F-Measure是准确率(P)和召回率(R)的加权调和平均。公式为:当参数α=1时,就是最常见的F1,即可见F1综合了P和R的结果,可用于综合评价实验结果的质量。
❸ 协同过滤怎么计算召回率 准确率
协同过滤(Collaborative Filtering)的基本概念就是把这种推荐方式变成自动化的流程
协同过滤主要是以版属性或兴趣相近的用权户经验与建议作为提供个性化推荐的基础。透过协同过滤,有助于搜集具有类似偏好或属性的用户,并将其意见提供给同一集群中的用户作为参考,以满足人们通常在决策之前参考他人意见的心态。
本人认为,协同过滤技术应包括如下几方面:(1)一种比对和搜集每个用户兴趣偏好的过程;(2)它需要许多用户的信息去预测个人的兴趣偏好;(3)通过对用户之间兴趣偏好相关程度的统计去发展建议那些有相同兴趣偏好的用户。
❹ 推荐系统为什么要分测试集和训练集
在信息检索、统计分类、识别、预测、翻译等领域,两个最基本指标是准确率和召回率,用来评价结果的质量。
准确率(Precision),又称“精度”、“正确率”、“查准率”,表示在检索到的所有文档中,检索到的相关文档所占的比例。
召回率(Recall),又称“查全率”,表示在所有相关文档中,检索到的相关文档所占的比率。
两者的公式为:
准确率 = 检索到的相关文档数量 / 检索到的所有文档总数
召回率 = 检索到的相关文档数量 / 系统中所有相关文档的总数
图示如下:
举例来说:一个数据库中有500个文档,其中有50个文档符合定义的问题。系统检索到75个文档,其中只有45个文档符合定义的问题。
准确率 = 45 / 75 = 60%
召回率 = 45 / 50 = 90%
若将所有文档都检索到,这些指标有何变化:
准确率 = 50 / 500 = 10%
召回率 = 50 / 50 = 100%
可见,准确率和召回率是相互影响的,理想情况下肯定是两者都高,但是一般情况下准确率高,召回率就低;召回率高,准确率就低;如果两者都低,那肯定是什么环节有问题了。
比如,在检索系统中,如果希望提高召回率,即希望更多的相关文档被检索到,就要放宽“检索策略”,便会在检索中伴随出现一些不相关的结果,从而影响到准确率。如果希望提高准确率,即希望去除检索结果中的不相关文档时,就需要严格“检索策略”,便会使一些相关文档不能被检索到,从而影响到召回率。
针对不同目的,如果是做搜索,那就是优先提高召回率,在保证召回率的情况下,提升准确率;如果做疾病监测、反垃圾,则是优先提高准确率,保准确率的条件下,提升召回率。
那么,在两者都要求高的情况下,如何综合衡量准确率和召回率呢?一般使用F值。
F-Measure是准确率(P)和召回率(R)的加权调和平均。公式为:
当参数α=1时,就是最常见的F1,即
可见F1综合了P和R的结果,可用于综合评价实验结果的质量。
❺ 今日头条是怎样做到精准算法推荐
今日头条借助个性化推荐提高用户浏览新闻的时长,个性化推荐中最常用的算法就是协同过滤算法,包括基于物品的协同过滤和基于用户的协同过滤。说成人话就是,与你同类的人喜欢什么,就给你推什么新闻,看了A新闻的人也浏览了B新闻,那么就给你推荐B新闻。
同时,根据用户的浏览轨迹和偏好,不断更新迭代用户的标签(用户画像),提升推荐的准确率。
个性化推荐中比较难的就是冷启动阶段,无法判断用户的偏好,因为难以推荐能吸引用户眼球的新闻。达观数据采用的是多种策略来改善冷启动用户的推荐质量,最重要的一点就是需要秒级生成用户画像,快速完成冷热转换,确保用户留存率。
❻ 常用的机器学习&数据挖掘知识(点)
常用的机器学习&数据挖掘知识(点)
Basis(基础):MSE(Mean Square Error 均方误差),
LMS(LeastMean Square 最小均方),
LSM(Least Square Methods 最小二乘法),
MLE(MaximumLikelihood Estimation最大似然估计),
QP(Quadratic Programming 二次规划),
CP(Conditional Probability条件概率),
JP(Joint Probability 联合概率),
MP(Marginal Probability边缘概率),
Bayesian Formula(贝叶斯公式),
L1 /L2Regularization(L1/L2正则,
以及更多的,现在比较火的L2.5正则等),
GD(GradientDescent 梯度下降),
SGD(Stochastic Gradient Descent 随机梯度下降),
Eigenvalue(特征值),
Eigenvector(特征向量),
QR-decomposition(QR分解),
Quantile (分位数),
Covariance(协方差矩阵)。
Common Distribution(常见分布):
Discrete Distribution(离散型分布):
BernoulliDistribution/Binomial(贝努利分布/二项分布),
Negative BinomialDistribution(负二项分布),
MultinomialDistribution(多项式分布),
Geometric Distribution(几何分布),
HypergeometricDistribution(超几何分布),
Poisson Distribution (泊松分布)。
Continuous Distribution (连续型分布):
UniformDistribution(均匀分布),
Normal Distribution /Guassian Distribution(正态分布/高斯分布),
ExponentialDistribution(指数分布),
Lognormal Distribution(对数正态分布),
GammaDistribution(Gamma分布),
Beta Distribution(Beta分布),
Dirichlet Distribution(狄利克雷分布),
Rayleigh Distribution(瑞利分布),
Cauchy Distribution(柯西分布),
Weibull Distribution (韦伯分布)。
Three Sampling Distribution(三大抽样分布):
Chi-squarEdistribution(卡方分布),
t-distribution(t-distribution),
F-distribution(F-分布)。
Data Pre-processing(数据预处理):
Missing Value Imputation(缺失值填充),
Discretization(离散化),Mapping(映射),
Normalization(归一化/标准化)。
Sampling(采样):
Simple Random Sampling(简单随机采样),
OfflineSampling(离线等可能K采样),
Online Sampling(在线等可能K采样),
Ratio-based Sampling(等比例随机采样),
Acceptance-RejectionSampling(接受-拒绝采样),
Importance Sampling(重要性采样),
MCMC(MarkovChain Monte Carlo 马尔科夫蒙特卡罗采样算法:Metropolis-Hasting& Gibbs)。
Clustering(聚类):
K-Means,
K-Mediods,
二分K-Means,
FK-Means,
Canopy,
Spectral-KMeans(谱聚类),
GMM-EM(混合高斯模型-期望最大化算法解决),
K-Pototypes,CLARANS(基于划分),
BIRCH(基于层次),
CURE(基于层次),
DBSCAN(基于密度),
CLIQUE(基于密度和基于网格)。
Classification&Regression(分类&回归):
LR(Linear Regression 线性回归),
LR(LogisticRegression逻辑回归),
SR(Softmax Regression 多分类逻辑回归),
GLM(GeneralizedLinear Model 广义线性模型),
RR(Ridge Regression 岭回归/L2正则最小二乘回归),
LASSO(Least Absolute Shrinkage andSelectionator Operator L1正则最小二乘回归),
RF(随机森林),
DT(DecisionTree决策树),
GBDT(Gradient BoostingDecision Tree 梯度下降决策树),
CART(ClassificationAnd Regression Tree 分类回归树),
KNN(K-Nearest Neighbor K近邻),
SVM(Support VectorMachine),
KF(KernelFunction 核函数PolynomialKernel Function 多项式核函、
Guassian KernelFunction 高斯核函数/Radial BasisFunction RBF径向基函数、
String KernelFunction 字符串核函数)、
NB(Naive Bayes 朴素贝叶斯),BN(Bayesian Network/Bayesian Belief Network/ Belief Network 贝叶斯网络/贝叶斯信度网络/信念网络),
LDA(Linear Discriminant Analysis/FisherLinear Discriminant 线性判别分析/Fisher线性判别),
EL(Ensemble Learning集成学习Boosting,Bagging,Stacking),
AdaBoost(Adaptive Boosting 自适应增强),
MEM(MaximumEntropy Model最大熵模型)。
Effectiveness Evaluation(分类效果评估):
Confusion Matrix(混淆矩阵),
Precision(精确度),Recall(召回率),
Accuracy(准确率),F-score(F得分),
ROC Curve(ROC曲线),AUC(AUC面积),
LiftCurve(Lift曲线) ,KS Curve(KS曲线)。
PGM(Probabilistic Graphical Models概率图模型):
BN(Bayesian Network/Bayesian Belief Network/ BeliefNetwork 贝叶斯网络/贝叶斯信度网络/信念网络),
MC(Markov Chain 马尔科夫链),
HMM(HiddenMarkov Model 马尔科夫模型),
MEMM(Maximum Entropy Markov Model 最大熵马尔科夫模型),
CRF(ConditionalRandom Field 条件随机场),
MRF(MarkovRandom Field 马尔科夫随机场)。
NN(Neural Network神经网络):
ANN(Artificial Neural Network 人工神经网络),
BP(Error BackPropagation 误差反向传播)。
Deep Learning(深度学习):
Auto-encoder(自动编码器),
SAE(Stacked Auto-encoders堆叠自动编码器,
Sparse Auto-encoders稀疏自动编码器、
Denoising Auto-encoders去噪自动编码器、
Contractive Auto-encoders 收缩自动编码器),
RBM(RestrictedBoltzmann Machine 受限玻尔兹曼机),
DBN(Deep Belief Network 深度信念网络),
CNN(ConvolutionalNeural Network 卷积神经网络),
Word2Vec(词向量学习模型)。
DimensionalityRection(降维):
LDA LinearDiscriminant Analysis/Fisher Linear Discriminant 线性判别分析/Fisher线性判别,
PCA(Principal Component Analysis 主成分分析),
ICA(IndependentComponent Analysis 独立成分分析),
SVD(Singular Value Decomposition 奇异值分解),
FA(FactorAnalysis 因子分析法)。
Text Mining(文本挖掘):
VSM(Vector Space Model向量空间模型),
Word2Vec(词向量学习模型),
TF(Term Frequency词频),
TF-IDF(Term Frequency-Inverse DocumentFrequency 词频-逆向文档频率),
MI(MutualInformation 互信息),
ECE(Expected Cross Entropy 期望交叉熵),
QEMI(二次信息熵),
IG(InformationGain 信息增益),
IGR(Information Gain Ratio 信息增益率),
Gini(基尼系数),
x2 Statistic(x2统计量),
TEW(TextEvidence Weight文本证据权),
OR(Odds Ratio 优势率),
N-Gram Model,
LSA(Latent Semantic Analysis 潜在语义分析),
PLSA(ProbabilisticLatent Semantic Analysis 基于概率的潜在语义分析),
LDA(Latent DirichletAllocation 潜在狄利克雷模型)。
Association Mining(关联挖掘):
Apriori,
FP-growth(Frequency Pattern Tree Growth 频繁模式树生长算法),
AprioriAll,
Spade。
Recommendation Engine(推荐引擎):
DBR(Demographic-based Recommendation 基于人口统计学的推荐),
CBR(Context-basedRecommendation 基于内容的推荐),
CF(Collaborative Filtering协同过滤),
UCF(User-basedCollaborative Filtering Recommendation 基于用户的协同过滤推荐),
ICF(Item-basedCollaborative Filtering Recommendation 基于项目的协同过滤推荐)。
Similarity Measure&Distance Measure(相似性与距离度量):
Euclidean Distance(欧式距离),
ManhattanDistance(曼哈顿距离),
Chebyshev Distance(切比雪夫距离),
MinkowskiDistance(闵可夫斯基距离),
Standardized Euclidean Distance(标准化欧氏距离),
MahalanobisDistance(马氏距离),
Cos(Cosine 余弦),
HammingDistance/Edit Distance(汉明距离/编辑距离),
JaccardDistance(杰卡德距离),
Correlation Coefficient Distance(相关系数距离),
InformationEntropy(信息熵),
KL(Kullback-Leibler Divergence KL散度/Relative Entropy 相对熵)。
Optimization(最优化):
Non-constrainedOptimization(无约束优化):
Cyclic VariableMethods(变量轮换法),
Pattern Search Methods(模式搜索法),
VariableSimplex Methods(可变单纯形法),
Gradient Descent Methods(梯度下降法),
Newton Methods(牛顿法),
Quasi-NewtonMethods(拟牛顿法),
Conjugate Gradient Methods(共轭梯度法)。
ConstrainedOptimization(有约束优化):
Approximation Programming Methods(近似规划法),
FeasibleDirection Methods(可行方向法),
Penalty Function Methods(罚函数法),
Multiplier Methods(乘子法)。
Heuristic Algorithm(启发式算法),
SA(SimulatedAnnealing,
模拟退火算法),
GA(genetic algorithm遗传算法)。
Feature Selection(特征选择算法):
Mutual Information(互信息),
DocumentFrequence(文档频率),
Information Gain(信息增益),
Chi-squared Test(卡方检验),
Gini(基尼系数)。
Outlier Detection(异常点检测算法):
Statistic-based(基于统计),
Distance-based(基于距离),
Density-based(基于密度),
Clustering-based(基于聚类)。
Learning to Rank(基于学习的排序):
Pointwise:McRank;
Pairwise:RankingSVM,RankNet,Frank,RankBoost;
Listwise:AdaRank,SoftRank,LamdaMART。
Tool(工具):
MPI,Hadoop生态圈,Spark,BSP,Weka,Mahout,Scikit-learn,PyBrain…
以及一些具体的业务场景与case等。
❼ 如何使用Spark ALS实现协同过滤
1.背景
协同过滤(collaborative filtering)是推荐系统常用的一种方法。cf的主要思想就是找出物品相似度高的归为一类进行推荐。cf又分为icf和ucf。icf指的是item collaborative filtering,是将商品进行分析推荐。同理ucf的u指的是user,他是找出知趣相似的人,进行推荐。通常来讲icf的准确率可能会高一些,通过这次参加天猫大数据比赛,我觉得只有在数据量非常庞大的时候才适合用cf,如果数据量很小,cf的准确率会非常可怜。博主在比赛s1阶段,大概只有几万条数据的时候,尝试了icf,准确率不到百分之一。。。。。
2.常用方法
cf的常用方法有三种,分别是欧式距离法、皮尔逊相关系数法、余弦相似度法。
测试矩阵,行表示三名用户,列表示三个品牌,对品牌的喜爱度按照1~5增加。
(1)欧氏距离法
就是计算每两个点的距离,比如Nike和Sony的相似度。数值越小,表示相似的越高。
[python] view plain print?在CODE上查看代码片派生到我的代码片
def OsDistance(vector1, vector2):
sqDiffVector = vector1-vector2
sqDiffVector=sqDiffVector**2
sqDistances = sqDiffVector.sum()
distance = sqDistances**0.5
return distance
(2)皮尔逊相关系数
两个变量之间的相关系数越高,从一个变量去预测另一个变量的精确度就越高,这是因为相关系数越高,就意味着这两个变量的共变部分越多,所以从其中一个变量的变化就可越多地获知另一个变量的变化。如果两个变量之间的相关系数为1或-1,那么你完全可由变量X去获知变量Y的值。
· 当相关系数为0时,X和Y两变量无关系。
· 当X的值增大,Y也增大,正相关关系,相关系数在0.00与1.00之间
· 当X的值减小,Y也减小,正相关关系,相关系数在0.00与1.00之间
· 当X的值增大,Y减小,负相关关系,相关系数在-1.00与0.00之间
当X的值减小,Y增大,负相关关系,相关系数在-1.00与0.00之间
相关系数的绝对值越大,相关性越强,相关系数越接近于1和-1,相关度越强,相关系数越接近于0,相关度越弱。
clip_image003
在Python中用函数corrcoef实现,具体方法见http//infosec.pku.e.cn/~lz/doc/Numpy_Example_List.htm
(3)余弦相似度
通过测量两个向量内积空间的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的
余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。两
个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相
反的方向时,余弦相似度的值为-1。在比较过程中,向量的规模大小不予考虑,仅仅考虑到向量的指向方向。余弦相
似度通常用于两个向量的夹角小于90°之内,因此余弦相似度的值为0到1之间。
\mathbf{a}\cdot\mathbf{b}=\left\|\mathbf{a}\right\|\left\|\mathbf{b}\right\|\cos\theta
[python] view plain print?在CODE上查看代码片派生到我的代码片
def cosSim(inA,inB):
num = float(inA.T*inB)
denom = la.norm(inA)*la.norm(inB)
return 0.5+0.5*(num/denom)
❽ 常用的机器学习&数据挖掘知识点
常用的机器学习&数据挖掘知识点
Basis(基础):
MSE(Mean Square Error 均方误差),LMS(LeastMean Square 最小均方),LSM(Least Square Methods 最小二乘法),MLE(MaximumLikelihood Estimation最大似然估计),QP(Quadratic Programming 二次规划), CP(Conditional Probability条件概率),JP(Joint Probability 联合概率),MP(Marginal Probability边缘概率),Bayesian Formula(贝叶斯公式),L1 /L2Regularization(L1/L2正则,以及更多的,现在比较火的L2.5正则等),GD(GradientDescent 梯度下降),SGD(Stochastic Gradient Descent 随机梯度下降),Eigenvalue(特征值),Eigenvector(特征向量),QR-decomposition(QR分解),Quantile (分位数),Covariance(协方差矩阵)。
Common Distribution(常见分布):
Discrete Distribution(离散型分布):BernoulliDistribution/Binomial(贝努利分布/二项分布),Negative BinomialDistribution(负二项分布),MultinomialDistribution(多项式分布),Geometric Distribution(几何分布),HypergeometricDistribution(超几何分布),Poisson Distribution (泊松分布)
Continuous Distribution (连续型分布):UniformDistribution(均匀分布),Normal Distribution /Guassian Distribution(正态分布/高斯分布),ExponentialDistribution(指数分布),Lognormal Distribution(对数正态分布),GammaDistribution(Gamma分布),Beta Distribution(Beta分布),Dirichlet Distribution(狄利克雷分布),Rayleigh Distribution(瑞利分布),Cauchy Distribution(柯西分布),Weibull Distribution (韦伯分布)
Three Sampling Distribution(三大抽样分布):Chi-squareDistribution(卡方分布),t-distribution(t-distribution),F-distribution(F-分布)
Data Pre-processing(数据预处理):
Missing Value Imputation(缺失值填充),Discretization(离散化),Mapping(映射),Normalization(归一化/标准化)。
Sampling(采样):
Simple Random Sampling(简单随机采样),OfflineSampling(离线等可能K采样),Online Sampling(在线等可能K采样),Ratio-based Sampling(等比例随机采样),Acceptance-RejectionSampling(接受-拒绝采样),Importance Sampling(重要性采样),MCMC(MarkovChain Monte Carlo 马尔科夫蒙特卡罗采样算法:Metropolis-Hasting& Gibbs)。
Clustering(聚类):
K-Means,K-Mediods,二分K-Means,FK-Means,Canopy,Spectral-KMeans(谱聚类),GMM-EM(混合高斯模型-期望最大化算法解决),K-Pototypes,CLARANS(基于划分),BIRCH(基于层次),CURE(基于层次),DBSCAN(基于密度),CLIQUE(基于密度和基于网格)
Classification&Regression(分类&回归):
LR(Linear Regression 线性回归),LR(LogisticRegression逻辑回归),SR(Softmax Regression 多分类逻辑回归),GLM(GeneralizedLinear Model 广义线性模型),RR(Ridge Regression 岭回归/L2正则最小二乘回归),LASSO(Least Absolute Shrinkage andSelectionator Operator L1正则最小二乘回归), RF(随机森林),DT(DecisionTree决策树),GBDT(Gradient BoostingDecision Tree 梯度下降决策树),CART(ClassificationAnd Regression Tree 分类回归树),KNN(K-Nearest Neighbor K近邻),SVM(Support VectorMachine),KF(KernelFunction 核函数PolynomialKernel Function 多项式核函数、Guassian KernelFunction 高斯核函数/Radial BasisFunction RBF径向基函数、String KernelFunction 字符串核函数)、 NB(Naive Bayes 朴素贝叶斯),BN(Bayesian Network/Bayesian Belief Network/ Belief Network 贝叶斯网络/贝叶斯信度网络/信念网络),LDA(Linear Discriminant Analysis/FisherLinear Discriminant 线性判别分析/Fisher线性判别),EL(Ensemble Learning集成学习Boosting,Bagging,Stacking),AdaBoost(Adaptive Boosting 自适应增强),MEM(MaximumEntropy Model最大熵模型)
Effectiveness Evaluation(分类效果评估):
Confusion Matrix(混淆矩阵),Precision(精确度),Recall(召回率),Accuracy(准确率),F-score(F得分),ROC Curve(ROC曲线),AUC(AUC面积),LiftCurve(Lift曲线) ,KS Curve(KS曲线)。
PGM(Probabilistic Graphical Models概率图模型):
BN(Bayesian Network/Bayesian Belief Network/ BeliefNetwork 贝叶斯网络/贝叶斯信度网络/信念网络),MC(Markov Chain 马尔科夫链),HMM(HiddenMarkov Model 马尔科夫模型),MEMM(Maximum Entropy Markov Model 最大熵马尔科夫模型),CRF(ConditionalRandom Field 条件随机场),MRF(MarkovRandom Field 马尔科夫随机场)。
NN(Neural Network神经网络):
ANN(Artificial Neural Network 人工神经网络),BP(Error BackPropagation 误差反向传播)
Deep Learning(深度学习):
Auto-encoder(自动编码器),SAE(Stacked Auto-encoders堆叠自动编码器:Sparse Auto-encoders稀疏自动编码器、Denoising Auto-encoders去噪自动编码器、Contractive Auto-encoders 收缩自动编码器),RBM(RestrictedBoltzmann Machine 受限玻尔兹曼机),DBN(Deep Belief Network 深度信念网络),CNN(ConvolutionalNeural Network 卷积神经网络),Word2Vec(词向量学习模型)。
DimensionalityRection(降维):
LDA LinearDiscriminant Analysis/Fisher Linear Discriminant 线性判别分析/Fisher线性判别,PCA(Principal Component Analysis 主成分分析),ICA(IndependentComponent Analysis 独立成分分析),SVD(Singular Value Decomposition 奇异值分解),FA(FactorAnalysis 因子分析法)。
Text Mining(文本挖掘):
VSM(Vector Space Model向量空间模型),Word2Vec(词向量学习模型),TF(Term Frequency词频),TF-IDF(Term Frequency-Inverse DocumentFrequency 词频-逆向文档频率),MI(MutualInformation 互信息),ECE(Expected Cross Entropy 期望交叉熵),QEMI(二次信息熵),IG(InformationGain 信息增益),IGR(Information Gain Ratio 信息增益率),Gini(基尼系数),x2 Statistic(x2统计量),TEW(TextEvidence Weight文本证据权),OR(Odds Ratio 优势率),N-Gram Model,LSA(Latent Semantic Analysis 潜在语义分析),PLSA(ProbabilisticLatent Semantic Analysis 基于概率的潜在语义分析),LDA(Latent DirichletAllocation 潜在狄利克雷模型)
Association Mining(关联挖掘):
Apriori,FP-growth(Frequency Pattern Tree Growth 频繁模式树生长算法),AprioriAll,Spade。
Recommendation Engine(推荐引擎):
DBR(Demographic-based Recommendation 基于人口统计学的推荐),CBR(Context-basedRecommendation 基于内容的推荐),CF(Collaborative Filtering协同过滤),UCF(User-basedCollaborative Filtering Recommendation 基于用户的协同过滤推荐),ICF(Item-basedCollaborative Filtering Recommendation 基于项目的协同过滤推荐)。
Similarity Measure&Distance Measure(相似性与距离度量):
Euclidean Distance(欧式距离),ManhattanDistance(曼哈顿距离),Chebyshev Distance(切比雪夫距离),MinkowskiDistance(闵可夫斯基距离),Standardized Euclidean Distance(标准化欧氏距离),MahalanobisDistance(马氏距离),Cos(Cosine 余弦),HammingDistance/Edit Distance(汉明距离/编辑距离),JaccardDistance(杰卡德距离),Correlation Coefficient Distance(相关系数距离),InformationEntropy(信息熵),KL(Kullback-Leibler Divergence KL散度/Relative Entropy 相对熵)。
Optimization(最优化):
Non-constrainedOptimization(无约束优化):Cyclic VariableMethods(变量轮换法),Pattern Search Methods(模式搜索法),VariableSimplex Methods(可变单纯形法),Gradient Descent Methods(梯度下降法),Newton Methods(牛顿法),Quasi-NewtonMethods(拟牛顿法),Conjugate Gradient Methods(共轭梯度法)。
ConstrainedOptimization(有约束优化):Approximation Programming Methods(近似规划法),FeasibleDirection Methods(可行方向法),Penalty Function Methods(罚函数法),Multiplier Methods(乘子法)。
Heuristic Algorithm(启发式算法),SA(SimulatedAnnealing,模拟退火算法),GA(genetic algorithm遗传算法)
Feature Selection(特征选择算法):
Mutual Information(互信息),DocumentFrequence(文档频率),Information Gain(信息增益),Chi-squared Test(卡方检验),Gini(基尼系数)。
Outlier Detection(异常点检测算法):
Statistic-based(基于统计),Distance-based(基于距离),Density-based(基于密度),Clustering-based(基于聚类)。
Learning to Rank(基于学习的排序):
Pointwise:McRank;
Pairwise:RankingSVM,RankNet,Frank,RankBoost;
Listwise:AdaRank,SoftRank,LamdaMART;
Tool(工具):
MPI,Hadoop生态圈,Spark,BSP,Weka,Mahout,Scikit-learn,PyBrain…
❾ 推荐算法如何提前划分制造同类目日志
做推荐算法的质量工作将近一年,这一年尝试了很多东西,踩了不少坑,也对推荐的评测工作稍微有了些自己的心得,现在分享出来,希望能和做这块工作的同学一起交流、探讨,也欢迎多拍砖,多提意见。
推荐系统
目前推荐技术的应用已经非常较普及了,新闻、商品、问答、音乐,几乎都会用到推荐算法来为你呈现内容。下面是淘宝、知乎、微博三个app的推荐模型,可以看到推荐都在非常重要的位置。
在介绍推荐算法评测之前,我先简单说下推荐系统,这里我以商品为例,简单描述下推流程,让大家更明白一些,一般推荐主要包含以下步骤:
召回->打分排序->透出
召回
召回阶段通常的手段是协同过滤比较场景的i2i,u2i等这种x2x(有兴趣可以看下我写的基于itembase的推荐),也有使用embedding的方式通过向量之间的距离进行召回。以i2i为例,假如现在要针对我推荐一个商品,那么首先要找到我感兴趣的物品 ,这些数据是通过我的历史行为来进行获取,比如拿到我最近一段时间内的点击、加购、收藏、购买的物品,将这些商品做为trigger进行召回,协同算法的具体就不再这里叙述了,有兴趣可以看下链接,最终我们按照协同过滤算法算出商品之间的相似分值,然后按照一定数量进行截断,因为这里截断也是依靠分数来进行的,所以一般这一步也称粗排。这样召回截断就完成了。
打分
召回完商品后,我们需要对这些商品进行再一次的精排,这里需要用模型来预估ctr,一般情况下LR、GBDT、FM用的比较多,这里深度网络相对用的少,主要为了考虑到性能,尤其是rt,因为绝大部分的精排都是需要实时预测的,所有对耗时有一定的要求。继续说下模型预测的步骤,首先针对召回的商品进行特征的补充,例如该商品的一级类目、叶子类目(一级类目代表比较,叶子类目代表最细分的类目)、被多少用户购买等,然后再加入人的特征,例如性别、年龄、收入、对类目的偏好等,然后将这些信息做为feature,用模型进行预测,然后根据模型预测的结果进行排序,输出。
模型
打分过程中的模型是需要提前训练和部署,训练集的来源就是用户的实时行为加上用户和商品的特征。feature的构成是用户的特征和商品的特征,label则是用户是否点击了该商品。
质量方案
接下来说下如何保证这块的质量。由于推荐系统最终对用户需要提供实时的服务化,因此免不了有工程端的技术需要一起配合。因此我这块主要分为两个维度来开展,一方面是工程端的质量保证,一方面是算法侧的质量保证。
工程端质量
这一块可以将算法当成一个黑盒子,只把他当成一个有结果返回的接口。针对这方面前人已经有了丰富的经验,我们可以做接口的单元测试和冒烟测试,另外就是压测,在预估的qps下看rt是否满足业务方的要求,load是否过大,超时和错误的比例是否符合一定的预期。这里就不细说了,重点说说第二部分。
算法端质量
这里我再进行细分一下,分为三部分介绍:算法数据、算法模型、算法效果;
算法数据:
大家都知道算法在做训练前数据的处理部分非常的重要,有兴趣可以看下特征工程相关的内容,数据的来源,特征的构造,数据抽取、加工整个的过程都有可能会出现错误,而且数据一般都是存储在分布式系统数据库里,因此需要借助类似hive这样的工具将sql转换成MapRece的任务去进行离线的计算,离线任务的产出通常会耗费不少的时间,而对于一些日更新的模型通过对数据对产出时间有一定的要求。因此数据这块最主要的保证点为:数据本身的质量,和数据的产出时间。数据本身的质量一般可以通过数据大小的整体抖动,以及关键字段是否为空,主键是否重复,做法比较简单可以通过简单sql或者udf来完成,然后借助工程能力做到预警、检查、出报表等。
算法模型:
模型的本身在迭代过程中也是需要关注的,不过通常算法同学的训练优化也是参考这些指标,所以我们也可以把这几个指标做为模型本身好坏的评估。具体为:准确率、召回率、AUC。
算法效果:
那么这个算法推荐出的效果究竟好不好呢,这个是一个非常主观的事情,每个人的感受也不是一样的,但是我们仍然要衡量它的好坏,这里我参考业内学者的推荐书籍以及自己的一些摸索,总结出下面一些方法,供大家参考。
人工评测:
顾名思义,邀请一帮人来对你的推荐系统的结果进行评测。这里想法来自于我在做翻译评测时期的经验,首先这个成本比较高,另外就是参杂了人的主观性非常的高,翻译的好坏我们可以通过制定一些细致的规则来进行约束,但是推荐的好坏我们却不好制定详细的规则,另外就是推荐之前的用户行为如何模拟,如何让评测者进行感知,这些都是比较难的,并且和基准的对比也不是很好做,所以这里不是很推荐用这个方法,但是还是要提一下。
指标评估:
指标化推荐结果,也就是将推荐的结果用不同的指标来进行说明,通过这些指标,你可以更加的了解你的推荐系统,部分指标不一定越高越好,但是你需要让它保持在一定的范围内。说到具体的例子的时候,我会提一下。下面我们看下这些指标。
覆盖率
定义:
推荐系统能够推荐出来的“商品/类目”占“总商品/类目”集合的比例。假设系统的用户集合为U,推荐系统给每个用户推荐一个长度为N的物品列表R(u) ,总物品为N。那么:
覆盖率 = ΣR(u)N
Σ
R
(
u
)
N
意义:
描述推荐结系统对物品长尾发掘能力;
举个例子,淘宝上商品千千万万,推荐系统能否保证让新的一些商品有足够的机会曝光出去呢?还是有些商品永远都无法得到推荐曝光的机会。这个指标反应的就是这个情况,显然物品的覆盖率是达不到100%的,但是我们可以看类目的覆盖率来进行衡量,假设全网所有的一级大类目一共2千个(和全网上亿的物品相比非常的少),那么推荐系统一天之内推荐出去的商品对应的一级类目,这个就是我们要衡量的标准。如果覆盖率