嵌入推荐系统的协作知识库


嵌入推荐系统的协作知识库

论文信息

2016年

会议:ACM SIGKDD(知识发现与数据挖掘会议)
第22届ACM SIGKDD国际知识发现和数据挖掘会议论文集

补充知识

1. 异构图

同构图:在图里面,节点的类型和边的类型只有一种的图,举个例子,像社交网络中只存在一种节点类型,用户节点和一种边的类型,用户-用户之间的连边。

异构图:在图里面,节点的类型+边的类型>2的一种图,举个例子,论文引用网络中,存在着作者节点和paper节点,边的关系有作者-作者之间的共同创作关系连边,作者-论文之间的从属关系,论文-论文之间的引用关系。

2.TransR

知识图谱嵌入的Translate模型汇总(TransE,TransH,TransR,TransD):https://zhuanlan.zhihu.com/p/147542008

然而,每个实体可以有许多方面,不同的关系关注实体的不同方面。例如,(location, contains, location)的关系是’contains’,(person, born, date)的关系是’born’。这两种关系非常不同

为了解决这个问题,我们让TransR在两个不同的空间,即实体空间多个关系空间(关系特定的实体空间)中建模实体和关系,并在对应的关系空间中进行转换,因此命名为TrandR。

image-20210323212540816

TransR的基本思想如图1所示。
对于每个三元组(h, r, t),
将实体空间中的实体通过矩阵Mr投影到r关系空间中,分别为hr和tr,
然后有hr + r ≈ tr,损失函数和训练方法与TransE相同。ht为实体嵌入,r为关系嵌入。

特定于关系的投影可以使实际持有这种关系的head/tail实体(表示为彩色圆圈)彼此靠近,同时那些不持有这个关系的实体相互远离(表示为彩色三角形)。

得分函数和目标函数与TransE相同。

TransE的损失函数是使用了负抽样的max-margin函数。

L(y, y’) = max(0, margin - y + y’)

y是正样本的得分,y'是负样本的得分。然后使损失函数值最小化,当这两个分数之间的差距大于margin的时候就可以了(我们会设置这个值,通常是1)。

由于我们使用距离来表示得分,所以我们在公式中加上一个减号,知识表示的损失函数为:

image-20210323212639554

其中,d是:

image-20210323212652208

这是L1或L2范数。至于如何得到负样本,则是将head实体或tail实体替换为三元组中的随机实体。

3.关于自编码器

自编码器

自编码器分为两个部分,编码器encoder和解码器decoder。一个单隐层的AE的网络结构如下图所示

img

自编码器输出层的节点数与输入层相等。

值得注意的是,这种自编码器是一种不利用类标签的非线性特征提取方法, 就方法本身而言, 这种特征提取的目的在于保留和获得更好的信息表示, 而不是执行分类任务,尽管有时这两个目标是相关的。

自动编码机由三层网络组成,其中输入层神经元数量与输出层神经元数量相等,中间层神经元数量少于输入层和输出层。

搭建一个自动编码器需要完成下面三样工作:搭建编码器,搭建解码器,设定一个损失函数,用以衡量由于压缩而损失掉的信息(自编码器是有损的)。

编码器和解码器一般都是参数化的方程,并关于损失函数可导,典型情况是使用神经网络。编码器和解码器的参数可以通过最小化损失函数而优化。

降噪自编码器

和自编码器不同的是,降噪自编码的训练过程中,输入的数据有一部分是“损坏”的,DAE(Denoising Autoencoder)的核心思想是,一个能够从中恢复出原始信号的神经网络表达未必是最好的,能够对“损坏”的原始数据编码、解码,然后还能恢复真正的原始数据,这样的特征才是好的。在论文“Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion”中,阐述了DAE的原理,如下图所示:

img

对于输入的数据x按照qD分布加入进行加噪“损坏”

从图式可以看出,这个加噪过程是按照一定的概率(通常使用二项分布)将输入层的某些节点清0,然后将 $\hat x$ 作为自编码器的输入进行训练。

除了对输入层数据的处理不同,其余部分DAE与AE完全类似

堆叠自编码器

顾名思义,栈式自编码器就是多个自编码器级联,以完成逐层特征提取的任务,最终得到的特征更有代表性,并且维度很小。
栈式自编码器的训练过程是,n个AE按顺序训练,第1个AE训练完成后,将其编码器的输出作为第2个AE的输入,以此类推。最后得到的特征作为分类器的输入,完成最终的分类训练。如下四幅图所示:

image-20210323211120400

堆叠降噪自动编码器

堆叠降噪自动编码器(Stacked Denoising Auto Encoder,SDAE)

SDAE的思想就是将多个DAE堆叠在一起形成一个深度的架构。只有在训练的时候才会对输入进行腐蚀(加噪),训练完成就不需要在进行腐蚀。结构如下图所示:

img

逐层贪婪训练:每层自编码层都单独进行非监督训练,以最小化输入(输入为前一层的隐层输出)与重构结果之间的误差为训练目标。
前K层训练好了,就可以训练K+1层,因为已经前向传播求出K层的输出,再用K层的输出当作K+1的输入训练K+1层。
一旦SDAE训练完成, 其高层的特征就可以用做传统的监督算法的输入。当然,也可以在最顶层添加一层logistic regression layer(softmax层),然后使用带label的数据来进一步对网络进行微调(fine-tuning),即用样本进行有监督训练。


4. 评测指标MAP@K和Recall@K

MAP(Mean Average Precision)本是在信息检索领域用以衡量搜索引擎的排序性能的评价指标,对于推荐系统,可以将推荐列表视为一个排序列表。例如对于【命中,命中,未命中,未命中,未命中】和【未命中,未命中,未命中,命中,命中】这两个top-5的推荐列表,显然他们的precision都是 $\frac{2}{5} $ ,但是显然第一个推荐列表的性能要高于第二个推荐列表,因为其在第1、2位就已命中。
MAP的公式如下:

$$MAP@K=\frac{1}{\vert{U}\vert}\sum_{u=1}^{\vert{U}\vert}\frac{1}{min(m,K)}\sum_{k=1}^{min(n,K)}P(k)\cdot rel(k)$$

也可以这么理解:

$$AP@K=\frac{1}{min(m,K)}\sum_{k=1}^{min(n,K)}P(k)\cdot rel(k)$$

