Tag recommendaion... 论文中的小例子,使用HOSVD算法推荐
本文内容来自于论文:Tag recommendations based on tensor dimensioanlity reduction
在社会标签系统中,存在三元关系,用户-物品-标签。这些数据最直观的表示方式是三维数组(张量)。
论文小例子的设定如下图,
用户1 对 物品1 打的标签是 T1(IBM 电脑),
用户2对 物品1 打的标签是 T1(IBM 电脑)
其他类似,不赘述。
设定标注过的对应位置为1,没标注的为0。则上图的数据可以表示成一个三阶稀疏张量(sparse tensor)。
使用tucker分解中的一个特殊情形HOSVD(tucker分解和HOSVD 不同在于 HOSVD 要求 因子矩阵是 正交的)
关于HOSVD,可以直接看Tensor Decomposition and Application 这篇论文。(这是关于张量分解的 综述论文,非常经典)
MATLAB tensor toolbox 实现
%%%Paper: Tag Recommendations based on Tensor Dimensionality Reduction A = zeros([3 3 3]);
A(1,1,1)=1;
A(2,1,1)=1;
A(2,2,2)=1;
A(3,3,3)=1; A = tensor(A); % tucker decomposition
result = tucker_als(A,[2,3,3]); % tensor recovery
A_hat = ttm( result.core ,{ result.U{1} , result.U{2} , result.U{3} });
disp(A_hat);
tucker_als()方程能对稀疏张量分解,参数[2 3 3],意思是认为 在人这个维度上秩为2,就是说有3个人,但只有2种人。其他维度都是满秩的。当然,你也可以自行设置各个维度的参数。
再使用张量的n-模乘 ttm() ,恢复张量$ \hat{A} $。结果如下:
在标签2下用户1对物品2的正反馈为0.44。 说明在这个标签2 (Apple Computer)下,该给他推荐商品2。
张量恢复可以用来进行多模式推荐,例如向用户推荐物品,向用户推荐标签...
从用户-物品的角度看,通过HOSVD我们向喜欢IBM电脑的用户推荐了Apple 电脑。
本文张量图形来自于: https://blog.csdn.net/zd836614437/article/details/51601720
最新文章
- CSS属性简写
- Log4j的ConversionPattern参数的格式含义
- JavaScript学习(一)—处理事件
- plsql 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致
- android为应用程序添加退出动画
- ti processor sdk linux am335x evm /bin/setup-tftp.sh hacking
- jquery于form正在使用submit问题,未解决
- java 实现 一个账号只能在一个地方登陆,其他地方被下线
- win7下让程序默认以管理员身份运行
- Mac OSX操作系统安装和配置Zend Server 6教程(4)
- 数据库中Schema、Database、User、Table的关系[转]
- Java:双括号初始化 /匿名内部类初始化法
- vue2.0插件--loading
- Shader、Draw Call和渲染管线(Rendering Pipeline)
- XPath简介及节点
- 面象对象设计原则之二:开放封闭原则(Open-Closed Principle, OCP)
- python---tornado初识(1)
- hdu2594 Simpsons' Hidden Talents【next数组应用】
- 剑指offer:栈的压入、弹出序列
- 解决 Eclipse Indigo 3.7、ADT 中文字体偏小,完美 Consolas 微软雅黑混合字体!