Processing math: 100%

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

简介: 本周内容较多,故分为上下两篇文章。本文为下篇。一、内容概要1. Anomaly DetectionDensity EstimationProblem MotivationGaussian DistributionAlgorithmBuilding an Anomaly D...

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

一、内容概要

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分,?表示未获得评分数据)
为方便下面叙述,对如下符号进行说明:

  • nu:表示用户数量
  • nm:表示电影数量
  • r(i,j):如果等于1则表示用户j对电影i进行了评分
  • y(i,j):表示用户j对电影i的评分

上面例子中可以知道 nu=4nm=5y(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

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

  • 每一步电影都加上一个额外的特征,即 x0=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)Txi=stars

  • 3. 线性回归预测

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

  • 对单个用户而言

minθ(j)12i;r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2nk=1(θ(j)k)2

  • 对所有用户而言

minθ(1),...,θ(nu)12nuj=1i:r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2nuj=1nk=1(θ(j)k)2

应用梯度下降:

k=0θ(j)k:=θ(j)kαi:r(i,j)=1((θ(j))Tx(i)y(i,j))x(i)k


k0θ(j)k:=θ(j)kαi:r(i,j)=1((θ(j))Tx(i)y(i,j))x(i)k+λθ(j)k

2.Collaborative Filtering(协同过滤)

1)Collaborative Filtering

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

minθ(1),...,θ(nm)12nuj=1i:r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2nmj=1nk=1(θ(j)k)2

注意累计符号的上限由nu变成了nm

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

J(x(1),...,x(nm),θ(1),...,θ(nu))=12(i,j):r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2nuj=1nk=1(θ(j)k)2+λ2nmi=1nk=1(x(i)k)2

对代价函数求偏导结果如下:
x(i)k:=x(i)kα(j:r(i,j)=1((θ(j))Tx(i)y(i,j))θ(j)k+λx(i)k)


θ(j)k:=θ(j)kα(i:r(i,j)=1((θ(j))Tx(i)y(i,j))x(i)k+λθ(j)k)

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

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

img_181c82100b41445229a50bb4c37d2cda.png

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=[55005??0?40?00540050]

推出评分
((θ(1))T(x(1))(θ(2))T(x(1))(θ(nu))T(x(1))(θ(1))T(x(2))(θ(2))T(x(2))(θ(nu))T(x(2))(θ(1))T(x(nm))(θ(2))T(x(nm))(θ(nu))T(x(nm)))

如何寻找与电影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=[5500?5??0??40??0054?0050?]

首先求出每行的均值(未评分不用计算)
μ=[.52.522.251.25]Y=[2.52.52.52.5?2.5??2.5??22??2.252.252.751.75?1.251.253.751.25?]

预测值为(θ(j))T(x(i))+μi,因为优没有评分。所以化目的函数只需要minλ2nuj=1nk=1(θ(j)k)2,很显然θ=0,所以新增用户评分数据可初始化为均值,即
Y=[55002.55??02.5?40?200542.2500501.25]







MARSGGBO原创





2017-8-14



目录
打赏
0
0
0
0
11
分享
相关文章
在数字化时代,推荐系统成为互联网应用的重要组成部分,通过机器学习技术根据用户兴趣和行为提供个性化推荐,提升用户体验
在数字化时代,推荐系统成为互联网应用的重要组成部分,通过机器学习技术根据用户兴趣和行为提供个性化推荐,提升用户体验。本文探讨了推荐系统的基本原理、常用算法、实现步骤及Python应用,介绍了如何克服数据稀疏性、冷启动等问题,强调了合理选择算法和持续优化的重要性。
199 4
打造个性化新闻推荐系统:机器学习与自然语言处理的结合Java中的异常处理:从基础到高级
【8月更文挑战第27天】在信息过载的时代,个性化新闻推荐系统成为解决信息筛选难题的关键工具。本文将深入探讨如何利用机器学习和自然语言处理技术构建一个高效的新闻推荐系统。我们将从理论基础出发,逐步介绍数据预处理、模型选择、特征工程,以及推荐算法的实现,最终通过实际代码示例来展示如何将这些理论应用于实践,以实现精准的个性化内容推荐。
【绝技揭秘】Andrew Ng 机器学习课程第十周:解锁梯度下降的神秘力量,带你飞速征服数据山峰!
【8月更文挑战第16天】Andrew Ng 的机器学习课程是学习该领域的经典资源。第十周聚焦于优化梯度下降算法以提升效率。课程涵盖不同类型的梯度下降(批量、随机及小批量)及其应用场景,介绍如何选择合适的批量大小和学习率调整策略。还介绍了动量法、RMSProp 和 Adam 优化器等高级技巧,这些方法能有效加速收敛并改善模型性能。通过实践案例展示如何使用 Python 和 NumPy 实现小批量梯度下降。
74 1
机器学习在推荐系统中的应用
【7月更文挑战第31天】随着机器学习技术的不断发展和普及,推荐系统在电子商务、社交媒体、新闻资讯等领域的应用越来越广泛。机器学习算法的应用为推荐系统优化提供了全新的思路和方法,使得推荐系统能够更加智能化和个性化地为用户提供服务。未来,随着数据量的不断增加和算法的不断创新,推荐系统将会变得更加精准和高效,为用户带来更加优质的体验。
Python数据分析与机器学习在电子商务推荐系统中的应用
Python数据分析与机器学习在电子商务推荐系统中的应用
170 5
【重磅发布】AllData数据中台核心功能:机器学习算法平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
320 6
AI训练师入行指南(三):机器学习算法和模型架构选择
从淘金到雕琢,将原始数据炼成智能珠宝!本文带您走进数字珠宝工坊,用算法工具打磨数据金砂。从基础的经典算法到精密的深度学习模型,结合电商、医疗、金融等场景实战,手把手教您选择合适工具,打造价值连城的智能应用。掌握AutoML改装套件与模型蒸馏术,让复杂问题迎刃而解。握紧算法刻刀,为数字世界雕刻文明!
83 6
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。

热门文章

最新文章