$$ MAP@K=\frac{1}{\vert{U}\vert}\sum_{u=1}^{\vert{U}\vert}AP@K $$

K是推荐列表的长度,如刚刚top-5的推荐列表里K就是5,$\vert{U}\vert$是用户的数量,m是用户实际选择的项目数,n是给用户推荐的项目数,P(k)指的是从推荐列表中排名第1的项目到排名第k的项目的precision,rel(k)表示排名第kk的项目是否被用户实际选择。
所以对于推荐列表【命中,命中,未命中,未命中,未命中】,假设该用户在测试集中实际选择了3个项目,则

image-20210331152517497

而对于推荐列表【未命中,未命中,未命中,命中,命中】

image-20210331152543642


版权声明:本文为CSDN博主「百载文枢江左」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42690752/article/details/102827308


版权声明:本文为CSDN博主「百载文枢江左」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42690752/article/details/102827308

摘要

在不同的推荐技术中,由于用户项交互的稀疏性协同过滤通常遭受有限的性能。

要解决问题,通常使用辅助信息来提高性能。

由于网上信息的快速收集,知识库提供异构信息,包括具有不同语义的结构化和非结构化数据,可以由各种应用消耗。

在本文中,我们调查如何利用知识库中的异构信息来提高推荐系统的质量

首先,通过利用知识库,我们设计三个组件以分别从结构内容,文本内容和视觉内容中提取项目的语义表示。

具体而言,我们采用异质网络嵌入(heterogeneous network embedding)方法称为TransR,通过考虑所述节点和关系的异质性来提取项目的结构表示。

我们应用堆叠的去噪自动编码器(stacked denoising auto-encoders)堆叠的卷积自动编码器(stacked convolutional auto-encoders,),它们是两种类型的基于深度学习的嵌入技术,以分别提取项目的文本表示视觉表示

最后,我们提出了我们的最终综合框架,被称为协作知识库嵌入(CKE),共同学习协同过滤的潜在表示以及知识库的项目语义表示。

为了评估每个嵌入组件以及整个系统的性能,我们通过不同场景的两个RealWorld数据集进行广泛的实验。结果表明,我们的方法优于若干广泛采用的最先进的推荐方法。

关键词

  • 推荐系统
  • 知识库嵌入
  • 协同联合学习

1.简介

协同过滤

优点:

由于信息的爆炸性增长,推荐系统在在线服务中发挥着越来越重要的作用。在不同的推荐战略中,基于协同过滤(CF)使用历史互动或偏好的方法取得了重大成功[23]。

缺点:

然而,当用户项目交互非常稀疏时,CF方法通常会遭受有限的性能,这对于项目集非常大的在线购物等方案非常常见。
此外,CF方法不能推荐新项目,因为这些项目从未收到过去用户的任何反馈。

解决:

为了解决这些问题,混合推荐系统,结合协同过滤和辅助信息,如物品内容,通常可以实现更好的推荐结果,并且近年来越来越受欢迎[2]。

知识库

简介

在过去几年中,通过在统一的全球数据空间中的不同主题域中连接各种主题域名的各种信息,通过将各种信息与统一的全球数据空间中的不同主题域名连接各种信息,从而在链接数据原则上发布了越来越多的语义数据。这些异构数据互相链接,形成称为知识库的巨大信息资源库。已经建立了几个典型的知识库,包括Yago2,Nell3,DBPedia4和DeepDive5等学术项目,以及Microsoft的Satori6和Google知识图表7等商业项目。使用来自知识库的异构连接信息可以有助于开发关于难以从单个域的数据突出的问题的见解[6]。迄今为止,信息检索[9],社区检测[25],情绪分析[4] - 仅限名称 - 是成功利用知识库的值得注意的应用程序。

混合推荐

实际上,由于知识库提供了丰富的信息,包括具有不同语义的结构化和非结构化数据,因此在混合推荐系统的上下文中使用知识库的使用是吸引了越来越多的关注。

相关研究

例如:

  • yu等人。 [30]使用异构信息网络来表示知识库中的用户,项目,项目属性和互连关系。它们从网络结构中提取基于元路径的潜在特征,并应用基于贝叶斯排名优化的协同过滤,以解决实体推荐问题。
  • Grad-Gyenge等。通过采用基于扩展的激活技术来结合知识库的网络特征,扩展了协同过滤,用于推荐系统的额定预测任务。

但是,以前的研究没有充分利用知识库的潜力,因为它们遭受以下限制:
1)仅利用知识库的单个网络结构信息,同时忽略诸如项目的文本和视觉信息的其他重要信号。
2)依靠繁重和繁琐的特征工程过程来提取知识库的特征。

本文

提出方法:

为了解决上述问题,请在本文中提出了一种新的推荐框架,将协同过滤与知识库中项目的不同语义表示集成

对于知识库,除了网络结构信息,我们还考虑项目的文本内容视觉内容(例如,电影的海报)。

为避免繁重和繁琐的手动特征提取,我们设计三个嵌入组件,以分别从知识库的结构内容,文本内容和视觉内容中提取项目的语义表示。

具体而言:

  1. 我们首先通过考虑节点和关系的异质性来应用网络嵌入方法来提取项目的结构化表示
  2. 接下来,我们采用堆叠的去噪自动编码器和堆叠的卷积自动编码器,这些自动编码器是两种类型的基于深度学习的嵌入技术,分别提取项目的文本表示和视觉表示
  3. 最后,为了将协同过滤与知识库中的项目的语义表示顺利地融合,我们提出了我们的最终框架,该框架被称为嵌入(CKE)的协同知识库,以共同学习统一模型中的不同表示
评估:

我们的实证研究包括多个部分。

首先,我们进行若干实验,以分别评估三个知识库嵌入组分的性能。

接下来,我们通过与若干竞争基线进行比较来评估我们的综合框架的有效性。

主要贡献:

本文的主要贡献总结如下:

  • 据我们所知,这是第一次将知识库中的结构化内容,文本内容,视觉信息用于推荐系统
  • 我们应用嵌入方法,包括异构网络嵌入深度学习嵌入,以自动提取知识库中的语义表示。学习的表示也可以用于推荐以外的任务。
  • 通过共同执行知识库嵌入和协同过滤,CKE可以同时从知识库中提取特征表示,并捕获用户和项目之间的隐式关系
  • 根据两个实际数据集,我们对评估我们框架的有效性进行了广泛的实验。结果表明,我们的方法显着优于基线方法。
