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

本文为下篇。

一、内容概要

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

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

  1. Andrew Ng机器学习课程笔记--week9(上)(异常检测&推荐系统)

    本周内容较多,故分为上下两篇文章. 一.内容概要 1. Anomaly Detection Density Estimation Problem Motivation Gaussian Distrib ...

  2. Andrew Ng机器学习课程笔记--week5(下)

    Neural Networks: Learning 内容较多,故分成上下两篇文章. 一.内容概要 Cost Function and Backpropagation Cost Function Bac ...

  3. Andrew Ng机器学习课程笔记--汇总

    笔记总结,各章节主要内容已总结在标题之中 Andrew Ng机器学习课程笔记–week1(机器学习简介&线性回归模型) Andrew Ng机器学习课程笔记--week2(多元线性回归& ...

  4. Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计

    Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7392408.h ...

  5. Andrew Ng机器学习课程笔记(五)之应用机器学习的建议

    Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.h ...

  6. Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归)

    title: Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归) tags: 机器学习, 学习笔记 grammar_cjkRuby: true --- 之前看过一遍,但是总是模 ...

  7. Andrew Ng机器学习课程笔记(四)之神经网络

    Andrew Ng机器学习课程笔记(四)之神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言 ...

  8. Andrew Ng机器学习课程笔记(三)之正则化

    Andrew Ng机器学习课程笔记(三)之正则化 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365475.html 前言 ...

  9. Andrew Ng机器学习课程笔记(二)之逻辑回归

    Andrew Ng机器学习课程笔记(二)之逻辑回归 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7364636.html 前言 ...

随机推荐

  1. MD5加密Demo

    package com.util; import java.security.MessageDigest; public class MD5 { public final static String ...

  2. React中的路由系统

    React中的路由系统 提起路由,首先想到的就是 ASPNET MVC 里面的路由系统--通过事先定义一组路由规则,程序运行时就能自动根据我们输入的URL来返回相对应的页面.前端中的路由与之类似,前端 ...

  3. jmeter问题处理随笔1 - CSV取值数据异常处理(包含"号,","号的情况)

    背景 jmeter测试中通过CSV进行用例数据的管理,在result断言中间需要使用json格式的数据,会包含 " ",",这个时候发现CSV取值会报错或者乱码 解决 用 ...

  4. (转).tar.gz文件和.rpm文件的区别

    场景:在Linux环境下安装软件时候总是会遇到安装软件格式的选择,以及安装. 1 软件的二进制分发 Linux软件的二进制分发是指事先已经编译好二进制形式的软件包的发布形式, 其优点是安装使用容易,缺 ...

  5. redis 一般性使用概述

    最近一段时间与redis接触比较频繁.发现有些东西还是工作中经常会用到的,自己也花了点时间巩固下.本篇文章主要是以总结性的方式梳理,因为redis的主题很大,任何一个技术点展开都是几篇文章的量.也可以 ...

  6. Android保存图片到本地相册

    好久没有写东西了.备份下知识吧.免得忘记了 . 首先贴一段代码 --  这个是先生成一个本地的路径,将图片保存到这个文件中,然后扫描下sd卡.让系统相册重新加载下 .缺点就是只能保存到DCIM的文 件 ...

  7. salesforce零基础学习(七十六)顺序栈的实现以及应用

    数据结构中,针对线性表包含两种结构,一种是顺序线性表,一种是链表.顺序线性表适用于查询,时间复杂度为O(1),增删的时间复杂度为O(n).链表适用于增删,时间复杂度为O(1),查询的时间复杂度为O(n ...

  8. Java大数据人才应用领域广,就业薪酬高

    互联网创造了大数据应用的规模化环境,大数据应用成功的案例大都是在互联网上发生的, 互联网业务提供了数据,互联网企业开发了处理软件,互联网企业的创新带来了大数据应用 的活跃,没有互联网便没有今天的大数据 ...

  9. 阿里云ECS主机自定义进程监控

    由于业务的关系我们用的是阿里云的ECS主机,需要对业务进程需要监控,查看后发现阿里云提供自定义监控SDK,这有助于我们定制化的根据自身业务来做监控,下面我就根据业务需求来介绍一个简单的自定义监控配置 ...

  10. django开发者模式中的autoreload是怎样实现的

    在开发django应用的过程中,使用开发者模式启动服务是特别方便的一件事,只需要 python manage.py runserver 就可以运行服务,并且提供了非常人性化的autoreload机制, ...