zoukankan      html  css  js  c++  java
  • 推荐系统(Recommender System)

    推荐系统(Recommender System)

    案例

    • 为用户推荐电影

    数据展示

    Bob Tom Alice Jack 动作成分 浪漫成分
    Movie1 5 ? 0 3 ? ?
    Movie2 ? 0 3 ? ? ?
    Movie3 0 1 0 5 ? ?
    Movie4 ? 4 1 0 ? ?

    算法

    • 协同过滤算法(Collaborative filter learning algorithm)

    记号

    • (n_m): 数据中电影的数量, 其中n表示number, m表示movie
    • (n_u): 数据中用户的数量, 其中n表示number, u表示user
    • (i): 表示第i部电影
    • (j): 表示第j位用户
    • (y^{(i, j)}): 第j位用户对第i部电影的评分, 我们发现在原始数据中有?, 表示用户没有看过, 不能评分, 这里对应的(y^{(i, j)})为0, (y^{(i, j)})需要配合下一个(r)记号
    • (r^{(i, j)}): 第j位用户是否看过第i部电影, 如果看过则为1, 没有则为0, 其中r表示rate
    • (x^{(i)}): 第i部电影的特征向量
    • ( heta^{(j)}): 第j位用户的权重
    • (x_k^{(i)}): 第i部电影的第k个特征向量
    • ((i,j):r(i,j)=1), 表示取使得(r(i,j)=1)((i,j))

    步骤

    • 对每一部电影的评分进行去中心化, 得到去中心化的数据以及均值, 在去中心化的过程中忽略评分为?的数据
    • 随机初始化(X)(Theta)
    • 计算损失函数$$J(x^{(i)}, ..., x{(n_m)}, heta{(j)}, ..., heta{(n_u)})={1over{2m}}sum_{(i,j):r(i,j)=1}(( heta{(i)})Tx{(i)}-y{(i,j)})2+{lambdaover2}sum_{i=1}{n_m}sum_{k=1}n(x_k{(i)})2+{lambdaover{2}}sum_{j=1}{n_u}sum_{k=1}{n}( heta_k{(j)})2$$
    • 求解$$min_{x^{(i)}, ..., x{(n_m)}, heta{(j)}, ..., heta{(n_u)}}J(x{(i)}, ..., x{(n_m)}, heta{(j)}, ..., heta^{(n_u)})$$
    • 梯度
      • [x_k^{(i)}:=x_k^{(i)}-alpha(sum_{j:r(i,j)=1}(( heta^{(j)})^T)-y^{(i,j)}) heta_k^{(i,j)}+lambda x_k^{(i)}) ]

      • [ heta_k^{(j)}:= heta_k^{(j)}-alpha(sum_{i:r(i,j)=1}(( heta^{(i)})^T-y^{(i,j)})x_k^{i}+lambda heta_k^{(j)}) ]

    Matlab实现CostFunction关键部分

    %此处, 虽然有一些用户没有对一些电影做出评价, 但是Y仍然为0, 在下一个J的赋值语句中, 通过R计算出符合要求的J
    J = (X * Theta' - Y) .^ 2;
    
    J = (1 / 2) * sum(sum(J .* R)) + (lambda / 2) * sum(sum(X .^ 2)) + (lambda / 2) * sum(sum(Theta .^ 2));
    
    X_grad = ((X * Theta' - Y) .* R) * Theta + lambda * X;
    Theta_grad = ((X * Theta' - Y) .* R)' * X + lambda * Theta;
    
  • 相关阅读:
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第8章 读书笔记(待更新)
    Webpack 2 视频教程 007
    Hie with the Pie
    P4550 收集邮票
    Bloodsucker
    P2627 [USACO11OPEN]Mowing the Lawn G
    SP1026 FAVDICE
    HDU4405 Aeroplane chess
    Card Collector
    LOOPS(概率dp)
  • 原文地址:https://www.cnblogs.com/megachen/p/10542368.html
Copyright © 2011-2022 走看看