论文结构

本文的其余部分安排如下。

第2节介绍了初步概念,并提出了我们的推荐问题。

第3节概述了我们的框架。

第4节删除了嵌入组件以提取知识库的表示。

在第5节中,我们讨论如何将协同过滤与嵌入统一模型的知识库有效地集成。

在第6节中讨论了经验结果,
然后简要介绍第7节中的相关工作,
并在第8节中结束了本文。

2.初步概念

在本节中,我们将首先澄清本文中使用的一些术语,然后明确呈现出我们的问题。

2.1 用户隐反馈(User Implicit Feedback)

本文考虑的推荐任务是针对隐性反馈的。

隐反馈矩阵R

假设有m个用户和n个项目,我们定义了用户隐含的反馈矩阵 $R \in \mathbb{R}^{m\times n}$ 为:
$$
R = \begin{cases}
1, & 如果已观察到(用户i,项目j)交互; \
0, & 其余情况 \
\end{cases}
$$
其中矩阵R中的值1表示用户和项目之间的交互,例如,用户观看了电影或用户在搜索引擎中搜索了一本书。

请注意,隐式反馈数据中的值1并不意味着用户实际上喜欢这些项目

实际上,用户搜索了一本书,因为他对这本书感兴趣,但在浏览互联网上的相关信息后,他可能可能不喜欢这本书。

同样,R中的值0并不意味着用户不喜欢这些项目,而是可以被视为负反馈的混合(用户对此类项目不感兴趣)和潜在的交互(用户不知道此类项目)。

只代表交互,不代表喜欢

2.2 知识库(Knowledge Base)

实际上,我们感兴趣的是利用知识库提高推荐系统的质量,因此推荐系统中的项目映射到知识库中的实体(例如,电影项目通常可以映射到描述这部电影的实体),以及这些实体被称为本文中的项目实体

三个部分

我们考虑存储在知识库中的信息可以分为三个部分:结构知识,文本知识和视觉知识。每个部分的详细定义如下:

定义1:结构知识

这些知识可以被视为具有多种类型的实体多种类型的链路的异构网络,以表达知识库的结构。

对于电影推荐,
实体通常包括电影项目和相应属性(例如,类型“科学小说”和演员“Kevin Space”),
并且链接描述了这些实体(例如,“作用”行为和“评级”行为之间的关系 )。

网络结构意味着项目实体之间的一些相似性,这对推荐最有用

定义2:文本知识

对于知识库中的书籍或电影等项目实体,我们使用文本摘要来表示文本知识,通常为本书或这部电影提供了主要主题。

定义3:视觉知识

对于项目实体,除了先前的文本描述外,知识库中通常存在一些图像,我们使用书的前封面图像或电影的海报图像来表示其视觉知识。

用户隐式反馈交互结构知识用作物品的结构特征,而文本知识和视觉知识则作为内容特征

  • 物品的结构特征
    • 用户隐反馈交互
    • 结构知识
  • 内容特征
    • 文本知识
    • 视觉知识

图1中介绍了具有三种知识以及用户隐式反馈的知识库的片段。

image-20210319170822356
图1:用户隐含反馈数据和知识库数据片段的例证

2.3 问题描述

我们在本文中定义了我们的推荐问题,如下所示:

给出具有结构知识的知识库,文本知识和视觉知识,以及用户隐含的反馈;

我们的目标是推荐给每个用户他会感兴趣的一个项目排行列表。

3. 综述

在本文中,通过充分利用知识库中的结构知识,文本知识和视觉知识,我们提出了一个协作知识库嵌入模型(CKE),以支持我们的推荐任务。

我们的模型主要由两个步骤组成:1)知识库嵌入2)协同联合学习。

1)知识库嵌入

在知识库嵌入步骤中,我们分别从结构知识,文本知识和视觉知识中提取项目实体的三个嵌入向量。这些嵌入向量表示每个域中的项目实体的潜在表示。

对于结构嵌入组成部分,我们应用网络嵌入程序(贝叶斯TransR)从结构化的知识的异构网络中找到潜在的表现。

对于文本嵌入组件,我们应用一个叫做贝叶斯堆积的去噪自动编码器(Bayesian SDAE)的无监督的深度学习模型[29]以找到文本知识的潜在表示。

同样,我们应用另一个叫做贝叶斯堆积的卷积自动编码器(贝叶斯SCAE)的无监督的深度学习模型,以找到视觉知识的潜在表示。

2)协同联合学习

在协作联合学习步骤中,最终将项目的潜在矢量表示为从知识库和潜在偏移量载体的三个嵌入向量的集成

最终项目潜伏载体代表了来自结构内容,文本内容,视觉内容以及历史(用户-项目)交互的项目的知识。

然后,我们通过优化项目之间的成对排名来使用协同过滤来学习用户潜在向量和项目潜在的向量。

最终推荐由这些用户潜在的向量项目潜在的向量生成。

我们框架的流程图如图2所示。知识库嵌入协作联合学习将分别在第4节和第5节中详细说明。

image-20210319172248054

图2:协同知识库嵌入(CKE)框架的推荐系统流程图

4.知识库嵌入

在本节中,通过利用网络嵌入和深度学习嵌入,我们介绍了我们如何分别从结构知识,文本知识和视觉知识中提取项目实体的表现。

4.1 结构化嵌入

异构网络编码实体的结构化信息及其丰富关系。

为了捕获这种结构化知识,希望将该异构网络嵌入到连续的矢量空间中,同时保留网络的某些信息。

在本小节中,我们首先简要介绍一个名为TransR [15]的最新的网络嵌入方法,然后为我们的任务给出TransR的贝叶斯表达。

首先,要代表结构知识,我们使用一个无向图$G =(V,E)$,
其中$V = { v_1,……v_{|V|} }$是一组顶点,指的是不同实体
E是一组,参考这些实体之间的不同类型的关系

Transr [15]是用于异构网络的最先进的嵌入方法。

与承担相同空间RK内的实体和关系的其他方法不同,Transr表示由关系特定矩阵桥接的不同语义空间中的实体和关系。

