1. 推荐系统

推荐系统相当于信息的“过滤器”,它旨在解决信息过载的问题,帮助人们更好地作出决策。它的主要原理是根据用户过去的行为(比如购买、评分、点击等)来建立用户兴趣模型,之后利用一定的推荐算法,把用户最可能感兴趣的内容推荐给用户,如下图:

  • 召回(recall)

从海量(数千万)item中粗选出几百或者上千的候选集的过程,可以理解为向用户粗选一批待推荐的商品。

  • 排序(sort)

从召回的上千候选集中,预测出用户的点击概率,以此排序,给出最终向用户推荐的结果集。

2. 数据基础

  • 用户数据(user)

用来建立用户模型的数据,因不同推荐算法而不同,典型的数据包括用户兴趣点、用户profile、用户的社交好友关系等。

  • 内容数据(item)

用来描述被推荐内容主要属性的数据,这些属性都是跟具体的内容相关的,如一部电影的导演、演员、类型和风格等。

  • 用户-内容数据(user-item)

用户-内容交互是指反映用户与内容内在联系的数据,分为隐式和显式两种;显式主要是指评价、打分、购买等能明显反映用户对内容兴趣的交互数据,隐式指的是用户的点击、搜索记录等间接反映用户对内容兴趣的交互数据

3. 相关算法

  • 基于内容的推荐(Content-based)

根据用户过去喜欢的内容而推荐相似的内容。

  • 基于协同过滤的推荐(Collaborative Filtering,CF)

根据与当前用户相似的用户的兴趣点,给当前用户推荐相似的内容。

  • 基于人口统计学的推荐(Demographic-based)

根据用户共同的年龄、地域等人口统计学信息进行共同的推荐。

  • 基于知识的推荐(Knowledge-based)

根据对用户和内容的特定领域知识,给特定的用户推荐特定的内容。

  • 基于团体的推荐(Community-based)

根据用户的社交好友关系,给用户推荐其好友感兴趣的内容。

  • 混合推荐(Hybrid Recommender System)

4. 数据预处理相关

推荐系统相关的数据预处理技术除了通常的归一化、变量替换等以外,最主要的是相似度计算、抽样和维度约减。

4.1 相似度计算

相似度通常有两种衡量方式,一是直接计算相似度,二是计算距离,距离是本质上是相异程度的度量,距离越小,相似度越高。

  • 相似度计算

余弦相似度(其几何意义就是两个向量的空间夹角的余弦值,取值范围在-1到1之间。取值为-1表示完全相反,取值为1表示完全相同,其余值表示介于二者之间)、皮尔逊相关系数(意义是两个随机变量x和y之间的线性相关性,取值范围在-1和1之间。-1表示负线性相关,1表示正线性相关,其余值表示介于二者之间)、Jaccard相关系数(用于集合相似度的一种方式)。

  • 距离度量

欧几里得距离(Euclidean Distance)、曼哈顿距离(Manhattan Distance)、切比雪夫距离(Chebyshev Distance)、闵可夫斯基距离(Minkowski Distance)、标准化欧氏距离(Standardized Euclidean Distance)、马哈拉诺比斯距离(Mahalanobis Distance)

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. 数据挖掘-分类

分类是数据挖掘的主要内容,方法众多,各自都有不同数据假设和理论支持。这里简单列举最有代表性的一些算法。

  • KNN(K-nearest Neighbor)

KNN是最容易理解的分类器,它不训练任何模型。当有一个未知样本需要预测时,它从已知样本中找到与这个未知样本距离最近的K个点,根据这K个点的类别来预测未知样本的类别。它最主要的不足在于它需要的样本量非常大,同时因为它没有任何训练的模型,每一次预测都要计算k次距离,计算量非常大

  • 决策树(Decision Tree)

决策树将分类过程抽象为一颗树,它通过最大化信息增益的方式对树的分支进行划分,最终通过设置不纯度的阈值来停止树的划分,形成最终的决策树。它的主要优点在于模型的训练和预测都非常快,不足在于模型的精度有时会低于其它分类器。不过,通过集群学习(ensemble learning)的方式能够极大的克服这一点,如采用bagging思想的random forest和采用boosting思想的GBDT,都是决策树的延伸,它们综合多棵决策树的分类结果来组合出更精确的分类器。

  • 基于规则的分类器(Rule-based Classifier)

基于规则的分类器通常都是利用“如果…则…”一类的规则来进行分类。其适用性有限,且要获得靠谱的规则比较困难,一般用的较少。

  • 贝叶斯分类器(Bayes classifier)

贝叶斯分类器其实是一类分类器,主要是利用贝叶斯公式,通过估计先验概率和似然概率,并利用一部分先验信息,来计算给定样本的各维度数据值的情况下,样本属于某个类别的概率。

  • 人工神经网络(Artificial Neural Network,ANN )

不必多言,当下最火效果最好的分类器。

  • 支持向量机(Support Vector Machine, SVM)

支持向量机是线性分类器的代表。与贝叶斯分类器先估计概率密度然后计算判别函数不同,线性分类器都是直接估计线性判别式,并最小化某个目标函数,利用某种凸优化方法求解得到最终的线性判别式。这是最流行的分类器之一,通常认为它训练、预测速度快,而且精度靠谱,所以在各种领域广泛使用。

  • 集成学习(Ensemble Learning)

