本周内容较多,故分为上下两篇文章。
本文为下篇。

一、内容概要

1. Anomaly Detection

  • Density Estimation

    • Problem Motivation
    • Gaussian Distribution
    • Algorithm
  • Building an Anomaly Detection System(创建异常检测系统)
    • Developing and Evaluating an Anomaly Detection System
    • Anomaly Detection vs. Supervised Learning
    • Choosing What Features to Use
  • Multivariate Gaussion Distribution(多元高斯分布)
    • Multivariate Gaussion Distribution
    • Anomaly Detection using the Multivariate Gaussion Distribution

      2. Recommender System

  • Predicting Movie
    • Problem Formulation
    • Content Based Recommendations
  • Collaborative Filtering(协同过滤)
    • Collaborative Filtering
    • Collaborative Filtering Algorithm
  • Low Rank Matrix Factorization(低秩矩阵分解)
    • Vectorization(向量化): Low Rank Matrix Factorization
    • Implementational Detail:Mean Normalization
    • 二、重点&难点

Recommender System(推荐系统)

1.Predicting Movie

1)Problem Formulation

下面将以推荐电影为例来介绍推荐系统的实现。

movie Alice Bob Carol Dave
Love at last 5 5 0 0
Romance forever 5 ? ? 0
Cute Puppies of love ? 4 0 ?
nonstop car chases 0 0 5 4
swords & karate 0 0 5 ?

上面的分数表示用户对该电影的评分(0~5分,?表示未获得评分数据)
为方便下面叙述,对如下符号进行说明:

  • \(n_u\):表示用户数量
  • \(n_m\):表示电影数量
  • r(i,j):如果等于1则表示用户j对电影i进行了评分
  • \(y^{(i,j)}\):表示用户j对电影i的评分

上面例子中可以知道 \(n_u=4 \quad n_m=5 \quad y^{(1,1)}=5\)

2)Content Based Recommendations(基于内容的推荐)

  • 1.获取特征向量
    为了实现推荐,我们为每部电影提取出了两个特征值,即x1(浪漫指数)和x2(动作指数)
movie Alice Bob Carol Dave x1 x2
Love at last 5 5 0 0 0.9 0.1
Romance forever 5 ? ? 0 1.0 0
Cute Puppies of love ? 4 0 ? 0.99 0.01
nonstop car chases 0 0 5 4 0.1 0.9
swords & karate 0 0 5 ? 0 1.0

由上表可知每部电影都可以用一组特征向量表示:

  • 每一步电影都加上一个额外的特征,即 \(x_0=1\)
  • 每部电影都有一个(3,1)的特征向量,例如第一部电影(Love at last):\(x^{(1)}=[1,0.9,0.1]^T\)
  • 对于所有数据我们有数据特征向量组为\(\{x^{(1)},x^{(2)},x^{(3)},x^{(4)},x^{(5)}\}\)

  • 2.特征权重θ
    用户j对电影i的评分预测可以表示为\((θ^j)^Tx^i=stars\)

  • 3. 线性回归预测

和线性回归一样,可以得到如下优化目标函数:

  • 对单个用户而言

\[\min_{θ^{(j)}}\frac{1}{2}\sum_{i;r(i,j)=1}((θ^{(j)})^Tx^{(i)}-y^{(i,j)})^2 + \frac{λ}{2}\sum_{k=1}^n (θ_k^{(j)})^2 \]

  • 对所有用户而言

\[\min_{θ^{(1)},...,θ^{(n_u)}}\frac{1}{2}\sum_{j=1}^{n_u}\sum_{i:r(i,j)=1}((θ^{(j)})^Tx^{(i)}-y^{(i,j)})^2 + \frac{λ}{2}\sum_{j=1}^{n_u}\sum_{k=1}^n (θ_k^{(j)})^2 \]

应用梯度下降:

\[当k=0,θ_k^{(j)}:=θ_k^{(j)}-α\sum_{i:r(i,j)=1}( (θ^{(j)})^Tx^{(i)}-y^{(i,j)} )x_k^{(i)}\]
\[当k≠0,θ_k^{(j)}:=θ_k^{(j)}-α\sum_{i:r(i,j)=1}( (θ^{(j)})^Tx^{(i)}-y^{(i,j)} )x_k^{(i)}+λθ_k^{(j)}\]

2.Collaborative Filtering(协同过滤)

1)Collaborative Filtering

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

\[\min_{θ^{(1)},...,θ^{(n_m)}}\frac{1}{2}\sum_{j=1}^{n_u}\sum_{i:r(i,j)=1}((θ^{(j)})^Tx^{(i)}-y^{(i,j)})^2 + \frac{λ}{2}\sum_{j=1}^{n_m}\sum_{k=1}^n (θ_k^{(j)})^2 \]