在Transr中,对于网络中的每个三元组$(v_h,r,v_t)$,($v_h$和$v_t$是两个链接实体,r是它们之间的边类型),实体嵌入到向量$v_h,v_t \in \mathbb R^k$中,而关系嵌入到$r \in \mathbb R^d$中。

  • 三元组:$(v_h,r,v_t)$
  • 实体嵌入:$v_h,v_t \in \mathbb R^k$
  • 关系嵌入:$r \in \mathbb R^d$

对于每个关系r,我们设置了一个投影矩阵$M_r \in \mathbb R ^{k \times d}$,其将来自实体空间的实体项目投影到关系空间

image-20210319183246177

图3:结构化嵌入TransR的例子

如图3所示,项目的实体向量被定义为

image-20210319180730045

这个三元组的的评分函数相应定义为:

image-20210319180747181

生成过程,TransR的贝叶斯版本

类似于[22],我们使用sigmod函数来计算成对三元组排名概率,而不是原始Transr中采用的(margin-based objective function)基于边缘的目标函数。然后我们将TransR延伸到贝叶斯版本,并提出了如下的生成过程:

  1. 对于每个实体v,使得$v \sim N(0, \lambda_v^{-1}I)$
  2. 对于每个关系r,分别使得$r \sim N(0, \lambda_r^{-1}I)$ 和$M_r \sim N(0, \lambda_M^{-1}I)$
  3. 对于每个四元组$(v_h,r,v_t,v_t’) \in S$ ,从概率$\sigma (f_r(v_h,v_t) - f_r(v_h,v_t’))$使得,其中S是满足的一下条件的四元组集合:$(v_h,r,v_t)$ 是一个正确的三元组,$(v_h,r,v_t’)$是一个不正确的三元组。$\sigma :(x) = {1 \over 1+e^{-x}} $ 是逻辑sigmoid函数

对于正确的三元组$(v_h,r,v_t)$来说,通过将一个实体用相同类型的另一个实体来替换是很常见的,并且构造不正确的三倍$(v_h,r,v_{t’})$。

注意,步骤3意味着当正确三元组的得分函数大于不正确的三元组的分数函数时,可以更容易采样四元组。

对于每个项目实体$j$,我们使用贝叶斯TransR嵌入向量$v_j$来代表其结构化表示。

TransR需要深♂入了解一下


知识图谱嵌入的Translate模型汇总(TransE,TransH,TransR,TransD):https://zhuanlan.zhihu.com/p/147542008

关于TransR

然而,每个实体可以有许多方面,不同的关系关注实体的不同方面。例如,(location, contains, location)的关系是’contains’,(person, born, date)的关系是’born’。这两种关系非常不同

为了解决这个问题,我们让TransR在两个不同的空间,即实体空间多个关系空间(关系特定的实体空间)中建模实体和关系,并在对应的关系空间中进行转换,因此命名为TrandR。

image-20210323212540816

TransR的基本思想如图1所示。
对于每个三元组(h, r, t),
将实体空间中的实体通过矩阵Mr投影到r关系空间中,分别为hr和tr,
然后有hr + r ≈ tr,损失函数和训练方法与TransE相同。ht为实体嵌入,r为关系嵌入。

特定于关系的投影可以使实际持有这种关系的head/tail实体(表示为彩色圆圈)彼此靠近,同时那些不持有这个关系的实体相互远离(表示为彩色三角形)。

得分函数和目标函数与TransE相同。

TransE的损失函数是使用了负抽样的max-margin函数。

L(y, y’) = max(0, margin - y + y’)

y是正样本的得分,y'是负样本的得分。然后使损失函数值最小化,当这两个分数之间的差距大于margin的时候就可以了(我们会设置这个值,通常是1)。

由于我们使用距离来表示得分,所以我们在公式中加上一个减号,知识表示的损失函数为:

image-20210323212639554

其中,d是:

image-20210323212652208

这是L1或L2范数。至于如何得到负样本,则是将head实体或tail实体替换为三元组中的随机实体。

4.2 文本嵌入

在本小节中,我们调查如何应用一个名为堆叠去噪自动编码器(SDAE)无监督深度学习模型,以获取文本知识的项目实体的文本表示。

4.2.1符号表示

SDAE [27]是用于学习损坏的输入数据表示的反馈神经网络,通过学习预测输出中的清洁本身。

在提出模型细节之前,我们提供SDAE中使用的符号。

假设网络层的数量是$L_t$,我们使用矩阵$X_l$代表SDAE中的第L层的输出。

请注意,我们使用最后一层输出 $X_{L_t}$ 来表示所有项目实体的原始清洁文本知识,其中第j行是实体j的词袋矢量$X_{L_{t,j*}}$,j * 。

同样,我们使用矩阵$X_0$来表示噪声损坏的矩阵(随机掩蔽了$X_{L_t}$的某些实体,通过使其为0的方式)。

$W_l$ 和 $b_l$ 分别是用于l层的权重参数和偏置参数。

4.2.2图示

image-20210323201237435
图4:用于文本嵌入的6层SDAE的图示

图4给出了一个6层SDAE的例证,用于我们的文本嵌入组件。

如该图所示,网络的第一个$L_t \over 2$ 层(从$X_0$ 到 $X_3$)通常用作编码器部分,该部分将损坏的输入$X_0$映射到潜在的紧凑型表示$X_3$,并且最后一个$L_t \over 2$ 层(从$X_3$ 到 $X_6$)通常用作解码器部分,其恢复清洁输入X6的潜在表示X3。

4.2.3 贝叶斯SDAE中每层L的生成过程

与[29]类似,同时给出观测到的清洁输入$X_{L_t}$和损坏的输入$X_0$,我们介绍了贝叶斯SDAE中每层L的生成过程,如下所示:

  1. 对于给定的权重参数$W_l$,使得$W_l \sim N(0, \lambda_W^{-1}I)$
  2. 对于偏重参数,使得$b_l \sim N(0, \lambda_b^{-1}I)$
  3. 对于此层的输出,使得$X_l \sim N(\sigma (X_{l-1} W_l + b_l), \lambda_X^{-1}I)$

中间层中的嵌入矢量,比如图4中的$X_{3,j*}$ ,被用作项目实体j的文本表示。


4.2.4 关于自编码器

自编码器

自编码器分为两个部分,编码器encoder和解码器decoder。一个单隐层的AE的网络结构如下图所示

img

自编码器输出层的节点数与输入层相等。

值得注意的是,这种自编码器是一种不利用类标签的非线性特征提取方法, 就方法本身而言, 这种特征提取的目的在于保留和获得更好的信息表示, 而不是执行分类任务,尽管有时这两个目标是相关的。

