zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    4.数据库表相关操作
    2.快速创建springboot项目 连pom文件里面的配置都不用配了
    1.开始Springboot 基本配置和helloworld
    mysql 对数据库操作的常用sql语句
    mysql简单操作
    1.开始Spring
    关于java中的异常
    关于maven
    npm相关知识点
    git源代码管理工具操作步骤
  • 原文地址:https://www.cnblogs.com/pertinencec/p/10066322.html
Copyright © 2011-2022 走看看