GATrust: A Multi-Aspect Graph Attention Network Model for Trust Assessment in OSNs
(TKDE 2023)
采用数据集:
一、提出问题
GNN的出现为信任评估开辟了一条新方法,然而,用户特征(比如个人爱好和职业)没有被考虑进去,当面临社交信任的多层次属性时,仅仅使用GCN的解决方案很难去探索到社交信任评估所要求的丰富的嵌入信息。
二、解决方案
提出了一个新的考虑到社交信任关系和用户特征的信任评估模型GATrust,采用GAT去计算用户的多重属性(包括网络拓扑结构、用户特征和社交信任关系)的注意力系数。第一层采用GAT而高层全采用GCN,这样也可以利用社交网络上的信息传播与聚合规则融合到高阶节点的信息。为了解决信任的不对称问题,GNN层分为两个部分,信任流行度聚合(入度)和信任热情度聚合(出度),最后再拼接用于预测两个用户之间的信任值。
三、具体过程
1. Network Embedding Layer
采用embedding分别表示每个用户的特征、已知的社交信任关系以及在网络拓扑结构的特征信息。对于用户特征,将用户的兴趣和爱好分为8类,采用one-hot编码。对于已知的社交信任关系,仍然采用one-hot编码表示,对于网络拓扑结构的特征信息,采用Node2vec去映射为一个 D e D_e De维的向量。然后这些向量将被送入GNN层。
2. Multiple GNN layers
为了获得用户 x x x的潜在embedding向量 l [ x ] l[x] l[x],首先考虑到信任的非对称性,因此 l [ x ] l[x] l[x]包含两个内容 l I [ x ] l_I[x] lI[x]和 l O [ x ] l_O[x] lO[x],分别表示信任流行度(用户被信任的embedding)和信任热情度(信任别人的embedding)。第一层为GAT而高层都为GCN。具体方法如下:
通过GAT聚合信任流行度embedding:
首先用线性转换将用户特征的one-hot向量和信任评分的one-hot向量(论文给出的数据集中将信任评分分为4类,因此也是4维的one-hot向量)转换为
D
e
D_e
De维的稠密向量:
f
[
x
]
=
W
x
c
[
x
]
f[x]=W_xc[x]
f[x]=Wxc[x]
T w x ← y = W x ← y T y x T_{w_{x\leftarrow y}}=W_{x\leftarrow y}T_{yx} Twx←y=Wx←yTyx
其中, W x W_x Wx和 W x ← y W_{x\leftarrow y} Wx←y都是可训练参数。
假定
T
f
I
[
x
]
T_{f_I[x]}
TfI[x],
T
u
I
[
x
]
T_{u_I[x]}
TuI[x]和
T
g
I
[
x
]
T_{g_I[x]}
TgI[x]分别为用户
x
x
x的用户特征、拓扑结构特征和信任评级特征的聚合,那么
T
f
I
[
x
]
=
∑
y
∈
A
d
j
I
(
x
)
α
x
←
y
F
f
[
y
]
T_{f_I[x]}=\sum_{y\in Adj_I(x)}\alpha_{x\leftarrow y}^Ff[y]
TfI[x]=y∈AdjI(x)∑αx←yFf[y]
T u I [ x ] = ∑ y ∈ A d j I ( x ) α x ← y U u [ y ] T_{u_I[x]}=\sum_{y\in Adj_I(x)}\alpha_{x\leftarrow y}^Uu[y] TuI[x]=y∈AdjI(x)∑αx←yUu[y]
T g I [ x ] = ∑ y ∈ A d j I ( x ) α x ← y S T w x ← y T_{g_I[x]}=\sum_{y\in Adj_I(x)}\alpha_{x\leftarrow y}^ST_{w_{x\leftarrow y}} TgI[x]=y∈AdjI(x)∑αx←ySTwx←y
其中,
A
d
j
I
(
x
)
Adj_I(x)
AdjI(x)表示信任用户
x
x
x的邻居集合,采用如下公式得到注意力系数:
α
x
←
y
F
=
e
x
p
(
σ
(
α
I
F
T
[
W
I
F
f
[
x
]
⊗
W
I
F
f
[
y
]
]
)
)
∑
k
∈
A
d
j
I
(
x
)
e
x
p
(
σ
(
α
I
F
T
[
W
I
F
f
[
x
]
⊗
W
I
F
f
[
k
]
]
)
)
\alpha_{x\leftarrow y}^F=\frac{exp(\sigma(\alpha_{IF}^T[W_{IF}f[x]\otimes W_{IF}f[y]]))}{\sum_{k\in Adj_I(x)}exp(\sigma(\alpha_{IF}^T[W_{IF}f[x]\otimes W_{IF}f[k]]))}
αx←yF=∑k∈AdjI(x)exp(σ(αIFT[WIFf[x]⊗WIFf[k]]))exp(σ(αIFT[WIFf[x]⊗WIFf[y]]))
α x ← y U = e x p ( σ ( α I U T [ W I U u [ x ] ⊗ W I U u [ y ] ] ) ) ∑ k ∈ A d j I ( x ) e x p ( σ ( α I U T [ W I U u [ x ] ⊗ W I U u [ k ] ] ) ) \alpha_{x\leftarrow y}^U=\frac{exp(\sigma(\alpha_{IU}^T[W_{IU}u[x]\otimes W_{IU}u[y]]))}{\sum_{k\in Adj_I(x)}exp(\sigma(\alpha_{IU}^T[W_{IU}u[x]\otimes W_{IU}u[k]]))} αx←yU=∑k∈AdjI(x)exp(σ(αIUT[WIUu[x]⊗WIUu[k]]))exp(σ(αIUT[WIUu[x]⊗WIUu[y]]))
α x ← y S = e x p ( σ ( α I T T [ W I T u [ x ] ⊗ W I T T w x ← y ] ) ) ∑ k ∈ A d j I ( x ) e x p ( σ ( α I T T [ W I T u [ x ] ⊗ W I T T w x ← k ] ) ) \alpha_{x\leftarrow y}^S=\frac{exp(\sigma(\alpha_{IT}^T[W_{IT}u[x]\otimes W_{IT}T_{w_{x\leftarrow y}}]))}{\sum_{k\in Adj_I(x)}exp(\sigma(\alpha_{IT}^T[W_{IT}u[x]\otimes W_{IT}T_{w_{x\leftarrow k}}]))} αx←yS=∑k∈AdjI(x)exp(σ(αITT[WITu[x]⊗WITTwx←k]))exp(σ(αITT[WITu[x]⊗WITTwx←y]))
其中, ⊗ \otimes ⊗表示拼接操作, σ \sigma σ为leakRelu激活函数。
然后得到 l I [ x ] = T f I [ x ] ⊗ T u I [ x ] ⊗ T g I [ x ] l_I[x]=T_{f_I[x]}\otimes T_{u_I[x]} \otimes T_{g_I[x]} lI[x]=TfI[x]⊗TuI[x]⊗TgI[x],同理可以得到 l O [ x ] l_O[x] lO[x]。
最终通过第一层的GAT可以得到用户
x
x
x的向量表示为:
l
[
x
]
=
σ
(
W
(
l
I
[
x
]
⊗
l
O
[
x
]
)
+
b
)
l[x]=\sigma(W(l_I[x]\otimes l_O[x])+b)
l[x]=σ(W(lI[x]⊗lO[x])+b)
通过GCN进行高阶的信任传播:
在第
h
h
h层,对于用户
x
x
x而言,以信任流行度embedding为例(入度),如果用户
y
y
y信任
x
x
x,那么传播为:
l
h
[
x
←
y
]
=
l
I
h
−
1
[
y
]
⊗
W
x
←
y
h
⋅
T
y
x
l^h[x\leftarrow y]=l_I^{h-1}[y]\otimes W_{x\leftarrow y}^h\cdot T_{yx}
lh[x←y]=lIh−1[y]⊗Wx←yh⋅Tyx
聚合过程为:
l
I
h
[
x
]
=
1
∣
A
d
j
I
(
x
)
∣
∑
y
∈
A
d
j
I
(
x
)
l
h
[
x
←
y
]
l_I^h[x]=\frac{1}{|Adj_I(x)|}\sum_{y\in Adj_I(x)}l^h[x\leftarrow y]
lIh[x]=∣AdjI(x)∣1y∈AdjI(x)∑lh[x←y]
同理可以得到
l
O
h
[
x
]
l_O^h[x]
lOh[x],经过多层之后的最终用户embedding表示为:
l
h
[
x
]
=
σ
(
W
h
(
l
I
h
[
x
]
⊗
l
O
h
[
x
]
)
+
b
h
)
l^h[x]=\sigma(W^h(l_I^h[x]\otimes l_O^h[x])+b^h)
lh[x]=σ(Wh(lIh[x]⊗lOh[x])+bh)
3. Output layer
对于一对未知的用户对,其预测信任评级为:
l
‾
[
x
→
y
]
=
σ
(
W
F
C
⋅
(
l
h
[
x
]
⊗
l
h
[
y
]
)
)
\overline{l}[x\rightarrow y]=\sigma(W_{FC}\cdot(l^h[x]\otimes l^h[y]))
l[x→y]=σ(WFC⋅(lh[x]⊗lh[y]))
l
‾
[
x
→
y
]
\overline{l}[x\rightarrow y]
l[x→y]为一个概率向量,判断预测关系属于数据集中的哪一类,
σ
\sigma
σ为softmax函数。
4. 算法伪代码
四、实验结果
采用F1-score和MAE指标,对比模型为Guardian、Matri和Tidaltrust,结果如下: