本文内容来自于论文: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

最新文章

  1. CSS属性简写
  2. Log4j的ConversionPattern参数的格式含义
  3. JavaScript学习(一)—处理事件
  4. plsql 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致
  5. android为应用程序添加退出动画
  6. ti processor sdk linux am335x evm /bin/setup-tftp.sh hacking
  7. jquery于form正在使用submit问题,未解决
  8. java 实现 一个账号只能在一个地方登陆,其他地方被下线
  9. win7下让程序默认以管理员身份运行
  10. Mac OSX操作系统安装和配置Zend Server 6教程(4)
  11. 数据库中Schema、Database、User、Table的关系[转]
  12. Java:双括号初始化 /匿名内部类初始化法
  13. vue2.0插件--loading
  14. Shader、Draw Call和渲染管线(Rendering Pipeline)
  15. XPath简介及节点
  16. 面象对象设计原则之二:开放封闭原则(Open-Closed Principle, OCP)
  17. python---tornado初识(1)
  18. hdu2594 Simpsons' Hidden Talents【next数组应用】
  19. 剑指offer:栈的压入、弹出序列
  20. 解决 Eclipse Indigo 3.7、ADT 中文字体偏小,完美 Consolas 微软雅黑混合字体!

热门文章

  1. postman参数化的方法
  2. 操作系统-服务器-百科:Nginx(engine X)
  3. ECMAScript有6种继承方式(实现继承)
  4. js获取页面名称和路径参数
  5. linux oracle服务器无密码登录dba
  6. java传递是引用的拷贝,既不是引用本身,更不是对象
  7. python‘s third day for me 字符串方法
  8. [Python] Request module
  9. 构造方法PK实例方法
  10. split分隔