干货 | 论文解读:GAN在网络特征学习中的应用

编者按:近年来,对网络特征学习的研究逐渐兴起,很多人也对其可能的应用产生了兴趣。近期,上海交通大学-微软亚洲研究院联合培养博士生——王鸿伟应邀参加了PaperWeekly优质论文线上直播分享活动,带大家回顾了网络特征学习的研究进展,并以第一作者的身份解读了上海交通大学、微软亚洲研究院和香港理工大学在AAAI 2018上发表的论文GraphGAN: Graph Representation Learning with Generative Adversarial Nets,该工作引入生成对抗网络(GAN)的框架,利用生成器和判别器的对抗训练进行网络特征学习。最后,他还简单介绍了网络特征学习在情感预测和推荐系统领域的应用。一起来看看吧!文章转载自公众号“PaperWeekly”。

分享实录回放

以下是视频文字版整理内容:

Outline

上图底部是三份比较有价值的资料,第一份是Graph Embedding的Survey,第二份是一个论文清单,其中包含近五年来较为经典的Network Representation Learning相关论文。第三份是我写的关于推荐系统和网络表示学习的文献综述,欢迎大家参考。

关于GRL

首先简单介绍一下Graph Representation Learning的定义,中文可以称之为图特征学习或者网络特征学习。其主要目的在于,将图中每一个节点都映射到一个低维向量空间,并且在此空间内保持原有图的结构信息或距离信息。

以上并非官方权威定义,Graph Representation Learning目前没有任何官方定义或名字,它也可以被称作Network Embedding、Graph Embedding或GRL。

我们来看上图中的简单例子,左图有三个节点和三条边,其中的数字表示各边的权值weight,我们通过GRL将其映射到一个二维空间中。可以发现,如果两个点之间的weight越大,那么它们之间的距离就越近。这就是GRL的精髓所在,即在低维空间中保持原有图的结构信息。

Graph Representation Learning的应用相当广泛,它可以被用于链路预测、 节点分类、推荐系统、视觉、知识图谱表示、聚类、Text Embedding以及社会网络分析。

GRL分类方法

我们将GRL的方法按照三种不同分类来进行简单介绍。 

首先按输入进行分类,既然是GRL,那么其输入肯定是一张图,但图的种类有很多:

第一种叫同构图,即图中的节点和边都只有一种,比如引用网络,其中的节点表示每篇paper,边表示引用关系。同构图又可以根据是否有加权进行细分,即其边是否权值、边是否有向,以及边是否有正负号。

第二种是异构图,即网络中的节点和边不止一种,一般分为两种情况:

1. 多媒体网络。比如有的paper就考虑过一张图具备图像和文本两种节点,以及图像文本、图像图像和文本文本这三种边。

2. 知识图谱。图中节点表示的是实体,边表示的关系。每一个三元,HRT都表示头节点H和尾节点T有关系R。由于关系R可以有很多种,因此KG也属于一种异构图。 

第三种是Graph with side information,side information即为辅助信息。这种图是指除了边和点之外,节点和边都会带有辅助信息,比如边和点都有label,边和点都有attribute,或者note有feature。 

它们的区别在于label是类别型的,attribute可以是离散的,也可以是连续的,而feature就可能是文本或图像等更复杂的一些特征。 

第四种是Graph Transformed from non-relational data,即从非关系型数据中转换成的图,一般是指在高维空间中的一些数据。这通常是早期GRL方法会用到的数据,其中最为典型的例子是稍后还将提到的流形学习,我们可以将这种方法理解为一种降维方法。

按输出内容我们也可以对GRL方法进行分类。 

第一种方法会输出node embedding,即为每个节点输出embedding,这也是最常见的一种输出。我们前面说到的那些方法基本上都是输出node embedding。 

第二种方法是输出edge embedding,即为每个边输出embedding。这种输出有两种情况,一种是在KG里面,我们会为每一个relation,也就是每条边都有输出。在link prediction的应用中,我们也会为每一条边来输出一个特征,并在后续工作中将其作为边的特征来进行一些分类任务。 

第三种方法会输出sub-graph embedding,也就是子图的embedding,包括子结构或团体的embedding。

第四种是全图的embedding,即为一个整图来输出embedding。如果我们对蛋白质、分子这类数量较多的小图进行embedding,就可以对比两个分子的相似性。

第三种分类方法是按照方法来进行分类。

第一种方法是基于矩阵分解。一般来说矩阵分解包含奇异值分解和谱分解,谱分解就是我们常说的特征分解,这种方法是比较传统的方法。 

第二种方法是基于随机游走。这种方法盛名在外,我们后面会提到的Deep Walk就是基于随机游走的方法。 