注意累计符号的上限由\(n_u\)变成了\(n_m\)

但是如果我们既没有用户的参数也没有电影的特征该怎么办?这时协同过滤就可以起作用了,只需要对优化目标函数进行改进,如下:

\[J(x^{(1)},...,x^{(n_m)},θ^{(1)},...,θ^{(n_u)}) = \frac{1}{2}\sum_{(i,j):r(i,j)=1}((θ^{(j)})^Tx^{(i)}-y^{(i,j)})^2 \\ \quad\quad\quad\quad\quad\quad\quad +\frac{λ}{2}\sum_{j=1}^{n_u}\sum_{k=1}^n (θ_k^{(j)})^2 \\ \quad\quad\quad\quad\quad\quad\quad+ \frac{λ}{2}\sum_{i=1}^{n_m}\sum_{k=1}^n (x_k^{(i)})^2\]

对代价函数求偏导结果如下:
\[x_k^{(i)} := x_k^{(i)} - α(\sum_{j:r(i,j)=1}( (θ^{(j)})^Tx^{(i)}-y^{(i,j)} )θ_k^{(j)} +λx_k^{(i)} ) \]
\[θ_k^{(j)} := θ_k^{(j)} - α(\sum_{i:r(i,j)=1}( (θ^{(j)})^Tx^{(i)}-y^{(i,j)} )x_k^{(i)} +λθ_k^{(j)} ) \]

协同过滤算法使用步骤如下:

  1. 初始 x (1) ,x (2) ,...,x (\(n_m\)) ,θ (1) ,θ (2) ,...,θ (\(n_u\)) 为一些随机小值
  2. 使用梯度下降算法最小化代价函数
  3. 在训练完算法后,我们预测\((θ ^{(j)} )^ T x^{ (i)}\) 为用户 j 给电影 i 的评分

3. Low Rank Matrix Factorization(低秩矩阵分解)

1)Vectorization(向量化): Low Rank Matrix Factorizationv

movie Alice Bob Carol Dave
Love at last 5 5 0 0
Romance forever 5 ? ? 0
Cute Puppies of love ? 4 0 ?
nonstop car chases 0 0 5 4
swords & karate 0 0 5 ?

(同样的例子)很显然我们可以得到评分矩阵Y
\[Y= \left[ \begin{array}{cccc} 5&5&0&0 \\ 5&?&?&0 \\ ?&4&0&? \\ 0&0&5&4 \\ 0&0&5&0 \\ \end{array} \right] \]

推出评分
\[ \begin{pmatrix} (θ^{(1)})^T(x^{(1)}) &(θ^{(2)})^T(x^{(1)})& \cdots & (θ^{(n_u)})^T(x^{(1)}) \\ (θ^{(1)})^T(x^{(2)}) &(θ^{(2)})^T(x^{(2)})& \cdots & (θ^{(n_u)})^T(x^{(2)}) \\ \vdots & \vdots& \ddots & \vdots \\ (θ^{(1)})^T(x^{(n_m)}) &(θ^{(2)})^T(x^{(n_m)})& \cdots & (θ^{(n_u)})^T(x^{(n_m)}) \\ \end{pmatrix} \]

如何寻找与电影i相关的电影j呢?满足\(||x^{(i)}-x^{(j)}||\)较小的前几部影片即可。

2)Implementational Detail:Mean Normalization

假如增加了一个用户marsggbo,他很单纯,这5部电影都还没看过,所以没有评分数据,这是可以通过均值正则化来初始化数据,具体实现如下:

movie Alice Bob Carol Dave Marsggbo
Love at last 5 5 0 0
Romance forever 5 ? ? 0
Cute Puppies of love ? 4 0 ?
nonstop car chases 0 0 5 4
swords & karate 0 0 5 ?

此时的评分矩阵为
\[Y= \left[ \begin{array}{cccc} 5&5&0&0&? \\ 5&?&?&0&? \\ ?&4&0&?&? \\ 0&0&5&4&? \\ 0&0&5&0&? \\ \end{array} \right] \]

首先求出每行的均值(未评分不用计算)
\[μ=\left[ \begin{array} 2.5 \\ 2.5 \\ 2 \\ 2.25 \\ 1.25 \end{array} \right]→ Y= \left[ \begin{array}{cccc} 2.5&2.5&-2.5&-2.5&? \\ 2.5&?&?&-2.5&? \\ ?&2&-2&?&? \\ -2.25& -2.25&2.75&1.75&? \\ -1.25&-1.25&3.75&-1.25&? \\ \end{array} \right] \]

