基于特征的方法将模态信息视为实体的辅助特征。
基于实体的方法将不同类型的信息(例如文本和图像)视为结构化知识的关系三元组。
该知识图谱包括用户-项目二部图和原始的多模态知识图谱; 知识图谱中的实体既包括物品,也包括用户 。物品和用户之间的关系只有交互关系,即把共现矩阵的信息补充到知识图谱中。
以协作知识图谱作为输入,知识图谱嵌入模块利用多模式知识图(MKG)实体编码器和MKG注意层为每个实体学习新的实体表示。 新的实体表示将汇总其邻居的信息,同时保留有关其自身的信息。 然后,可以使用新的实体表示来学习知识图 嵌入,以表示知识推理关系。
为了将多模态实体整合到模型中,我们提出了对不同模态数据学习不同的嵌入。我们利用深度学习的最新进展为这些实体构造编码器以表示它们,从而为所有实体提供嵌入。
给定候选实体 h h h,首先通过transE模型学习知识图的结构化表示,然后把实体ℎ的多模态邻居实体信息汇总到实体 h h h(若 h h h为物品实体,则相邻实体可以是购买过此物品的所有用户,或者是同属于某一类型的其他物品,这些实体信息都有助于增强 h h h的语义表示;若 h h h为用户实体,则相邻实体是该用户购买过的所有物品,体现了该用户的历史购买兴趣)。 N h N_h Nh 表示直接连接到h的三元组的集合,集合了邻居实体信息,是每个三元组的线性组合,计算公式为
e a g g = ∑ ( h , r , t ) ∈ N h π ( h , r , t ) e ( h , r , t ) \mathbf{e}_{a g g}=\sum_{(h, r, t) \in \mathcal{N}_{h}} \pi(h, r, t) \mathbf{e}(h, r, t) eagg=(h,r,t)∈Nh∑π(h,r,t)e(h,r,t)
其中 e ( h , r , t ) e(h, r, t) e(h,r,t)是每个三元组 ( h , r , t ) (h, r, t) (h,r,t) 的嵌入,而 π ( h , r , t ) π(h, r, t) π(h,r,t) 是每个三元组 e ( h , r , t ) e(h, r, t) e(h,r,t) 的注意力得分; e ( h , r , t ) e(h, r, t) e(h,r,t)是通过对头部实体,尾部实体和关系的嵌入的串联进行线性变换得到的
e ( h , r , t ) = W 1 ( e h ∥ e r ∥ e t ) \mathbf{e}(h, r, t)=\mathbf{W}_{1}\left(\mathbf{e}_{h}\left\|\mathbf{e}_{r}\right\| \mathbf{e}_{t}\right) e(h,r,t)=W1(eh∥er∥et)
在这里,选择LeakyReLU作为非线性激活函数。此后采用softmax函数对所有与将与连接的所有三元组的系数归一化
π ( h , r , t ) = exp ( π ( h , r , t ) ) ∑ ( h , r ′ , t ′ ) ∈ N h exp ( π ( h , r ′ , t ′ ) ) \pi(h, r, t)=\frac{\exp (\pi(h, r, t))}{\sum_{\left(h, r^{\prime}, t^{\prime}\right) \in \mathcal{N}_{h}} \exp \left(\pi\left(h, r^{\prime}, t^{\prime}\right)\right)} π(h,r,t)=∑(h,r′,t′)∈Nhexp(π(h,r′,t′))exp(π(h,r,t))
为了保留实体的原始信息,我们需要将 e a g g \bold {e_{agg}} eagg和 e h \bold{e_h} eh进行聚集。
(1) f a d d = W 3 e h + e a g g f_{\mathrm{add}}=\mathbf{W}_{3} \mathbf{e}_{h}+\mathbf{e}_{a g g} fadd=W3eh+eagg
(2) f concat = W 4 ( e h ∥ e agg ) f_{\text {concat }}=\mathbf{W}_{4}\left(\mathbf{e}_{h} \| \mathbf{e}_{\text {agg }}\right) fconcat =W4(eh∥eagg )
对上述经过MKGs得到的实体编码进行表示学习,这里采用的是翻译模型
score ( h , r , t ) = ∥ e h + e r − e t ∥ 2 2 \operatorname{score}(h, r, t)=\left\|\mathbf{e}_{h}+\mathbf{e}_{r}-\mathbf{e}_{t}\right\|_{2}^{2} score(h,r,t)=∥eh+er−et∥22
损失函数
L K G = ∑ ( h , r , t , t ′ ) ∈ T − ln σ ( score ( h , r , t ′ ) − score ( h , r , t ) ) , \mathcal{L}_{\mathrm{KG}}=\sum_{\left(h, r, t, t^{\prime}\right) \in \mathcal{T}}-\ln \sigma\left(\operatorname{score}\left(h, r, t^{\prime}\right)-\operatorname{score}(h, r, t)\right), LKG=(h,r,t,t′)∈T∑−lnσ(score(h,r,t′)−score(h,r,t)),
推荐模块知识图实体嵌入(由知识图谱嵌入模块获得)和协作知识图作为输入,推荐模块还采用MKG实体编码器和MKG注意层来利用相应的邻居来丰富用户和物品的表示。 最后,可以根据传统推荐模型来生成用户和项目之间的得分分数。
注意,在推荐模块中,不同于嵌入模型的一点时,在MKG注意层中我们为了保留每一层的信息,进行了表示拼接
e u ∗ = e u ( 0 ) ∥ ⋯ ∥ e u ( L ) , e i ∗ = e i ( 0 ) ∥ ⋯ ∥ e i ( L ) \mathbf{e}_{u}^{*}=\mathbf{e}_{u}^{(0)}\|\cdots\| \mathbf{e}_{u}^{(L)}, \quad \mathbf{e}_{i}^{*}=\mathbf{e}_{i}^{(0)}\|\cdots\| \mathbf{e}_{i}^{(L)} eu∗=eu(0)∥⋯∥eu(L),ei∗=ei(0)∥⋯∥ei(L)
损失函数
y ^ ( u , i ) = e u ∗ ⊤ e i ∗ \hat{y}(u, i)=\mathbf{e}_{u}^{* \top} \mathbf{e}_{i}^{*} y^(u,i)=eu∗⊤ei∗
L recsys = ∑ ( u , i , j ) ∈ O − ln σ ( y ^ ( u , i ) − y ^ ( u , j ) ) + λ ∥ Θ ∥ 2 2 \mathcal{L}_{\text {recsys }}=\sum_{(u, i, j) \in O}-\ln \sigma(\hat{y}(u, i)-\hat{y}(u, j))+\lambda\|\Theta\|_{2}^{2} Lrecsys =(u,i,j)∈O∑−lnσ(y^(u,i)−y^(u,j))+λ∥Θ∥22
本文的创新点是什么?
本文的主要架构?
为什么在知识图谱嵌入模块和推荐模块使用了相同的模型?
https://blog.csdn.net/TgqDT3gGaMdkHasLZv/article/details/111350563