第三种方法是基于深度学习。其中包括基于自编码器以及基于卷积神经网络

第四种方法是基于一些自定义的损失函数。这其中又包括三种情况,第一种是最大化边重建概率,第二种是最小化基于距离的损失函数,第三种是最小化 margin-based ranking loss,这种方法常见于KG embedding。

上图是我整理的GRL方法代表作。按照时间顺序可将它们分为三类,第一类是传统方法,包含PCA、LDA、MDS 等降维方法。

2000 年左右出现了一批较为经典的方法,包括ISOMAP同态映射,LLE局部线性镶嵌,LE拉普拉斯特征分解

最近五年被提出的方法也有很多,我将它们分作四类,每类都和上文提到的按方法分类逐一对应。

LDA线性判别分析是一种传统的有监督降维方法。我们可以看到,右图里面有两类点,有正号表示的一类和有负号表示的一类。

我们需要将二维的点映射到一维上去,LDA的目标在于让这些投影相同类的点在投影过后,同类的点之间距离尽可能变近,即让它们的协方差尽可能小,而不同类的点之间的距离尽可能远。只有这样,它才能在低维空间中对这些点进行分类或聚类操作。

Locally Linear Embedding是一种典型的流形学习方法,它是指将高维空间中的输入映射到低维空间,并且在低维空间中保持邻居之间的线性依赖关系。

左下图就是一个很典型的流形学习,流形指的是在高维空间中存在某些低维结构,比如说图A很像一个瑞士卷,它其实就是一个典型的在三维空间中的二维结构。通过LLE我们将其展成一个二维结构。 

这种方法的目的在于保持高维空间中的邻居信息。其具体做法如下:对于每一个点Xi,首先需要确定其邻居集合,然后再来计算Wik Wij这些参数。这些参数的意思是,我想用这些邻居来重新构建Xi,这个会有唯一的解析解。在拿到W参数之后,我们再在低维空间中用W进行约束,学习得到低维的一个embedding。

Word2vec的本质其实是word embedding,不是network embedding。但由于它对后续的network embedding 方法影响深远,所以我们来简单介绍一下。 

Word2vec中有一个skip-gram模型,这个模型的本质在于为每个词得到一个特征,并用这个特征来预测周围的词。因此,其具体方法就是将概率最大化。这个概率是指,给定一个中心词WT,在以它为中心、窗口为T的范围中的每个词的概率。

这个概率实际上是使用softmax进行计算的。由于softmax开销很大,我们通常会用negative sampling来进行代替。negative sampling是指为每个词从整个词表中选择一些negative samples,把他们作为负样本。

Word2vec在Nerwork Embedding中有两篇很典型的工作,分别是DeepWalk和Node2vec。这两篇工作分别发表于KDD 14和KDD 16。

DeepWalk相当于random walk + word2vec。从图中的每个节点出发,随机进行random walk,从当前节点均匀、随机地选择下一个节点,然后再从下个节点均匀、随机地选择下一个节点。

这样重复N次之后会得到一个path,这个path 就可以被当做一个sentence。这样一来,就将问题完全转换到了Word2vec 的领域。

大家可能会问,这个方法岂不是很简单?不就是把Word2vec用到了network embeddding 吗?

对的,就是这么简单。有时候research并不会过分强调你的方法有多新颖、数学有多花哨,而在于你能不能提出一种motivation够强、动作够快的方法。

Node2vec在DeepWalk的基础上又做了改进。它把原来的random walk改成了biased random walk。

在DeepWalk里,我们是均匀地选择下一个节点。但在Node2vec里,则是不均匀地选择下一个节点。我们可以选择模仿DFS不断往图的深处走, 也可以模仿BFS绕着一个点打转。因此,Node2vec相比DeepWalk也就是新增了一个简单改进。

LINE的全称是Large-scale Network Information Embedding。这篇文章发表于WWW 15。这个工作属于我们之前提到的自定义损失函数,因为它定义了两种损失函数,一种是一阶的临近关系,另一种是二级临近关系。 

所谓的一阶临近关系就是指两个点之间是否只有相连。在右图中我们可以看到,点六和点七之间有边相连,那就可以认为它们拥有一阶临近关系。 

二阶关系是指两个点的邻居的相似度。右图中点五和点六虽然没有直接相连,但它们的邻居是完全重合的,因此可以认为点五和点六的二阶临近关系很强。基于这样一种临近关系,LINE定义了两个损失函数O1和O2,然后基于这两个损失函数来进行network embedding 的学习。

