Paper notes(1):社会标签推荐张量分解方法研究
本文只是个人用于记录论文学习笔记,如有写错的地方还望各位大佬批评指正。
1. 解决的问题
- 现有的大多数基于张量分解的标签推荐算法对社会标签数据集的极度稀疏性、存在大量稀疏值的特点无法实现理想的处理。
- 社会标签数据通常被描述为一个三部超图模型,该模型在维度转换过程中总是存在语义丢失的情况。
2. 解决的方法
- 提出了一种低阶张量分解算法,将社会标签数据集用张量结构来表示,并用低阶多项式进行分解,其中低阶多项式主要吧包括0阶、1阶、2阶多项式。这种方法有效的解决了数据极度稀疏和缺失值的问题,提高了推荐标签的精度和召回率。
- 提出一种新的三部图张量分解算法,对三部图结构用张量的方法进行分解,分解产生的二维关系矩阵除了包含相应两个维度之间的直接关系,还包含了同时存在于原有三个维度之间的关系信息,表达的数据信息更加完整,精度更高,能有效解决语义丢失的问题
3. 文中用到的符号定义
3.文中的低阶张量分解算法(LOTD)
该模型的表达式为:
Y
i
j
k
=
d
+
a
i
+
b
j
+
c
k
+
U
i
j
+
V
i
k
+
W
j
k
Y_{ijk} = d + a_i + b_j + c_k + U_{ij}+V_{ik}+W_{jk}
Yijk=d+ai+bj+ck+Uij+Vik+Wjk
将该模型的参数综合为
θ
=
(
a
,
b
,
c
,
d
,
U
,
V
,
W
)
\theta=(a, b, c, d, U, V, W)
θ=(a,b,c,d,U,V,W),则目标函数为:
min
Θ
J
=
∑
i
j
k
(
X
i
j
k
−
Y
i
j
k
(
Θ
)
)
2
\min_\Theta J = \sum_{ijk} (X_{ijk}-Y_{ijk}(\Theta))^2
ΘminJ=ijk∑(Xijk−Yijk(Θ))2
当
θ
\theta
θ中的每一个成员均取最优解式,即当:
d
=
X
∗
∗
∗
,
a
i
=
X
i
∗
∗
,
b
j
=
X
∗
j
∗
,
c
k
=
X
∗
∗
k
U
i
j
=
X
i
j
∗
,
V
i
k
=
X
i
∗
k
,
W
j
k
=
X
∗
j
k
d=X_{***}\ , a_i=X_{i**}\ , b_j=X_{*j*}\ , c_k=X_{**k} \\ U_{ij}=X_{ij*}\ ,V_{ik}=X_{i*k}\ ,W_{jk}=X_{*jk}
d=X∗∗∗ ,ai=Xi∗∗ ,bj=X∗j∗ ,ck=X∗∗kUij=Xij∗ ,Vik=Xi∗k ,Wjk=X∗jk
时,目标函数取得最小值。
算法伪代码描述如下:
该算法的空间复杂度为
O
(
N
i
N
j
+
N
i
N
k
+
N
j
N
k
)
O(N_iN_j+N_iN_k+N_jN_k)
O(NiNj+NiNk+NjNk),时间复杂度为
O
(
K
(
N
i
N
j
+
N
i
N
k
+
N
j
N
k
)
)
O(K(N_iN_j+N_iN_k+N_jN_k))
O(K(NiNj+NiNk+NjNk))其中K表示迭代次数。
注:关于缺失值填充本文采用的是赋值为改张量三个维度的平均值。