推荐系统(Recommender System)
推荐系统(Recommender System)
案例
- 为用户推荐电影
数据展示
| Bob | Tom | Alice | Jack | 动作成分 | 浪漫成分 | |
|---|---|---|---|---|---|---|
| Movie1 | 5 | ? | 0 | 3 | ? | ? |
| Movie2 | ? | 0 | 3 | ? | ? | ? |
| Movie3 | 0 | 1 | 0 | 5 | ? | ? |
| Movie4 | ? | 4 | 1 | 0 | ? | ? |
算法
- 协同过滤算法(Collaborative filter learning algorithm)
记号
- \(n_m\): 数据中电影的数量, 其中n表示number, m表示movie
- \(n_u\): 数据中用户的数量, 其中n表示number, u表示user
- \(i\): 表示第i部电影
- \(j\): 表示第j位用户
- \(y^{(i, j)}\): 第j位用户对第i部电影的评分, 我们发现在原始数据中有?, 表示用户没有看过, 不能评分, 这里对应的\(y^{(i, j)}\)为0, \(y^{(i, j)}\)需要配合下一个\(r\)记号
- \(r^{(i, j)}\): 第j位用户是否看过第i部电影, 如果看过则为1, 没有则为0, 其中r表示rate
- \(x^{(i)}\): 第i部电影的特征向量
- \(\theta^{(j)}\): 第j位用户的权重
- \(x_k^{(i)}\): 第i部电影的第k个特征向量
- \((i,j):r(i,j)=1\), 表示取使得\(r(i,j)=1\)的\((i,j)\)
步骤
- 对每一部电影的评分进行去中心化, 得到去中心化的数据以及均值, 在去中心化的过程中忽略评分为?的数据
- 随机初始化\(X\)与\(\Theta\)
- 计算损失函数$$J(x^{(i)}, ..., x{(n_m)},\theta{(j)}, ..., \theta{(n_u)})={1\over{2m}}\sum_{(i,j):r(i,j)=1}((\theta{(i)})Tx{(i)}-y{(i,j)})2+{\lambda\over2}\sum_{i=1}{n_m}\sum_{k=1}n(x_k{(i)})2+{\lambda\over{2}}\sum_{j=1}{n_u}\sum_{k=1}{n}(\theta_k{(j)})2$$
- 求解$$min_{x^{(i)}, ..., x{(n_m)},\theta{(j)}, ..., \theta{(n_u)}}J(x{(i)}, ..., x{(n_m)},\theta{(j)}, ..., \theta^{(n_u)})$$
- 梯度
- \[x_k^{(i)}:=x_k^{(i)}-\alpha(\sum_{j:r(i,j)=1}((\theta^{(j)})^T)-y^{(i,j)})\theta_k^{(i,j)}+\lambda x_k^{(i)})
\] - \[\theta_k^{(j)}:=\theta_k^{(j)}-\alpha(\sum_{i:r(i,j)=1}((\theta^{(i)})^T-y^{(i,j)})x_k^{i}+\lambda \theta_k^{(j)})
\]
Matlab实现CostFunction关键部分
%此处, 虽然有一些用户没有对一些电影做出评价, 但是Y仍然为0, 在下一个J的赋值语句中, 通过R计算出符合要求的J
J = (X * Theta' - Y) .^ 2;
J = (1 / 2) * sum(sum(J .* R)) + (lambda / 2) * sum(sum(X .^ 2)) + (lambda / 2) * sum(sum(Theta .^ 2));
X_grad = ((X * Theta' - Y) .* R) * Theta + lambda * X;
Theta_grad = ((X * Theta' - Y) .* R)' * X + lambda * Theta;
推荐系统(Recommender System)的更多相关文章
- 【RS】Deep Learning based Recommender System: A Survey and New Perspectives - 基于深度学习的推荐系统:调查与新视角
[论文标题]Deep Learning based Recommender System: A Survey and New Perspectives ( ACM Computing Surveys ...
- A cost-effective recommender system for taxi drivers
一个针对出租车司机有效花费的推荐系统 摘要 GPS技术和新形式的城市地理学改变了手机服务的形式.比如说,丰富的出租车GPS轨迹使得出做租车领域有新方法.事实上,最近很多工作是在使用出租车GPS轨迹数据 ...
- 海量数据挖掘MMDS week4: 推荐系统Recommendation System
http://blog.csdn.net/pipisorry/article/details/49205589 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 论文笔记: Deep Learning based Recommender System: A Survey and New Perspectives
(聊两句,突然记起来以前一个学长说的看论文要能够把论文的亮点挖掘出来,合理的进行概括23333) 传统的推荐系统方法获取的user-item关系并不能获取其中非线性以及非平凡的信息,获取非线性以及非平 ...
- Coursera, Machine Learning, Anomoly Detection & Recommender system
Algorithm: When to select Anonaly detection or Supervised learning? 总的来说guideline是如果positive e ...
- [C11] 推荐系统(Recommender Systems)
推荐系统(Recommender Systems) 问题阐述(Problem Formulation) 将 推荐系统 纳入这门课程来讲有以下两个原因: 第一.仅仅因为它是机器学习中的一个重要的应用.在 ...
- User-Based Collaborative Recommender System
Collaborative Recommender System基于User给Item的打分表,认为相似度很高的用户,会对同一个item给出相似的分数,找出K个相似度最高的用户,集合他们的打分,来推算 ...
- Item-Based Collaborative Recommender System
与User-Based Collaborative Recommender System认为‘类似的用户会对同一个item给出类似的打分’不同,Item-Based Collaborative Rec ...
- Content-Based Recommender System
Content-Based Recommender System是基于产品(商品.网页)的内容.属性.关键字,以及目标用户的喜好.行为,这两部分数据来联合计算出,该为目标用户推荐其可能最感兴趣的产品. ...
随机推荐
- vmware获取主机、数据中心等对象ManagedObjectReference
在vmware的api中提供以下列表中的对象,称作ManagedObjectReference,包括虚拟机信息.主机.数据中心等等一些信息,我们可以通过vcenter的web api得到. 下面我们来 ...
- 虚拟化 - Docker
Docker Desktop (for windows and mac) Docker Desktop 注意 安装时有可能卡主,可以关掉重新装 重启启动时,可能报错"VIRTUALIZATI ...
- mongodb工具类
pom.xml文件增加Mongodb jar包 <dependency> <groupId>org.mongodb</groupId> <artifactId ...
- numpy 数组运算
数组的减法:不同维数
- S:List
描述 写一个程序完成以下命令:new id ——新建一个指定编号为id的序列(id<10000)add id num——向编号为id的序列加入整数nummerge id1 id2——合并序列id ...
- “全栈2019”Java第九章:解释第一个程序
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- is 与 == 的区别;小数据池; 编码与解码
1, is 与 == 的区别 == 比较的是两边的值 is 比较的是两边的地址 id () 2,小数据池(在终端中) 数字小数据池的范围 -5 ~ 256 字符串中如果有特殊字符他们的内存地址 ...
- [ActionScript 3.0] 利用ColorTransform实现对象(图片)的曝光过渡效果
原图效果 过渡效果 这个效果可以用帧动画实现较为简单,只需要调节这个影片剪辑的色彩效果样式里面的高级选项的三个通道值,以下用代码简单测试,可作为文档类: package { import com.tw ...
- Python的编码详解
一. 编码介绍 计算机只能处理数字(最底层的0和1),如果要处理文本,就必须将文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以一个字节能表示的最大整数就 ...
- todocmvc的安装
安装依赖 官网 安装依赖的css,js $npm install 引入vue <script src="js/vue.js"></script> 定义初始化 ...