• 机器学习之推荐系统


    我们从一个例子开始定义推荐系统的问题。
    假使我们是一个电影供应商,我们有 5 部电影和 4 个用户,我们要求用户为电影打分。

    基于内容的推荐系统

    在一个基于内容的推荐系统算法中,我们假设对于我们希望推荐的东西有一些数据,这 些数据是有关这些东西的特征。
    在我们的例子中,我们可以假设每部电影都有两个特征,如 x1 代表电影的浪漫程度,x2 代表电影的动作程度。

    其中 i:r(i,j)表示我们只计算那些用户 j 评过分的电影。在一般的线性回归模型中,误差 项和归一项应该都是乘以1/2m,在这里我们将m去掉。并且我们不对方差项θ0 进行归一 化处理。

    上面的代价函数只是针对一个用户的,为了学习所有用户,我们将所有用户的代价函数 求和:

    协同过滤
    在之前的基于内容的推荐系统中,对于每一部电影,我们都掌握了可用的特征,使用这 些特征训练出了每一个用户的参数。相反地,如果我们拥有用户的参数,我们可以学习得出 电影的特征。

    注:在协同过滤从算法中,我们通常不使用方差项,如果需要的话,算法会自动学得。 协同过滤算法使用步骤如下:
    1. 初始 x(1),x(2),...,x(nm),θ(1),θ(2),...,θ(nu)为一些随机小值
    2. 使用梯度下降算法最小化代价函数
    3. 在训练完算法后,我们预测(θ(j))Tx(i)为用户 j 给电影 i 的评分

    通过这个学习过程获得的特征矩阵包含了有关电影的重要数据,这些数据不总是人能读
    懂的,但是我们可以用这些数据作为给用户推荐电影的依据。 例如,如果一位用户正在观看电影 x(i),我们可以寻找另一部电影 x(j),依据两部电影的
    特征向量之间的距离||x(i)x(j)||的大小。

    向量化:低秩矩阵分解
    在上几节视频中,我们谈到了协同过滤算法,本节视频中我将会讲到有关该算法的向量 化实现,以及说说有关该算法你可以做的其他事情。

    举例子:
    1.当给出一件产品时,你能否找到与之相关的其它产品。
    2.一位用户最近看上一件产品,有没有其它相关的产品,你可以推荐给他。

    我将要做的是:实现一种选择的方法,写出协同过滤算法的预测情况。
    我们有关于五部电影的数据集,我将要做的是,将这些用户的电影评分,进行分组并存
    到一个矩阵中。

    我们有五部电影,以及四位用户,那么 这个矩阵 Y 就是一个 5 行 4 列的矩阵,它将这
    些电影的用户评分数据都存在矩阵里:

    均值归一化


    然后我们利用这个新的 Y 矩阵来训练算法。如果我们要用新训练出的算法来预测评分, 则需要将平均值重新加回去,预测(θ(j))T(x(i))+μi 对于Eve,我们的新模型会认为她给每部电影 的评分都是该电影的平均分。

  • 相关阅读:
    JavaFX学习曲线日记2:声明用户接口
    深入学习JavaFX脚本语言
    JavaFX学习曲线日记2:声明用户接口
    JavaFX学习曲线日记1:探索JavaFX脚本
    深入学习JavaFX脚本语言
    略谈数学中的映射在其它领域的踪迹
    Using Swing's Pluggable Look and Feel
    JavaFX学习曲线日记1:探索JavaFX脚本
    赖勇浩:应对多核编程革命
    Using Swing's Pluggable Look and Feel
  • 原文地址:https://www.cnblogs.com/jjx2013/p/6223556.html
Copyright © 2020-2023  润新知