自动编码机由三层网络组成,其中输入层神经元数量与输出层神经元数量相等,中间层神经元数量少于输入层和输出层。

搭建一个自动编码器需要完成下面三样工作:搭建编码器,搭建解码器,设定一个损失函数,用以衡量由于压缩而损失掉的信息(自编码器是有损的)。

编码器和解码器一般都是参数化的方程,并关于损失函数可导,典型情况是使用神经网络。编码器和解码器的参数可以通过最小化损失函数而优化。

降噪自编码器

和自编码器不同的是,降噪自编码的训练过程中,输入的数据有一部分是“损坏”的,DAE(Denoising Autoencoder)的核心思想是,一个能够从中恢复出原始信号的神经网络表达未必是最好的,能够对“损坏”的原始数据编码、解码,然后还能恢复真正的原始数据,这样的特征才是好的。在论文“Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion”中,阐述了DAE的原理,如下图所示:

img

对于输入的数据x按照qD分布加入进行加噪“损坏”

从图式可以看出,这个加噪过程是按照一定的概率(通常使用二项分布)将输入层的某些节点清0,然后将 $\hat x$ 作为自编码器的输入进行训练。

除了对输入层数据的处理不同,其余部分DAE与AE完全类似

堆叠自编码器

顾名思义,栈式自编码器就是多个自编码器级联,以完成逐层特征提取的任务,最终得到的特征更有代表性,并且维度很小。
栈式自编码器的训练过程是,n个AE按顺序训练,第1个AE训练完成后,将其编码器的输出作为第2个AE的输入,以此类推。最后得到的特征作为分类器的输入,完成最终的分类训练。如下四幅图所示:

image-20210323211120400

堆叠降噪自动编码器

堆叠降噪自动编码器(Stacked Denoising Auto Encoder,SDAE)

SDAE的思想就是将多个DAE堆叠在一起形成一个深度的架构。只有在训练的时候才会对输入进行腐蚀(加噪),训练完成就不需要在进行腐蚀。结构如下图所示:

img

逐层贪婪训练:每层自编码层都单独进行非监督训练,以最小化输入(输入为前一层的隐层输出)与重构结果之间的误差为训练目标。
前K层训练好了,就可以训练K+1层,因为已经前向传播求出K层的输出,再用K层的输出当作K+1的输入训练K+1层。

一旦SDAE训练完成, 其高层的特征就可以用做传统的监督算法的输入。当然,也可以在最顶层添加一层logistic regression layer(softmax层),然后使用带label的数据来进一步对网络进行微调(fine-tuning),即用样本进行有监督训练。


4.3视觉嵌入

在这个小节中,类似于以前的文本嵌入部分,我们应用另一个无监督的深度学习模型,称为堆叠卷积自动编码器(SCAE),以从视觉知识中提取项目实体的语义表示。

对于视觉对象,基于卷积的深度学习架构通常会击败公共完全连接的架构,因为它们可以在潜在的更高级别特征表示中保留图像的邻域关系和空间位置[7]。
此外,卷积层通过共享权重来限制自由参数的数量,使得它们对高维图像内容进行比较。
如上所述,通过在[16]的工作之后,我们通过使用卷积隐藏层采用堆叠的卷积自动编码器(SCAE)来替换先前SDAE中的完全连接的层

4.3.1 符号表示

假设SCAE中有$L_v$层,类似于SDAE中的符号,我们使用4维张量**$Z_{L_v}$表示清洁图像的集合,其中第j行是一个三维张量 $Z_{L_{v , j*}}$,代表实体j 在RGB颜色空间中的原始像素表示。同样,我们使用$Z_0$来表示损坏的图像(通过添加高斯噪声随机掩蔽了一些实体$Z_l$)。
接下来,对于每层L,我们使用
$Z_l$表示输出,$Q_l$表示权重参数,并且$c_l$表示偏置参数。**

4.3.2 插图

在SCAE中,我们将第 ${L_v} \over 2$ 层和第${ {L_v} \over 2 } +1$ 层设置为完全连接的层,而其他层作为卷积层。

image-20210326101411313
图5:视觉嵌入的6层SCAE的例子

图5给出了6层SCAE的插图,也包括编码器部分和解码器部分。

如图所示,编码器部分由两个卷积层(从Z_0到Z_2)和完全连接的层(Z_2到Z_3)组成。
类似地,解码器部分由完全连接的层(Z3到Z4)和两个以下的碎屑层(从Z4到Z6)组成。
请注意,中间隐藏层的输出Z_3是一个矩阵,其表示所有项目实体的视觉嵌入向量的集合。而其他隐藏层的输出通常被称为特征映射[7],是生成的4维张量来自卷积层。卷积层的映射如下给出:

image-20210326101202160

其中*表示卷积操作,可以保留先前输出的本地连接度。有关卷积运算符的更多细节可以参考[20]。

4.2.3 贝叶斯SCAE每层L的生成过程

与文本嵌入组件类似,给定清洁图像输入$Z_{L_v}$ 和加噪的输入$Z_0$,我们介绍了贝叶斯SCAE中每层L的生成过程,如下所示:

  1. 对于给定的权重参数,使得$Q_l \sim N(0, \lambda_Q^{-1}I)$
  2. 对于偏重参数,使得$c_l \sim N(0, \lambda_c^{-1}I)$
  3. 对于此层的输出,
    1. 如果 l 层是一个全连接层,使得$Z_l \sim N(\sigma (Z_{l-1} Q_l + c_l), \lambda_Z^{-1}I)$
    2. 否则,使得$Z_l \sim N(\sigma (Z_{l-1}*Q_l + c_l), \lambda_Z^{-1}I)$

这里*是卷积运算符?

中间层中的嵌入矢量,比如图5中的$Z_{3,j*}$,用作项目实体j的视觉表示。

5.协同联合学习

在本节中,为了将协同过滤与知识库中项目的嵌入式筛选集成,我们提出了CKE框架中的协同联合学习程序

给定用户隐含的反馈R,由[22]的动机,为了学习相似度我们考虑了物品之间的成对排名。

更具体的是,当$R_{ij} = 1$而$R_{ij’} = 0$ 时,我们说用户 i 更喜欢物品 j 超过物品 j’ ,然后使用 $p(j> j ; i | θ)$ 来表示一对偏好概率,其中θ表示模型参数。