集合若干个弱分类器来组合成一个强分类器,通常有bagging和boosting两种思路。

6. 分类器性能评估

  • Precision-recall:准确率-召回率,根据混淆矩阵计算
  • F1:结合准确率-召回率的一个综合指标
  • ROC:直观的曲线比较分类器性能
  • AUC:ROC的定量化表达
  • MAE:平均绝对误差
  • RMSE:平均根方误差

推荐系统常用术语 [ACM暑校]相关推荐

  1. Collaborative Filter - Data Mining基础(ACM暑校)

    2003年,Amazon公司的Linden.Smith.York大佬刊发了一篇名为<Item-to-Item Collaborative Filtering>的文章:这篇文章首次解释了Am ...

  2. 基于内容推荐系统中的常识 [ACM暑校]

    How to represent content to improve information access and build a new generation of services for us ...

  3. 协同滤波模型的推荐算法(ACM暑校-案例学习)

    基于协同滤波的推荐技术可以细分为基于用户的协同过滤方法.基于产品的协同过滤方法.基于模型的协同过滤方法:本博文进行了一一测试. 1. 数据准备.评价指标 由于协同滤波模型需要用到用户的行为,这里选用M ...

  4. 混合模型的推荐算法(ACM暑校-案例学习)

    单纯使用基于内容.基于知识或者协同滤波的推荐引擎已经越来越少了. 因为,基于内容的推荐技术面临"过度个性化缺少惊喜度"的缺点.基于协同过滤的推荐技术面临"冷启动" ...

  5. 基于内容的推荐(ACM暑校-案例学习)

    基于知识的推荐系统,根据发行时间.题材和持续时间进行电影推荐.这些系统非常简单,推荐系统没有充分考虑到个人用户的偏好.由于基于知识的推荐系统确实考虑了用户对题材.发行时间和持续时间的偏好,基于知识的推 ...

  6. 机器学习常用术语词汇表

    EOF是一个计算机术语,为End Of File的缩写 ,在操作系统中表示资料源无更多的资料可读取. 刚接触机器学习框架 TensorFlow 的新手们,这篇由 Google 官方出品的常用术语词汇表 ...

  7. 超全汇总!机器学习常用术语词汇表

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 刚接触机器学习框架 TensorFlow 的新手们,这篇由 Goo ...

  8. 【机器学习基础】超全汇总!机器学习常用术语词汇表(建议收藏)

    刚接触机器学习框架 TensorFlow 的新手们,这篇由 Google 官方出品的常用术语词汇表,一定是你必不可少的入门资料!本术语表列出了基本的机器学习术语和 TensorFlow 专用术语的定义 ...

  9. 机器学习常用术语超全汇总

    点击关注|设为星标|干货速递 刚接触机器学习框架 TensorFlow 的新手们,这篇由 Google 官方出品的常用术语词汇表,一定是你必不可少的入门资料!本术语表列出了基本的机器学习术语和 Ten ...

最新文章

  1. linux实现机器之间的账号免密登陆
  2. slowfast解读:用于计算机视觉视频理解的双模CNN
  3. 移动端UC /QQ 浏览器的部分私有Meta 属性
  4. python如何使用字典_Python-如何使用点“。” 访问字典成员?
  5. java 复制字段_java - 在构造函数中按字段复制字段 - 我需要一个更简洁的形式 - SO中文参考 - www.soinside.com...
  6. datagrid底部显示水平滚动_看完《惊奇队长》等彩蛋,我想到了一个制作PPT滚动字幕的方法...
  7. 软件设计师1991下午试题1(流程图解析)
  8. Spring Cloud学习(一)
  9. 如何使页面POSTBACK后,仍然显示原来的显示位置
  10. 前端实现街道地图_webgis前端地图功能展示
  11. java继承有哪些_Java中的继承类型有哪些
  12. 真实如刀的洞见:和扶墙老师聊技术、组织和商业
  13. java指定小数点位数_Java指定保留小数位数的方法
  14. epub 格式转换成 mobi
  15. 天平游码读数例题_托盘天平游码读数方法及使用口诀 | | 化工资讯网
  16. 工具篇 | 获取邮箱的登陆授权码
  17. 推荐几款个人灰常喜欢的vscode 主题
  18. Linux应用开发【第九章】GPIO编程应用开发
  19. 解决:Anaconda创建虚拟环境时出现An HTTP error occurred when trying to retrieve this URL.anaconda
  20. 搜狗浏览器打不开网页的解决方法

热门文章

  1. 实验十——一维数组的定义及引用
  2. 实践编译LINUX0.11源码,感觉真爽。
  3. 陈灯可重用代码段管理器(插件版最新版本:3.2;桌面版最新版本:2.3)
  4. 在web项目中的类库中引用webservice 在部署后更改webservice路径的方法
  5. poj-1284(Primitive Roots)(欧拉函数运用)
  6. Oracle复杂查询21道题精析
  7. springboot中controller单例模式多线程安全的简单理解
  8. eayUi panel实现上一页下一页
  9. 【LuoguP33294123】[ZJOI2011]最小割[CQOI2016]不同的最小割
  10. Hive Sql 时间格式化处理