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

Tag recommendaion... 论文中的小例子,使用HOSVD算法推荐的更多相关文章

  1. 详细解读Android中的搜索框(一)—— 简单小例子

    这次开的是一个讲解SearchView的栏目,第一篇主要是给一个小例子,让大家对这个搜索视图有一个了解,之后再分布细化来说. 目标: 我们先来定个目标,我们通过搜索框来输入要搜索的联系人名字,输入的时 ...

  2. java中的String类的不可变性的小例子

    在java语言中,String类具有不可变性,即常量字符串不可更改.下面的一个小例子简单演示相关概念. public class test { public static void main(Stri ...

  3. 【转】Android中通知的提示音、震动和LED灯效果小例子

    通知(Notification)是 Android 系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现.发出一条通知后,手机最上方 ...

  4. C#中把任意类型的泛型集合转换成SQLXML数据格式的小例子

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  5. Hadoop中RPC协议小例子报错java.lang.reflect.UndeclaredThrowableException解决方法

    最近在学习传智播客吴超老师的Hadoop视频,里面他在讲解RPC通信原理的过程中给了一个RPC的小例子,但是自己编写的过程中遇到一个小错误,整理如下: log4j:WARN No appenders ...

  6. activiti 用户手册中 10分钟 小例子 简单代码搭建 及 其中的 各种坑

    看mossle的 5.16 用户手册中的  快速起步:10分钟教程 想自己跑一下,虽然官方文档已经写的非常详细了,但是实际操作中还是遇到各种坑,这里记录下来. 首先官网下载最新的 5版本 full G ...

  7. 在开发环境中,自己搭建一个ssl环境(小例子)

    做项目的时候自己总结的一些小例子 public class Test { public static void setSSLProperty() { Security.addProvider(new  ...

  8. 【unity3d游戏开发之基础篇】unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子

    原地址:http://www.cnblogs.com/xuling/archive/2013/03/04/2943154.html 最近开始研究U3D,它的强大就不多说了, 今天研究了研究射线相关东西 ...

  9. Vue2.x源码学习笔记-从一个小例子查看vm实例生命周期

    学习任何一门框架,都不可能一股脑儿的从入口代码从上到下,把代码看完, 这样其实是很枯燥的,我想也很少有人这么干,或者这么干着干着可能干不下去了. 因为肯定很无聊. 我们先从一个最最简单的小例子,来查看 ...

随机推荐

  1. centos7 桥接配置

    cd /etc/sysconfig/network-scripts/ 名字可能各不同,一般出现在第一个位置 vim ifcfg-ens33 然后重启 systemctl restart network ...

  2. [转]Oracle 连接dll

    https://www.nuget.org/packages/Oracle.ManagedDataAccess

  3. org.hibernate.Session常用方法的作用总结

    clear(): 清理session缓存.把所有加载出来的持久化实例都从session缓存中清除,同时,也会挂掉当前session中正在排队的save,update,delete操作. evict: ...

  4. 使用mysql-connector-java出现的错误

    如果你使用的是mysql-connector-java6.*版本,并使用c3p0连接池的话,就可能出错.因为最近在使用Maven构建项目,想着换成最新的版本试试,就是用了个mysql-connecto ...

  5. Oracle11gR2导入导出实战之表空间传输

    Oracle11gR2导入导出实战之使用Datapump进行表空间传输 表空间检查 [oracle@localhost database]$ ps -ef|grep smon oracle 8981 ...

  6. 一致性哈希算法(consistent hashing)(转载)

    转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179     一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT) ...

  7. linux/ubuntu 端口开放

    在ubuntu下面开放端口好像主要有两种方法,一种是ubuntu自带的防火墙,一种是iptables,这里我们主要使用iptables.本文的系统版本为ubuntu14.04和ubuntu16.04 ...

  8. iOS开发基础控件--UISegmentedControl

    UISegmentedControl全局外观设置 分段控件是我们常用的控件之一,今天把具体用法总结了下: 1.初始化UISegmentedControl [plain] view plaincopy ...

  9. redis在linux下的安装和配置

    1 Installation Download, extract and compile Redis with: $ wget http://download.redis.io/releases/re ...

  10. 保持在Div 底部的方法

    <!DOCTYPE> <html> <head> <meta http-equiv="content-type" content=&quo ...