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

2023-12-02 11:18

本文主要是介绍推荐系统常用术语 [ACM暑校],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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暑校]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/445130

相关文章

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

Python中操作Redis的常用方法小结

《Python中操作Redis的常用方法小结》这篇文章主要为大家详细介绍了Python中操作Redis的常用方法,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解一下... 目录安装Redis开启、关闭Redisredis数据结构redis-cli操作安装redis-py数据库连接和释放增

MySql9.1.0安装详细教程(最新推荐)

《MySql9.1.0安装详细教程(最新推荐)》MySQL是一个流行的关系型数据库管理系统,支持多线程和多种数据库连接途径,能够处理上千万条记录的大型数据库,本文介绍MySql9.1.0安装详细教程,... 目录mysql介绍:一、下载 Mysql 安装文件二、Mysql 安装教程三、环境配置1.右击此电脑

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最