在协同过滤中,我们使用潜在的矢量 $u_i$ 作为 用户i 的表示,以及潜在向量$\eta _j $ 作为 项目j 的表示。

为了同时捕获在协同过滤中item的潜在表示,与在item在知识库中的表示item的潜在向量可以重新表示为:

image-20210326104621075

然后可以给予成对偏好概率

image-20210326104918314

在知识库中使用Bayesian Transr,Bayesian SDAE和Bayesian Scae作为组件的嵌入步骤,我们使用协同加入学习的框架CKE的生成过程如下

  1. 考虑结构化的知识:
    1. 对于每个实体v,使得$v \sim N(0, \lambda_v^{-1}I)$
    2. 对于每个关系r,分别使得$r \sim N(0, \lambda_r^{-1}I)$ 和$M_r \sim N(0, \lambda_M^{-1}I)$
    3. 对于每个四元组$(v_h,r,v_t,v_t’) \in S$ ,从概率$\sigma (f_r(v_h,v_t) - f_r(v_h,v_t’))$使得,其中S是满足的一下条件的四元组集合:$(v_h,r,v_t)$ 是一个正确的三元组,$(v_h,r,v_t’)$是一个不正确的三元组。$\sigma :(x) = {1 \over 1+e^{-x}} $ 是逻辑sigmoid函数
  2. 考虑文本化知识,对于SDAE中的每层:
    1. 对于给定的权重参数$W_l$,使得$W_l \sim N(0, \lambda_W^{-1}I)$
    2. 对于偏重参数,使得$b_l \sim N(0, \lambda_b^{-1}I)$
    3. 对于此层的输出,使得$X_l \sim N(\sigma (X_{l-1} W_l + b_l), \lambda_X^{-1}I)$
  3. 考虑视觉知识,对于SCAE中的每层:
    1. 对于给定的权重参数,使得$Q_l \sim N(0, \lambda_Q^{-1}I)$
    2. 对于偏重参数,使得$c_l \sim N(0, \lambda_c^{-1}I)$
    3. 对于此层的输出,
      1. 如果 l 层是一个全连接层,使得$Z_l \sim N(\sigma (Z_{l-1} Q_l + c_l), \lambda_Z^{-1}I)$
      2. 否则,使得$Z_l \sim N(\sigma (Z_{l-1}*Q_l + c_l), \lambda_Z^{-1}I)$
  4. 对于每个item j,使得一个潜在item偏移向量 $\eta _j \sim N(0, \lambda_I^{-1}I)$ ,之后将 item 的潜在向量设为:
    image-20210326104621075
  5. 对于每个用户i,使得一个用户的潜在向量为$u_i \sim N(0, \lambda_U^{-1}I)$
  6. 对于每个三元组 $(i,j,j’) \in D$ ,使得其概率 $\sigma(u_{i}^Te_j - u_{i}^Te_{j’})$

在这里,D是一系列的三元组,其中每个三联(i,j,j’)满足$R_{ij} = 1$而$R_{ij’} = 0$ (j’是从用户i的不感兴趣的item中随机采样)。请注意,$X_{ {L_t \over 2},j*}$ 和 $X_{ {L_v \over 2},j*}$ 分别用作隐式反馈偏好和结构知识,文本知识以及视觉知识之间的桥梁

学习参数。计算参数的完整后部是棘手的。与[28]相同,最大化u,e,r,M,W,b,Q和c的后验概率,是等价于最大化对数似然函数,如下:

image-20210326110639785

最大化EQ的目标。 (7),我们采用类似于[22]的随机梯度下降(SGD)算法。
在每次迭代中,对于一个随机采样的三元组(i,j,j’)∈D,我们找到子集$S_{j,j’} \in S$ 满足$S_{j,j’}$ 中的的每个四元组包含项目j或项目j’。然后,我们使用相应的目标函数的梯度对每个参数进行SGD更新[10]。

预测 用户i 的最终项目推荐根据以下排名标准给出:

image-20210326111058340

6.实验

在本节中,我们评估我们在两个RealWorld数据集中的建议框架,适用于两部电影和书籍推荐方案。实验结果表明了许多竞争基础的显着改善的证据。

6.1 数据集描述

为了展示拟议的协作知识库嵌入建议框架的有效性,我们使用来自不同域名(电影和书籍)的两个数据集进行实证研究。

第一个DataSet Movielens-1M,由1M等级组成,6,040名用户和3,706部电影。

与[31]类似,为了与隐性反馈设置一致,我们仅提取积极的评分(评分5)以进行培训和测试。除了较少3次阳性额定值的用户后,我们有5,883名用户,3,230部电影和226,101个额定值在最终数据集中。

从Microsoft的Bing搜索引擎和Microsoft的Satori知识库中收集了作为IntentBooks的第二个数据集[1]。

在此数据集中,用户对书籍的兴趣从单击/查询操作中提取,例如,如果用户对“哈利波特”或单击包含该名称的文档进行查询,则此用户可能对相关的簿籍实体感兴趣。

为了减少名称冲突问题(例如,而不是书籍,“哈利波特”实际上可能意味着相关的电影),我们通过将无监督的相似性计算与通过以下[13]结合监督分类来提取用户的书籍兴趣。

此外,为了验证书籍兴趣提取的有效性,我们随机选择了200个提取的书籍兴趣实例并手动标记为真或假。

结果表明,精度为91.5%,我们认为对后续实验足够准确。

我们从Bing的搜索日志中对用户进行隐式反馈数据进行示例,时间是从2014年9月到2015年6月期间的。删除少于5本书兴趣的用户,我们终于拥有92,564名用户,18,475本书和897,871个用户-数据兴趣关系。

我们还使用Satori知识库来提取这两个数据集的结构知识,文本知识和视觉知识。

首先,我们应用了[24]中描述的两个分阶段方法(包括标题匹配和属性匹配),将来自Movielens-1M数据集的每个电影映射到知识库中的实体(请注意,Intentbooks DataSet中的一本书已经是一个知识库中的实体,因此匹配步骤忽略)。

我们明确地观察到200个配对结果,其中92%的对正确匹配(匹配精度足够好,以便以后的过程)。

此外,我们发现只有134部电影无法映射到知识库中的任何电影实体。

