吴恩达机器学习课程笔记+代码实现(25)16.推荐系统(Recommender Systems)

本文介绍了吴恩达机器学习课程中的推荐系统,包括问题形式化、基于内容的推荐系统、协同过滤算法及其优化目标。协同过滤通过学习用户参数和电影特征,预测用户评分,用于推荐相似电影。最后讨论了实施中的细节,如均值归一化。
摘要由CSDN通过智能技术生成

16.推荐系统(Recommender Systems)



本章编程作业及代码实现部分见:

16.1 问题形式化

       我们从一个例子开始定义推荐系统的问题。

       假使我们是一个电影供应商,我们有 5 部电影和 4 个用户,我们要求用户为电影打分。
       在这里插入图片描述
       前三部电影是爱情片,后两部则是动作片,我们可以看出AliceBob似乎更倾向与爱情片, 而 CarolDave 似乎更倾向与动作片。并且没有一个用户给所有的电影都打过分。我们希望构建一个算法来预测他们每个人可能会给他们没看过的电影打多少分,并以此作为推荐的依据。

       下面引入一些标记:

        n u n_u nu 代表用户的数量

        n m n_m nm 代表电影的数量

        r ( i , j ) r(i, j) r(i,j) 如果用户j给电影 i i i 评过分则 r ( i , j ) = 1 r(i,j)=1 r(i,j)=1

        y ( i , j ) y^{(i, j)} y(i,j) 代表用户 j j j 给电影 i i i的评分

        m j m_j mj代表用户 j j j 评过分的电影的总数

16.2 基于内容的推荐系统

       在一个基于内容的推荐系统算法中,我们假设对于我们希望推荐的东西有一些数据,这些数据是有关这些东西的特征。

       在我们的例子中,我们可以假设每部电影都有两个特征,如 x 1 x_1 x1代表电影的浪漫程度, x 2 x_2 x2 代表电影的动作程度。
       在这里插入图片描述

       则每部电影都有一个特征向量,如 x ( 1 ) x^{(1)} x(1)是第一部电影的特征向量为[0.9 0]。

       下面我们要基于这些特征来构建一个推荐系统算法。
       假设我们采用线性回归模型,我们可以针对每一个用户都训练一个线性回归模型,如 θ ( 1 ) { {\theta }^{(1)}} θ(1)是第一个用户的模型的参数。
       于是,我们有:

        θ ( j ) \theta^{(j)} θ(j)用户 j j j 的参数向量

        x ( i ) x^{(i)} x(i)电影 i i i 的特征向量

       对于用户 j j j 和电影 i i i,我们预测评分为: ( θ ( j ) ) T x ( i ) (\theta^{(j)})^T x^{(i)} (θ(j))Tx(i)

       代价函数

       针对用户 j j j,该线性回归模型的代价为预测误差的平方和,加上正则化项:
min ⁡ θ ( j ) 1 2 ∑ i : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) 2 + λ 2 ( θ k ( j ) ) 2 \min_{\theta (j)}\frac{1}{2}\sum_{i:r(i,j)=1}\left((\theta^{(j)})^Tx^{(i)}-y^{(i,j)}\right)^2+\frac{\lambda}{2}\left(\theta_{k}^{(j)}\right)^2 θ(j)min21i:r(i,j)=1((θ(j))Tx(i)y(i,j))2+2λ(θk(j))2

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

       上面的代价函数只是针对一个用户的,为了学习所有用户,我们将所有用户的代价函数求和:
min ⁡ θ ( 1 ) , . . . , θ ( n u ) 1 2 ∑ j = 1 n u ∑ i : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) 2 + λ 2 ∑ j = 1 n u ∑ k = 1 n ( θ k ( j ) ) 2 \min_{\theta^{(1)},...,\theta^{(n_u)}} \frac{1}{2}\sum_{j=1}^{n_u}\sum_{i:r(i,j)=1}\left((\theta^{(j)})^Tx^{(i)}-y^{(i,j)}\right)^2+\frac{\lambda}{2}\sum_{j=1}^{n_u}\sum_{k=1}^{n}(\theta_k^{(j)})^2 θ(1),...,θ(nu)min21j=1nui:r(i,j)=1((θ(j))Tx(i)y(i,j))2+2λj=1n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值