TransX表示一系列方法,X可以指代任何字母,这些方法都是基于KG embedding。KG embedding是指将KG中的每个entity和relation都映射到一个低维连续空间中,并且保持原来的图结构信息。比较经典的方法有TransE、TransH和TransR,统称为基于翻译的方法。

TransE思路很简单,就是强制让Head Embedding + relatioon embedding = tail embedding。换而言之,也就是把head加relation给翻译成tail。由于这篇文章发表于NIPS 13,因此它后续又引出了一大波TransX的方法。大家可以去看上图底部的这篇survey,至少有10篇左右。

最后一篇是SDNE,全名为Structured Deep Network Embedding。这篇文章发表于KDD 15,其本质就是基于auto encoder的一种network embedding。 

尽管右图看着比较复杂,其实它的思路非常简单。作者设计了一个auto encoder,其输入是每个点的邻接向量。

损失一共有三项,第一项是重建损失,第二项是proximity loss term,意思是如果两个节点有边连接,那它们的embedding必须尽量接近,具体接近程度取决于它们的权重。weight越大,那么对这项损失的惩罚力度就越大。第三项是正则化项。

GraphGAN

前文将Network Embedding的方法归为三类,而我们在GraphGAN里将其分为两类,第一类叫生成式模型,第二类叫判别式模型。

生成式模型是指,假定在图中存在一个潜在的、真实的连续性分布 Ptrue(V|Vc)。对于给定的Vc而言,我们可以看到Vc跟四个节点相连接,图中除了Vc之外还有五个节点。Ptrue(V|Vc)就是指在除了Vc之外其他节点上的分布。

假设图中对于每个Vc都有这么一个分布,那么图中的每条边都可以看作是从Ptrue里采样的一些样本。这些方法都试图将边的似然概率最大化,来学习vertex embedding。我们之前提到的DeepWalk和Node2vec都属于生成式模型。

判别式模型是指,模型试图直接去学习两个节点之间有边的概率。这种方法会将Vi和Vj联合作为feature,然后输出的是edge的概率P(edge|Vi, Vj)。这种方法的代表作是SDNE,以及DASFAA 上的一篇PPNE。

这样分类之后,一个很自然的想法是,判别式模型和生成式模型能否进行联合。这两者其实可以看作是一个硬币的两面,他们是相互对立又相互联系的。

之前提到的LINE其实已经对此进行了尝试。文中提到的一阶关系和二阶关系,其实就是两个模型的不同目标函数

生成对抗网络自2014年以来得到了很多关注,它定义了一个game-theoretical minimax game,将生成式和判别式结合起来,并且在图像生成、序列生成、对话生成、信息检索以及domain adaption等应用中都取得了很大的成功。

受以上工作启发,我们提出了GraphGAN,它是一个在网络生成学习中将生成模型判别模型加以结合的框架。

接下来为大家介绍Mnimax Game。其中V是节点集合,E是边集合,我们将N (Vc) 这个记号定义为Vc在图中的所有邻居,将Ptrue (Vc)定义成Vc的真实的连续性分布。 

GraphGAN试图学习以下两个模型:第一个是G(V|Vc),它试图去接近Ptrue (Vc)。第二个是D(V|Vc),它的目标是判断V和Vc是否有边。

因此,我们会得到一个two-player minimax game。这个公式是本文的关键所在,只有充分理解这个公式,才能继续之后的理解。

在这个公式中,我们做了一个minimax 操作。在给定θD的情况下,我们试图对其进行最小化,这个公式其实是对图中每一个节点的两项期望求和。

下面来看生成器的实现和优化。在GraphGAN中,我们选了一个非常简单的生成器,生成器D(V, VC) 就是一个sigmoid函数,它先将两者的embedding做内积,再用sigmoid函数进行处理。对于这样的实现,它的梯度自然也较为简单。

通过上图可以看出,我们在每一步的迭代中,从Ptrue中sample出来了一些跟Vc真实相邻的绿点,然后从G中又生成了一些跟Vc相连的蓝点。我们将绿点作为正样本,将蓝点作为负样本来训练D,在得到D之后,再用D中的信号去反过来训练G。

这就是之前所说的policy gradient过程。我们不断重复这个过程,直到生成器G和Ptrue极为接近。

在刚开始的时候,G相对比较差,因此对于给定的Vc而言,G sample的点都是一些离Vc很远的点。随着训练的不断进行,G sample的点会逐渐向Vc接近,到最后G sample的点几乎都变成了真正跟Vc相邻的点,也就是G和Ptrue已经很难被区分了。

接下来,我们来讨论一下G的实现过程。一种最直观的想法是用softmax来实现G,也就是将G(v|VC)定义成一个softmax函数。

