美文网首页推荐算法
[推荐系统00]概览

[推荐系统00]概览

作者: 袁一帆 | 来源:发表于2016-11-06 22:03 被阅读289次

    简书不支持目录。。。将就一下

    简书不支持目录。。。

    推荐系统概览

    推荐系统三个基本对象

    推荐系统需要的三类数据源:物品,用户,事务

    物品:关注物品集的属性和特征
    用户:关注用户基本属性,年龄,性别等
    事务:用户的行为记录,分为显示行为和隐式行为


    推荐系统的分类

    • 基于内容 (content-based)
      • 为用户推荐与过去兴趣相似的物品,物品的相似性是基于被比较物品的特征来计算的
    • 协同过滤(CF:collaborative filtering)
      • 找到与用户相似的品味的用户,将相似用户过去喜欢的物品推荐给用户
    • 基于人口统计(demographic)
      • 基于人口统计信息,不同的人群对用不同的推荐
    • 基于知识(knowledge-based)
      • 根据特定领域的知识进行推荐,所谓知识就是关于确定物品哪些特征能满足用户需要和偏好
    • 基于社区
      • 根据用户“近邻”的偏好进行推荐,也叫社会化推荐系统,利用用户社会关系和“近邻”的偏好推荐,结果基于用户“近邻”的评分等
    • 混合推荐系统
      • 不同推荐方法组合,例如协同过滤的冷启动问题可以用基于内容的推荐弥补

    推荐系统的评价标准

    • 覆盖率
    • 冷启动
    • 信心度
    • 可信度
    • 新颖度
    • 风险度
    • 惊喜度

    推荐解释

    如何让推荐系统可信任,可解释,有说服力

    1. 透明度:说明系统如何工作
    2. 可反馈性:允许用户报错
    3. 信任:增加用户对系统信心
    4. 有效性:帮助用户做好的决定
    5. 说服力:说服用户购买或尝试
    6. 高效性:帮用户快速抉择
    7. 满意度:增加用户体验舒适性和趣味

    推荐系统与数据挖掘


    涉及数据挖掘内容概览

    数据挖掘大致分3个步骤:数据预处理数据分析结果解释

    数据预处理

    数据就是一组对象以及对应属性的集合
    对象等同于:记录,物品,得分,样本,观测值,实例
    属性等同于:变量,字段,特征,特性

    1.相似度度量

    1.1 欧几里得距离

    Paste_Image.png

    n是维度,Xk和Yk是第k和特征值

    1.2 闵可夫斯基距离

    Paste_Image.png

    是欧氏距离的推广
    r=1:曼哈顿距离,L1范数
    r=2:欧几里得距离,L2范数
    r=∞:上确界,任意维度对象属性间的最大距离

    1.3. 马氏距离

    Paste_Image.png

    δ是协方差矩阵

    1.4. 夹角余弦值

    Paste_Image.png

    ⋅代表点积,∥x∥是向量x的长度
    也叫余弦相似度,L2范数

    1.5. 皮尔逊相关度

    Paste_Image.png

    利用x,y的协方差和标准差$\delta$ 进行计算

    1.6. 简单匹配系数

    Paste_Image.png

    只对应二进制属性

    1.7. Jaccard系数

    Paste_Image.png

    一般情况,推荐系统预测精确度不太受相似度度量方法的影响(ACM论文的实验)

    2.抽样

    • 从大数据集中选取子集的技术,因为处理全部数据开销太大
    • 也用于创建训练数据和测试数据时候使用
    • 最简单情况使用随机抽样
    • 常用抽样方法是无取代抽样,就是不放回的拿
    • 分离训练集测试集一般8:2

    交叉验证

    交叉验证(Cross-validation),执行多次测试集训练集分离,训练模型评价模型,求评价精度
    10折交叉验证(10-fold cross validation),将数据集分成十份,轮流将其中9份做训练1份做验证,10次的结果的均值作为对算法精度的估计,一般还需要进行多次10折交叉验证求均值


    有事抽样基于最近时间,或者按照评分比例抽样,根据具体情况进行一些控制

    3.降维

    推荐系统的2个大问题:稀疏和维度灾难,解决方法:降维

    3.1 主成分分析(PCA)

    能根据最小平方误差计算出变化最大的值,得到一组有序的成分列表。第一个成分的变化量比第二个成分的大,最后可以根据忽略对变化贡献小的成分来降低维度

    PCA的限制

    • 假设数据集是已线性合并为基础的数据集(有对应非线性的PCA变种算法)
    • 原始数据符合高斯分布

    3.2 奇异值分解

    目标是发现低维特征空间,这个空间中每个成分都是可以计算的

    • $\lambda$是对角矩阵,元素是奇异值,正定,按照降序排列
    • 可以通过控制$\lambda$矩阵的秩来决定降维的力度

    SVD可以发现用户和产品的潜在关系。方法是利用平均分填充用户-物品矩阵,然后进行SVD分解,然后直接计算预测值,根据预测结果来丰富kNN等方法的邻居信息

    矩阵分解的方法还有MF,NNMF等,其基本思想都是把评分矩阵分解为2个部分,一部分包含描述用户的特征,另一部分包含描述物品的特征

    后面再介绍基于SVD的增量学习等技术

    3.3 去噪

    噪音数据有缺失数据,异常数据等形式
    去噪目的是在最大化信息量的同时去掉不必要的影响

    数据分析

    1.分类

    这里列举一下推荐系统常见的分类算法,不细致讨论算法细节

    1.1 最近邻

    原理:根据最近的K个点的标签来决定数据的标签
    优点是KNN的概念和CF的邻居很相关,而且不需要训练而合维护一个模型,能适应评分矩阵的剧烈变化
    缺点显而易见,每次预测都需要计算每个点的距离

    1.2 决策树

    常见数的树算法:CART,ID3,C4.5,SLIQ,SPRINT
    决策树的重点在于决策节点的划分,找到不纯度减少最多的点,衡量不纯度的方法:信息增益,基尼指数,熵,误分类误差等
    优点是结果好解释,构建树代价小

    1.3 基于规则分类

    可以从树模型里面提取规则,再根据规则进行分类

    1.4 贝叶斯

    利用概率来代表从数据中学习到的关系的不确定性
    模型得到的概率是先验概率和似然值的乘积,先验代表了观测数据之前的经验,期望,似然值部分代表了数据的影响
    朴素贝叶斯假设特征间概率独立,好处是受孤立噪音点,和不相关特征的影响小,缺点是独立的假设对于相关属性不成立
    解决特征依赖的方法是贝叶斯信念网BBN,利用非循环图表达属性的依赖关系

    1.5 人工神经网络

    神经网络做分类,可以做非线性分类任务

    1.6 支持向量机

    找到分类平面,这个平面使间隔最大化,结构风险最小化

    1.7 分类器集成

    Bagging,Boosting

    1.8 评估分类器

    有量化评分的结果,均方误差MAE,均方根误差RMSE
    把推荐看做分类的情况,准确率,召回率,F值,ROC,AUC

    2.聚类

    聚类可以在计算近邻之前先把类似的划分到一起,从而提高效率,但是提高效率和降低精度要衡量

    聚类主要分为2个类别,分层和划分
    划分:把数据划分成非重合的聚类,每个数据都确定的属于一个类别
    分层:在已知聚类上继续聚合物品,嵌套的层级树

    2.1 k-means

    缺陷:选k值需要先验知识;聚类对初始点敏感;异常值敏感;会产生空聚类
    可以利用k-means作为预处理构造邻居

    2.2 DBSCAN

    基于密度进行聚类。核心点:给定距离内有一定数量邻居的点;边界点:没有超过一定数量邻居,但是属于核心点邻居的点;噪声点:核心点边界点以外的点
    利用消息传递算法,是基于图聚类的方法

    3.关联规则挖掘

    • 关联规则发现的规则只意味着共同出现,并没有因果关系
    • 利用支持度和置信度对规则进行筛选
    • 先根据支持度生成物品集(频繁项集生成),再从频繁项集里面产生高置信度规则

    相关文章

      网友评论

        本文标题:[推荐系统00]概览

        本文链接:https://www.haomeiwen.com/subject/gpunuttx.html