接下来,为了构建结构知识,我们从知识库中提取一个子图,其中包含项目实体的实体,距离项目实体的一个实体,以及相应的关系。

对于电影实体,1步实体包括流派,导演,作家,演员,语言,国家,生产日期,评级,提名奖和获得奖项;对于书籍实体,1步实体包括流派,作者,发布日期,属于系列,语言和评级。

然后用于文本知识,我们遵循哈希程序单词,如[12]中的散列程序,以预处理从电影的情节中提取的文本信息和书籍的描述。

最后,为了视觉知识,我们使用电影实体的海报图像和书籍实体的前封面图像,其中最终使用的视觉输入是在RGB空间中重塑到3×64×64张量格式的图像。

image-20210326112752235

表1中总结了两个数据集的一些详细统计信息。
例如,“#sk节点”表示提取的结构知识中的节点总数,
“#tk项目”表示具有文本知识的项目数量
“#VK项目“表示具有视觉知识的项目数。

6.2 评估标准

如[19]所述,精度不是隐式反馈推荐的合适性能措施。

因此,在我们的实验中,我们使用MAP@K(意思是平均精度)[26] 和 Recall@K 评估Top-K推荐的性能。

对于每个数据集,类似于[14],我们随机选择与每个用户关联的70%项目,以构成训练集,并使用所有剩余的测试集

对于每个评估方案,我们使用不同随机选择的训练集重复五次评估,并且在以下部分中报告了平均性能。

对于每个数据集,我们还使用从训练集中设置的验证,以查找我们的方法的最佳超参数以及在以后的零件中引入的基线

在以下报告的结果中,我们的方法的超参数设置在表2中给出,因为实现了最佳性能。

在表2中,

  • DIM表示潜在的维度,
  • $\epsilon$表示噪声屏蔽级别,
  • $\sigma$ 代表图像的高斯滤波器噪声的标准偏差,
  • $L_t$ 和 $L_v$ 代表层数,
  • $N_l$ 代表在文本嵌入SDAE步骤中 l 不是中间层或者输出层时,隐藏单元的数量;
  • $N_f$和$S_f$ 分别表示视觉嵌入的SCAE步骤中每个卷积层中滤波图的数量和大小。

注意,为了保持协同过滤部分的不同分解方法,在以下小节中比较的基线的潜在维度与表2中的相同,基线的其他超参数由网格搜索确定。

image-20210326153150856
表2:我们两个数据集的框架的HyperParameter设置。 CF,SK,TK和VK指示协同过滤,结构知识嵌入,文本知识嵌入和视觉知识嵌入的组件中的参数。

在以下小节中,我们将根据四个方面评估拟议的框架。
首先,我们分别评估了关于结构知识使用,文本知识用法和视觉知识使用的推荐表现。
然后,我们将联合模型CKE与最先进的基线进行比较,以展示我们系统的有效性。

6.2.3.4 图

image-20210326154132437
图6:Recall@K值,我们的方法之间使用知识库中的每个组件与数据集Movielens-1M相关基线之间的方法之间的比较。

image-20210326154205047
图7:Map @ K结果,我们的方法在使用知识库中的每个组件之间的比较,以及数据集Movielens-1M的相关基线。

image-20210326154249848
图8:调用我们的方法之间使用知识库中的每个组件的方法与数据集Intentbook的相关基线之间的方法比较。

image-20210326154403232
图9:Map @ K结果我们在使用知识库中的每个组件与数据集目录中的每个组件之间的方法之间的比较。

6.3 对于 结构化知识 的研究

在本小节中,为了研究我们的结构知识使用的表现,我们只将结构知识嵌入组件纳入联合学习过程中的协同滤波中。我们将我们称为“CKE”的方法与以下基准进行比较:

  • BPRMF:我们使用贝叶斯个性化排名的基于矩阵分解[22],这是基于用户的成对偏好,作为单一协同过滤方法。与我们的方法CKE相比,该基线完全忽略了结构知识的使用。
  • BPRMF + Transe:此方法结合了BPRMF和网络嵌入方法,称为TransE [3]进行联合学习。此基线实际上使用与我们的方法CKE相同的设置,除了它使用TransE,忽略实体和关系的异构性,而不是TransR嵌入结构知识
  • PRP:具有前瞻统称的PageRank [17]将User-Item关系和结构知识集成到统一的同类图中,然后为每个用户执行PageRank,具有个性化的初始概率分布。
  • PER:个性化实体建议[30]将结构知识视为异构信息网络,并提取基于元路径的潜在特征,以表示用户和项目之间的连接沿不同类型的关系路径。在本文中,我们使用所有项目 - attributeItem格式的元路径特征(例如,“Movie-Penre-Movie”)。
  • LIBFM(S):LIBFM [21]是基于最先进的功能的分解模型。在本文中,LIBFM(S)意味着我们在结构知识中使用项目的属性作为原始特征以馈入LIBFM。

不同方法的结果在图6(a)中给出,图7(a),图8(a)和图9(a)。

结果汇集了两个数据集的几种观察,我们总结为:

1) BPRMF在所有方法中表现最差。由于BPRMF是完全忽略了结构知识的唯一一个,结果意味着结构知识的额外使用可以显着提高推荐性能。

2)PRP表现比利用结构知识的其他方法更糟糕。这是因为其中,PRP是唯一不利用分解的唯一一个,这可以捕获数据集的稀疏度下的用户项目交互的潜在低逼近。

3)BPRMF + TRANSE优于LIBFM和PER,它表明,而不是直接在特征工程方式中使用结构知识,网络嵌入可以以更合理的方式捕获语义表示,从而提高推荐质量。

4)我们的方法CKE(s)击败BPRMF + Transe,这意味着通过使用Transr,在考虑网络嵌入的异质性时,仍有改进的余地。

6.4 对于 文本化知识 的研究

在本小节中,我们调查了我们的文本知识使用的表现。具体而言,我们在联合学习过程中使用文本知识嵌入组件和协同过滤。我们比较我们的方法,它被称为“CKE(T)”,反对BPRMF以及以下基准:

  • LIBFM(T):此方法与第6.3节中引入的libfm相同,除了文本知识中的词袋现在用作原始特征以进入libfm。
  • CMF(T):集体矩阵分解[21]通过同时分解多个矩阵来组合不同类型的数据源。在本文中,CMF(t)意味着我们使用的两个矩阵是用户项矩阵和项目字矩阵。
  • CTR:协作主题回归[28],它是利用建议的文本信息的StateOf-ART方法,同时集成了协同过滤和主题建模。