这种定义有如下两个问题:首先是计算复杂度过高,计算会涉及到图中所有的节点,而且求导也需要更新图中所有节点。这样一来,大规模图将难以适用。 另一个问题是没有考虑图的结构特征,即这些点和Vc的距离未被纳入考虑范围内。 

第二种方法是使用层次softmax,具体来说就是组织了一棵二叉树,然后将所有节点都放在叶节点的位置,再将当前的Vc从根开始计算。

由于从根到每个叶结点都存在唯一路径,因此这个计算可以转换成在树的路径上的计算,即它的计算复杂度为logN ,N代表树的深度。这种做法虽然可以简化计算,但它仍然没有考虑到图结构特征。

第三种方法是Negative Sampling。这种方法其实是一个优化方法,它并没有产生有效的概率分布,并且同样没有考虑图的结构特征信息。

在GraphGAN 中,我们的目标是设计出一种softmax方法,让其满足如下三个要求。第一个要求是正则化,即概率和为 1,它必须是一个合法的概率分布。第二个要求是能感知图结构,并且能充分利用图的结构特征信息。最后一个要求是计算效率高,也就是G概率只能涉及到图中的少部分节点。

对于每个给定的结点 Vc,我们都需要以 Vc 为根来进行一次 BFS 宽度优先搜索,然后得到一颗以 Vc 为根的 BFS tree。对于这棵树上的每一个节点,我们都定义了一个 relevance probability。实际上是一个在 Vc 的邻居上的 softmax。

我们可以证明如下三个性质:

1. graph softmax的概率和是1;

2. 在graph softmax中,两个节点在原图中的距离越远,那么它们的概率也随之越低。这其实就是充分利用了图的结构特征,因为两个节点在原图中的最短距离越远,它们之间有边的概率也会相应越低;

3. 在graph softmax的计算中,计算只会依赖于O(d log V)。d是图中每个节点的平均度数,V是图G中的节点大小。这个数字会明显小于softmax的复杂度。

我们还相应设计了一种生成策略。这种这种生成策略并不需要将所有概率都算出来后再进行sample,而是可以边计算边sample。

GraphGAN的算法如上,输入是一些超参数,我们想输出生成式模型G和判别式模型D。第3-12行是算法的每一次迭代过程。在每一次迭代过程中,我们都重复用生成器来生成s个点,并用这些点来更新θG的参数

随后,再重复构造正负样本来训练D,这样做是出于稳定性的考虑。因为我们知道GAN的训练稳定性是一个重要问题。

实验

我们的实验数据集一共是如上五个。Baseline选用的是DeepWalk,LINE,Node2vec和Struc2vec。

我们将GraphGAN用到了如下三个测场景中,第一个是link prediction,预测两个点之间是否有边的概率。图 4展示的是GraphGAN的学习曲线,对于生成器而言,在训练大概十轮之后就很快趋于稳定,并且后续一直保持性能。

对于D来说,它的性能是先上升,之后出现缓慢的下降。这和我们之前所描述的 GAN 框架也是相吻合的。表 1展示了GraphGAN在两个数据集上都得到了最好的结果。

第二个测试场景是Node Classification,在这个场景中我们想对节点进行分类,我们用的数据集是BlogCatalog和Wikipedia。在这样的数据中,我们的方法取得了最好的效果。 

第三个测试场景是推荐。所用的数据集是MovieLens,我们的方法也取得了最好的效果。

总结

本文提出的GraphGAN是一种结合了生成模型判别模型的框架。其中生成器拟合Ptrue,判别器尝试去判别两个点之间是否有边。

G和D实际上是在进行一个minmax game,其中G试图去产生一些假的点。这些假的点不能被D所判别,而D试图去将真实值跟假的点分别开来,以避免被G所欺骗。

此外,我们还提出了一种Graph Softmax作为G的实现,克服了softmax和层次softmax的缺陷,具备三个良好性质。

GRL的其他应用

DKN是我们发表在WWW 2018上的论文,它提出了一个可用于新闻推荐的deep knowledge-aware network。在DKN中,我们将KG中的entity embedding和word embedding在一个CNN框架中加以结合,并且提出了一种attention based点击率预测模型。 

第二个应用是SHINE,这篇论文发表于WSDM 2018。它的目的在于预测微博用户对名人明星的情感。我们提出了一种基于自编码器的框架,这个框架其实类似于SDNE,将它应用于三者并加以结合进行情感预测。

PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

入门深度学习知识图谱情感预测GRLGraphGAN.
3
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

信息检索技术

