本文内容来自于论文: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. adb命令记录

    1.杀掉 adb 进程    adb kill-server 2.重启 adb 服务    adb start-server 3.重启手机         adb reboot 4.进 shell 模 ...

  2. 将view添加到地图覆盖物

    原文地址:http://my.oschina.net/freestyletime/blog/291638 官方例子 这个百度地图 android SDK 关于基础地图覆盖物的例子 http://dev ...

  3. Python web框架 Tornado(三)自定义session组件

    我们在学习Django框架的过程中,内部封装了session组件,以方便于我们使用进行验证.但是Tornado框架是没有session的,所以如果想使用session的话,就需要我们自己定制相对应的组 ...

  4. selenium3+python3+Firefox54环境搭建

    之前使用的环境:selenium2.53.6+Firefox44+Python2.7,没有问题,最近想尝试一下新的环境,就搭了个selenium3的环境,过程是挺坎坷的,花费了一天的时间,各种报错,最 ...

  5. RSA_JS_PHP加密解密

    root@DESKTOP-I4OIMJC /cygdrive/e/html/RSA_JS_PHP/openssl/bin # ./openssl.exe OpenSSL> genrsa -out ...

  6. 关于java中word转html

    http://www.dewen.org/q/5820/java%E4%B8%AD%E6%80%8E%E4%B9%88%E5%B0%86word%E6%96%87%E6%A1%A3%E8%BD%ACh ...

  7. 大数据,物联网(Internet of Things),万物互联网(Internet of Everything),云计算,雾计算,边缘计算(Edge Computing) 的区别和联系

    大数据是一种规模大到在获取.存储.管理.分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模.快速的数据流转.多样的数据类型,高价值性和准确性五大特征,即5V(Volume, V ...

  8. 爬虫——回顾HTTP 协议

    一.HTTP协议 1.官方概念: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文 ...

  9. Memcached的过期数据的过期机制及删除机制(LRU)

    Memcached的过期数据的过期机制及删除机制1.当某个值过期后,并没有从内存删除,因此,使用stats命令统计时,curr_item参数有信息(不为0)2.当某个新值去占用他的位置时,当成空chu ...

  10. Android Studio 2.3.3 调用asp.net webService实战(拒绝忽悠)

    1.路径中不能包含localhost(本来想在本机调试,就是不行,没办法发布到远程服务器) 2.必须采用异步的办法(阻塞主线程的是肯定不行了) 3.以下是全部的源代码(毫不保留) package co ...