如图6(b)所示,图7(b),图8(b)和图9(b),结果的比较显示了以下观察结果:

1)CKE(s)优于CKE(T)和libfm(s)优于libfm(t),这意味着与结构知识相比,文本知识对推荐绩效的改善具有较弱。

2)libfm(t),ctr和cke(t)通常提供比CMF更好的性能,这表明项目字矩阵的直接分解不能充分利用文本信息。

3)CTR是一个强大的基线,有时甚至在IntentBooks数据集中实现最佳性能。然而,我们的方法CKE(t)可以大部分时间击败CTR,这表明与主题建模相比,深入学习嵌入通过深入地提取文本的语义表示来擅长提取文本的语义表示。

6.5对于视觉知识的研究

在本小节中,我们专注于研究我们的视觉知识使用情况。如前所述,我们在联合学习中使用视觉知识嵌入组件和协作滤波。我们将我们的方法与BPRMF和以下基准命名为“CKE(v)”的方法:

  • libfm(v):此方法与第6.3节中的libfm相同,不同之处在于RGB颜色空间中的扁平原始像素表示作为原始功能。
  • CMF(v):此方法使用与第6.4节中描述的CMF(T)相同的设置,不同之处在于我们使用用户项矩阵和项目 - 像素矩阵进行同时分解。
  • BPRMF + SDAE(V):此方法使用与我们的方法CKE(v)相同的设置,除了它使用堆叠的去噪自动编码器来嵌入可视知识。这是为了评估卷积层是否对视觉知识嵌入有效。

不同方法的结果如图6(c)所示,图7(c),图8(c)和图9(c),它为我们提供了以下观察:

1)与结构知识和文本知识相比,使用视觉知识的性能改善是有限的,但仍然很大。

2)CKE(v)和BPRMF + SDAE(v)优于其他方法,这表明了深度网络的优越性,用于视觉知识嵌入。

3)CKE(V)和BPRMF + SDAE(V)之间的性能差距仍然显着,这揭示了卷积层更适合提取视觉表示。

6.6 对于整个框架的研究

最后,我们评估了我们整个框架的表现。我们使用知识库嵌入中的三个组件进行比较我们的终极模型,其表示为“CKE(STV)”,与以下基准显示:

  • CKE(ST),CKE(SV),CKE(ST):CKE(ST)使用与CKE(STV)相同的设置,除了它只包含结构知识和文本知识,这是为了评估视觉的额外使用情况知识是有效的。该定义类似于CKE(SV)和CKE(TV)。
  • Libfm(STV):此方法使用与第6.4节中提到的Libfm相同的设置,除了结构知识,文本知识和视觉知识全部用作特征。
  • BPRMF + STV:此方法使用与CKE(STV)相同的设置,除了它分别学习协同过滤和三个知识库嵌入组件。这是为了评估联合学习是否有效。

image-20210326153026266
图10:Recall@K我们框架和相关基线之间的比较两个数据集。 图11:Map@K结果我们的框架与两个数据集相关基线之间比较。

结果如图10和图11所示,其给出了以下观察结果:

1)CKE(STV)优于CKE(ST),CKE(SV)和CKE(TV)。这意味着每种知识的额外使用可以提高推荐绩效,这表明我们框架与各种知识相结合的框架,以加强推荐。

2)CKE(STV)优于Libfm(STV),它表明与专业工程方式中知识库的直接使用相比,嵌入组件可以更有效地捕获知识库的语义表示,从而提高推荐性能。

3)CKE(STV)仍然比BPRMF + STV归档更好的性能,其表明,协同过滤和知识库嵌入的联合学习可以以更直接的方式针对推荐优化任务,从而提高建议质量。

7 相关工作

7.1 知识库推荐

近年来,在推荐系统的背景下的知识库的使用量正在吸引不断的关注。

例如,Cheekula等人。 [5]探索从修剪的DBPedia知识库导出的分层类别知识,并应用扩展激活算法将个性化实体识别为推荐。

Passant[18]计算知识库的图形结构中的语义距离,并使用该距离测量来构建音乐推荐系统。

与以前的作品相比,主要通过利用知识库的结构来研究这个问题,我们提出了一个框架,将异构知识从结构,文本以及视觉内容进行整合到推荐。

7.2 结构化知识嵌入

以前的结构知识作品主要旨在将实体和关系嵌入到连续的矢量空间中,并模拟该空间中结构的语义。

例如,TransE [3]表示转换矢量的关系,使得三重嵌入实体可以以低误差连接。然而,TransE在对知识库中处理了对结构信息的异质性的多对多关系。

为了解决TransE的问题,TransR [15]提出实体和关系的步骤是完全不同的对象和模型实体以及在不同的空间中的关系,并通过使用翻译矩阵在关系空间中执行转换。

在本文中,我们将TransR与我们的推荐任务集成,以充分利用知识库中的结构知识。

7.3 深度学习推荐算法

随着近年来深度学习的成功,有一个从事专业特征的标记开关,即从建议研究中从原始数据中学到的那些。

例如,Elkahky等人[8]提出了一种多视图深度学习模型,用于了解来自不同域的用户功能和项目特征,并使用丰富的功能表示来提高所有域的推荐质量。

王[29]通过共同表现为文本内容信息和评级矩阵的协作滤波来显着提高建议表现。

我们的框架在以下几个方面的上述作品中区分了本身:
1)我们专门应用堆叠的卷积自动编码器来提取视觉内容的语义表示,这些内容尚未在以前的作品中被利用。
2)我们通过整合协同过滤和结构,文本和视觉知识的异质性来设计一个联合模型,以提高推荐质量

8.总结

本文提出了一个被称为CKE的混合推荐制度,该系统集成了协同过滤和知识库以供建议。

在此框架之后,我们首先设计三个组件,它利用异构网络嵌入和深度学习嵌入方法,分别从知识库中的结构知识,文本知识和视觉知识中自动提取语义表示。

接下来,我们将协同过滤和知识库嵌入组件与统一框架相结合,并共同学习不同的表示。

我们进行的广泛实验验证了我们CKE框架的有效性。

此外,这项研究揭示了知识库中的异构信息的使用,可以在更多的应用方案中用到。


文章作者: SongX64
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 SongX64 !
  目录