信息检索(IR)是基于用于查询检索信息的任务。流行的信息检索模型包括布尔模型、向量空间模型、概率模型和语言模型。信息检索最典型和最常见的应用是搜索引擎。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

判别模型技术

在机器学习领域,有一种分类方法将模型分为判别模型和生成模型(generative model)两种。 判别模型是一种对未知数据y与已知数据x之间关系进行建模的方法,是一种基于概率理论的方法。已知输入变量x,判别模型通过构建条件概率P(y|x)分布预测结果,或试图直接从输入x的空间学习映射到标签{0,1}(如感知器算法)的函数。生成模型则是考虑x与y之间的联合分布。 在实际应用中判别模型非常常见,如:逻辑回归(logistic regression),支持向量机(support vector machine), 提升方法(Boosting),条件随机场(conditional random fields),神经网络(neural network),随机森林(random forests)典型的生成模型则包括:高斯混合模型(Gaussian Mixture Model),隐马尔科夫模型(hidden markov model),简单贝叶斯(naive Bayes)等。不难看出两者的区别。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

学习曲线技术

在机器学习领域,学习曲线通常是表现学习准确率随着训练次数/时长/数据量的增长而变化的曲线

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

奇异值分解技术

类似于特征分解将矩阵分解成特征向量和特征值,奇异值分解(singular value decomposition, SVD)将矩阵分解为奇异向量(singular vector)和奇异值(singular value)。通过分解矩阵,我们可以发现矩阵表示成数组元素时不明显的函数性质。而相比较特征分解,奇异值分解有着更为广泛的应用,这是因为每个实数矩阵都有一个奇异值分解,但未必都有特征分解。例如,非方阵型矩阵没有特征分解,这时只能使用奇异值分解。

知识图谱技术

知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。 知识图谱这个概念最早由Google提出,主要是用来优化现有的搜索引擎。不同于基于关键词搜索的传统搜索引擎,知识图谱可用来更好地查询复杂的关联信息,从语义层面理解用户意图,改进搜索质量。比如在Google的搜索框里输入Bill Gates的时候,搜索结果页面的右侧还会出现Bill Gates相关的信息比如出生年月,家庭情况等等。

特征分解技术

线性代数中,特征分解(Eigendecomposition),又称谱分解(Spectral decomposition)是将矩阵分解为由其特征值和特征向量表示的矩阵之积的方法。需要注意只有对可对角化矩阵才可以施以特征分解。

推荐系统技术

推荐系统(RS)主要是指应用协同智能(collaborative intelligence)做推荐的技术。推荐系统的两大主流类型是基于内容的推荐系统和协同过滤(Collaborative Filtering)。另外还有基于知识的推荐系统(包括基于本体和基于案例的推荐系统)是一类特殊的推荐系统,这类系统更加注重知识表征和推理。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

线性判别分析技术

线性判别分析 是对费舍尔的线性鉴别方法的归纳,这种方法使用统计学,模式识别和机器学习方法,试图找到两类物体或事件的特征的一个线性组合,以能够特征化或区分它们。所得的组合可用来作为一个线性分类器,或者,更常见的是,为后续的分类做降维处理。

流形学习技术

流形学习(manifold learning)是机器学习、模式识别中的一种方法,在维数约简方面具有广泛的应用。它的主要思想是将高维的数据映射到低维,使该低维的数据能够反映原高维数据的某些本质结构特征。流形学习的前提是有一种假设,即某些高维数据,实际是一种低维的流形结构嵌入在高维空间中。流形学习的目的是将其映射回低维空间中,揭示其本质。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

规范化技术

规范化:将属性数据按比例缩放,使之落入一个小的特定区间,如-1.0 到1.0 或0.0 到1.0。 通过将属性数据按比例缩放,使之落入一个小的特定区间,如0.0到1.0,对属性规范化。对于距离度量分类算法,如涉及神经网络或诸如最临近分类和聚类的分类算法,规范化特别有用。如果使用神经网络后向传播算法进行分类挖掘,对于训练样本属性输入值规范化将有助于加快学习阶段的速度。对于基于距离的方法,规范化可以帮助防止具有较大初始值域的属性与具有较小初始值域的属相相比,权重过大。有许多数据规范化的方法,包括最小-最大规范化、z-score规范化和按小数定标规范化。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

word2vec技术

Word2vec,为一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。 训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。该向量为神经网络之隐藏层。 Word2vec依赖skip-grams或连续词袋(CBOW)来建立神经词嵌入。Word2vec为托马斯·米科洛夫(Tomas Mikolov)在Google带领的研究团队创造。该算法渐渐被其他人所分析和解释。

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

暂无评论
暂无评论~