机器学习(10)--推荐系统
吴恩达ML课程课后总结,以供复习、总结、温故知新,也欢迎诸位评论讨论分享,一起探讨一起进步:
上一篇:机器学习(9)--异常检测(多元高斯分布等)https://blog.csdn.net/qq_36187544/article/details/88400810
下一篇:
写在前面的总结:推荐系统不一定要用这种方法实现,看完这里发现吴老师超喜欢用代价函数的模型来构建机器学习,是一种方式吧,然后梯度下降等算法去求解,但实际上,推荐系统在不同的地方有不同的方法,根据数据来。这里的推荐系统是基于内容推荐,其实还有基于用户推荐,就是用户A与用户B在浏览、购买等方面操作相近则用户A与B相似,推荐A的东西给B就比较合适。所以也不去实现了,这里作为一个扩展内容学习即可,毕竟推荐系统、NLP、CV等都可以作为一个单独的门类、工种,这范围太大了。
估计这章内容后面来的概率也比较低吧,学到一点思想,但毕竟现在推荐系统作为企业超看重的部分,发展较好,这些内容是不够的,太入门了
推荐系统能领悟特征学习的思想,不需要手动建立特征
未防止后面看不懂,这里做个说明:nu表示 用户数量,nm表示电影数量,r(i,j)=1表示用户j看过电影i,y(i,j)表示用户j给电影i的评分仅当r=1时
接下来说的θ和x都是向量:
基于内容的推荐算法:假设电影种类分为两种,用特征x1,x2表示电影偏向哪一种类型,添加x0作为截距特征。那么每一个电影就有一个特征向量x(i)。对每一个用户j学习一个参数θ(通常是n+1维,n为特征数量),θTxi就等于电影i的预测评分。
算法给出x来学习θ,形同于线性回归,梯度下降。这种算法较简单,但是已知的是各个电影的特征量,爱情部分占比,动作占比等。
同理,若X未知,但是θ已知,可以用θ来学习x
协同过滤,自行学习所要用的特征。现假设已知用户的特征偏好θ。现在是给出θ来学习x,协同过滤就是θ->x->θ->x...的过程
为了简化随机θ,然后求x求θ再求x的过程,提出协同过滤算法:x学习θ时是用户对所有电影的评价,θ学习x时是一部电影所有用户的评价,协同过滤两者统一起来,是所有电影用户有评价时的求和,最小化代价函数时即求令x和θ同时进行最小化
算法:初始化所有x和θ值,然后梯度下降使代价函数最小化
简单点说,协同过滤就是同时考虑x和θ,共同搭建函数
矢量化-低秩矩阵分解:协同过滤的一种方法,将预测得分分别用X和θ矩阵表示。
如果两个物品(如电影)的X特征向量的距离近,则表示更相关可以作为推荐项。
均值规范化:问题由来,如果一个用户对物品(如电影)未评分,最小化代价函数J时会使θ向量全为0则预测时所有得分都为0,这样不好。均值规范化作为协同过滤的预处理,减去均值,最后预测评分时加上均值,这样一个从未评分的用户的预测就是平均值了