预测值为\((θ^{(j)})^T(x^{(i)})+μ_i\),因为优没有评分。所以化目的函数只需要\(min\frac{λ}{2}\sum_{j=1}^{n_u}\sum_{k=1}^n (θ_k^{(j)})^2\),很显然\(θ=\vec0\),所以新增用户评分数据可初始化为均值,即
\[Y= \left[ \begin{array}{cccc} 5&5&0&0&2.5 \\ 5&?&?&0&2.5 \\ ?&4&0&?&2 \\ 0&0&5&4&2.25 \\ 0&0&5&0&1.25 \\ \end{array} \right] \]


MARSGGBO♥原创


2017-8-14

转载于:https://www.cnblogs.com/marsggbo/p/7429286.html

Andrew Ng机器学习课程笔记--week9(下)(推荐系统协同过滤)相关推荐

  1. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 16—Recommender Systems 推荐系统...

    Lecture 16 Recommender Systems 推荐系统 16.1 问题形式化 Problem Formulation 在机器学习领域,对于一些问题存在一些算法, 能试图自动地替你学习到 ...

  2. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 17—Large Scale Machine Learning 大规模机器学习...

    Lecture17 Large Scale Machine Learning大规模机器学习 17.1 大型数据集的学习 Learning With Large Datasets 如果有一个低方差的模型 ...

  3. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 12—Support Vector Machines 支持向量机...

    Lecture 12 支持向量机 Support Vector Machines 12.1 优化目标 Optimization Objective 支持向量机(Support Vector Machi ...

  4. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 6_Logistic Regression 逻辑回归

    Lecture6 Logistic Regression 逻辑回归 6.1 分类问题 Classification 6.2 假设表示 Hypothesis Representation 6.3 决策边 ...

  5. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 5 Octave Tutorial

    Lecture 5 Octave教程 5.1 基本操作 Basic Operations 5.2 移动数据 Moving Data Around 5.3 计算数据 Computing on Data ...

  6. Andrew Ng机器学习课程6

    Andrew Ng机器学习课程6 说明 在前面跟随者台大机器学习基石课程和机器学习技法课程的设置,对机器学习所涉及到的大部分的知识有了一个较为全面的了解,但是对于没有动手写程序并加以使用的情况,基本上 ...

  7. Andrew Ng机器学习课程14(补)

    Andrew Ng机器学习课程14(补) 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 利用EM对factor analysis进行的推导还是要参看我的上一 ...

  8. Andrew Ng机器学习课程17(1)

    Andrew Ng机器学习课程17(1) 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:主要介绍了强化学习与监督学习的设定上的区别,以及强化学习的框架 ...

  9. Andrew Ng机器学习课程7

    回顾 通过定义训练集S={(x(i),y(i));i=1,2,...,m}与线性决策平面(w,b)之间的function margin γ^和geometric margin γ .好的分类决策平面特 ...

最新文章

  1. python结巴分词 词频统计_一个txt文档,已经用结巴分词分完词,怎么用python工具对这个分完词的文档进行计算统计词频,求脚本,非...
  2. Linux安装 微信开发者工具(deepin linux ubt)
  3. 深度揭秘Twitter的新一代流处理引擎Heron
  4. Java、Android引用类型
  5. 新的blog,将会记录我的成长历程
  6. pandas之combine_first() 合并重叠数据(修补)
  7. python的数组怎么用_python数组的使用
  8. springboot项目搭建(mybatis + thymeleaf)
  9. Linux中常用的正则表达式
  10. python开根_python如何开根号
  11. 文献阅读——梅州佛教香花的结构、文本与变体
  12. C语言分支/顺序作业总结
  13. 小米手机刷机工具MiFlash
  14. 移动云API开放平台助力开发者驰骋云端
  15. 什么是大数据(Big Data)?
  16. 云里黑白第一回——华硕mbr机械硬盘迁移到m.2固态,3秒开机
  17. 这些故事你尽管听,不奇葩算我输!
  18. 设置窗口颜色保护眼睛(win7/xp)
  19. 备考通信复试过程中的一些知识点总结梳理——信源编码
  20. Linux会产生磁盘碎片吗,Linux不需要磁盘整理:碎片的来源

热门文章

  1. 为什么人会摆高姿态_高姿态是什么意思(恋爱中的高姿态有哪些坏处
  2. 分享几个IP获取地理位置的API接口
  3. Java键盘监听器KeyListener
  4. 灰色墙面搭配白色沙发,时尚的整体质感
  5. java interop,服务器程序的Xamarin-Java.Interop体验(一)
  6. 如何判断1024!末尾有多少个0
  7. 【程序源代码】微信小程序商城管理系统(java后台+小程序)
  8. 父进程和子进程之间的关系
  9. 永倍达商城:以新技术、新业态、新模式电商服务社会
  10. 企业数字化转型的步骤是什么?