表示学习(Representation Learning)之局部表示(Local Representation)与分布式表示(Distributed Representation)

article/2025/9/20 15:39:05

一个良好的表示是内容充分高效表达的基础,作为沟通计算机与现实世界的桥梁,计算机行业人员每时每刻都在研究事物的表示。比如:编程语言,早期的机器语言和现在的高级程序语言可以看作是指令的两种不同表示方式,从可读性方面评价,两者的表达能力相差甚远。再比如:数据结构,其研究的正是数据在计算机中的高效表达与存储,如下图所示,我们可以采用链表和红黑树两种不同的数据结构对有序表进行存储。

在对有序表进行插入或删除操作时,链表的时间复杂度将是 O ( n ) O(n) O(n),因为需要将后续所有节点的移动。而采用红黑树存储时,其时间复杂度是 O ( log ⁡ n ) O(\log n) O(logn),因为每次操作只涉及左子树或右子树。从上面两个例子,我们可以总结,一个良好的表示可以使后续任务更加容易,选择什么样的表示取决于后续任务。

表示学习(Representation Learning)

个人认为,表示学习是深度学习领域的一个概念,是学习数据表示的技术的集合,用于将现实世界中的数据转化成能够被计算机高效处理的形式。与之相对应,在机器学习领域,数据表示主要通过特征工程(feature engineering)实现,如下图所示:

在机器学习时代,我们如果需要对汽车进行表示,往往依靠的是领域专家手工提取特征并表示;在深度学习时代,我们直接将汽车输入模型,汽车将自动转换成高效有意义的表示。

  • 特征工程:依靠专家提取显式特征,工程量巨大,特征选取的好坏将直接决定数据表示的质量,从而影响后续任务的性能。
  • 表示学习:采用模型自动学习数据的隐式特征,数据表示与后续任务往往是联合训练,不依赖专家经验,但需要较大的训练数据集。

分布式表示(Distributed Representation)

在对数据进行表示前,我们需要先确定表示方案,或者说采用哪种表示思想对数据进行表示。有了目标,我们才能训练对应的模型。假设我们对以下四种形状进行表示

最直接的想法是对每一个形状分配一个标识符,但是符号计算机无法识别,我们稍微转变一下,将每个标识符与向量中的每一个分量对应,因此将形成一个长度为4的向量,表示每一个形状时,向量中对应的分量置1,其他分量为0。如下图所示:

可以看到,上面的表示中,每个向量只有一位为1,其余都是0,是一种非常稀疏的表示。当有 n n n个形状需要表示时,向量的长度将达到 n n n维,是一个非常高的维度。从计算机存储的角度看,这种表示方案是对每个形状分配一个独立的内存单元进行存储,所以将其命名为局部表示(Local Representation)。

局部表示还是简单的在个体层面上表示数据,我们可以通过提取更细粒度的特征来表示数据,例如,我们采用四种特征“水平”、“垂直”,“四边形”和“椭圆”对形状进行描述。因此,“横着的四边形”可以采用特征“水平”与“四边形”联合描述。类似于局部表示的向量形式,我们类似地将每一个特征对应到向量中的一个分量,我们同样将得到一个4维的向量,表示每个形状时,如果该形状拥有这个特征,向量中对应分量置1。如下图所示:

可以看到,此时每个形状的向量表示中,将不再只有一位为1,向量表示相对稠密了一些。当有 n n n个形状需要表示时,向量只需要 ⌈ log ⁡ n ⌉ \lceil\log n\rceil logn维度,向量维度大大降低。从计算机存储的角度看,这种表示方案将每个形状的表示分配到多个内存单元中,所以将其命名为分布式表示(Distributed Representation)

总结一下,局部表示与分布式表示对比如下:

  • 局部表示(Local Representation)
    • 每个内存单元存储一个数据,向量高维稀疏;
    • 向量中每个分量对应一个数据,各个分量相互排斥。
  • 分布式表示(Distributed Representation)
    • 多个内存单元共同表示一个数据,向量低维稠密;
    • 向量中每个分量单独没有意义,分量的组合才能表示具体数据。

分布式表示 VS 局部表示

现在我们将换一个角度理解表示:对输入空间的每个区域进行编码。

1. 表示能力

  • 局部表示:长度为 n n n的向量,只能将输入空间划分为 n n n个区域
  • 分布式表示:长度为 n n n的向量,能给 O ( 2 n ) O(2^n) O(2n)个不同的区域分配唯一编码

所以,相同维度的分布式表示相较于局部表示,能够将输入空间划分的更加细致,能针对更小的区域进行表示。

  • 局部表示:符号表示,任意两两概念之间的距离没有差别,无法表示数据之间的关联
  • 分布式表示:每个数据的向量表示中包含了数据间的相互关联信息,语义上相近的概念在距离上接近

所以,分布式表示能够捕获数据间的语义相关性,并且这种捕获语义相似性的能力是分布式表示天然具有的,而不需要刻意训练。

2. 参数数目
无论是机器学习任务还是深度学习任务,我们都可以讲他们一般化为如下形式:

第一层代表输入,第二层代表输出,输入与输出之间通过全连接连接。因此,对于 2 n 2^n 2n个数据

  • 局部表示:每个数据使用唯一的符号表示,向量长度为 2 n 2^n 2n,因此需要 2 n 2^n 2n个参数去识别 2 n 2^n 2n个区域
  • 分布式表示: O ( n ) O(n) O(n)个参数就能够明确表示 O ( 2 n ) O(2^n) O(2n)个不同数据,因此向量长度为 n n n,刻画 2 n 2^n 2n个数据只需要 n n n个参数

所以,分布式表示相较局部表示能够显著减少模型参数数目,带来计算效率上的提升,参数数目少也意味着模型需要较少的训练样本。

NLP中的分布式表示模型

自然语言是一种符号表示,因此自然语言处理领域(NLP)首先要解决的就是词表示问题。沿袭上面介绍的局部表示与分布式表示,在NLP领域,单词也通常被表示成这两种形式,只不过在NLP中,局部表示更多被称为独热表示(one-hot representation),分布式词表示通常被称为词向量或词嵌入(word embedding)。这里主要关注分布式词表示,将简单介绍三种主要的分布式词表示模型的由来与训练。

Distributional hypothesis

Distributional hypothesis是指:具有相同上下文的词语,应该具有相似的语义。目前,所有的分布式词向量都是基于该假设训练得到的。根据建模的词与词的关系,可以将模型分为两大类:

  1. Syntagmatic models:关注词与词之间的组合关系,强调的是相似的词会出现在同一个语境中。
  2. Paradagmatic models:关注词与词之间的替换关系,强调的是相似的词汇拥有相似的上下文而可以不同时出现。

下图展示了词与词之间的组合关系和替换关系

1. Latent Semantic Analysis(LSA)

LSA是一种Syntagmatic models,采用词-文档共现矩阵建模词语之间的组合关系。假设我们有语料doc1:“I love playing football.”、doc2:“I love playing tennis.”和doc3:“You love playing football.”。我们可以构建如下的词-文档共现矩阵:

其中蓝色方框圈出的“love”与“playing”,因为这两个单词在三篇文档中都共现了,所以他们的向量表示很相似;而红色方框圈出的“football”与“tennis”,因为没有在一个文档中共现过,所以他们的向量表示差距很大。得到词-文档共现矩阵后,需要对齐进行处理才能得到低维稠密的词向量,具体地,LSA采用了矩阵奇异值分解(SVD):
A m × n = U m × m S m × n V n × n T ≈ U m × r S r × r V r × r T A_{m\times n}=U_{m\times m}S_{m\times n}V^T_{n\times n}\approx U_{m\times r}S_{r\times r}V^T_{r\times r} Am×n=Um×mSm×nVn×nTUm×rSr×rVr×rT

取前 r r r个奇异值,最终得到的 U m × r U_{m\times r} Um×r就是我们想要的词向量。更多关系LSA的介绍可以参考《奇异值分解与LSA潜在语义分析》。

2. Global Vector(GloVe)

GloVe是一种Paradigmatic models,采用词-词共现矩阵建模词语之间的替代关系。同样是上面三篇文档,将窗口大小设置为1,我们可以构建如下图所示的词-词共现矩阵:

矩阵中的元素值表示:在以行标所代表的词为中心词的窗口内,列标所代表的词共现的次数。如蓝框所示,“football“与”tennis”这两个具有很强替换关系的词具有相似的向量表示,而红框内的“love”与“playing”不具备替换关系,因此两者的向量表示相差甚远。GloVec通过最小化如下所示的损失函数将词-词共现矩阵转化为低维稠密词向量:
J = ∑ i , j N f ( X i j ) ( v i T v j + b i + b j − log ⁡ ( X i j ) ) 2 J=\sum_{i,j}^Nf(X_{ij})(v_i^Tv_j+b_i+b_j-\log (X_{ij}))^2 J=i,jNf(Xij)(viTvj+bi+bjlog(Xij))2

其中, X i j X_{ij} Xij是矩阵中第 i i i行第 j j j列个元素, v i v_i vi v j v_j vj是单词 i i i和单词 j j j的词向量, b i b_i bi b j b_j bj是偏差项, f f f是权重函数, N N N是词汇表大小。这个模型本人暂时还没有学习过,关于该模型的介绍后续再继续补充。

3. Word2vec

Word2vec是一种采用神经网络训练词向量的方法,其不需要构建词-上下文共现矩阵。Word2vec可以分为基于上下文预测当前词的continuous Bag-of-Words模型与基于当前词预测上下文的continuous Skip-gram模型。

CBOW模型对应的损失函数如下
∑ w ∈ C log ⁡ p ( w ∣ C o n t e x t ( w ) ) \sum_{w\in C}\log p(w|Context(w)) wClogp(wContext(w))

Skip-gram模型对应的损失函数如下
∑ w ∈ C log ⁡ p ( C o n t e x t ( w ) ∣ w ) \sum_{w\in C}\log p(Context(w)|w) wClogp(Context(w)w)

可以看到上面两个模型结构都非常简单,只有输入层、映射层和输出层,没有隐含层,词向量对应于输入层到映射层的参数。具体地关于模型训练的技巧,可以参考《word2vec之CBOW模型与skip-gram模型》

参考文献

「特征工程」与「表示学习」
神经网络如何学习分布式表示
DL4NLP——词表示模型(一)表示学习;syntagmatic与paradigmatic两类模型;基于矩阵的LSA和GloVe


http://chatgpt.dhexx.cn/article/LZN1PYWm.shtml

相关文章

深度学习是表示学习的经典代表(浅谈什么是深度学习)

目录 先来看机器学习: 什么是特征? 深度学习是表示学习的经典代表: 深度学习的过程: 深度学习与传统机器学习差别: 深度学习代表算法: 先来看机器学习: 机器学习是利用经验experience来改…

深度学习中的表示学习_Representation Learning

一、深度学习网络的表达方式汇总及模型分类方法 人的大脑会对眼睛捕捉到的外界事物进行逐级抽象,逐渐提取出抽象的语义信息,以便为人脑所理解。深度学习从这一科学发现得到启发,通过网络的权值来捕捉外界输入模式的特征,并且通过…

基于GNN的图表示学习及其应用

文章内容概述 本文内容分两部分,第一部分为基于 GNN 的图表示学习,共包含两节,第1节主要从三种建模方法上对图表示学习进行对比阐述;第2节分别从两类无监督学习目标——重构损失与对比损失,对基于 GNN 的无监督表示学习…

知识表示学习(KG Embedding)—— TransX系列

文章目录 前言TransETransHTransRTransD总结参考资料 前言 知识表示学习是针对于知识图谱三元组所做的word embedding,平常所做的都是基于完整的文本表述比如一句话去产生word2vec这种副产物,但是KG中的embedding是更为直接的构建实体与关系之间的语义联…

网络表示学习总结

我的GitHub博客:咖啡成瘾患者 网络的邻接矩阵表示网络的分布式表示网络表示学习的经典工作 DeepwalkLINEnode2vec 网络表示学习的相关论文 最近看了paperweekly的两次关于网络表示学习的直播,涂存超博士与杨成博士讲解了网络表示学习的相关知识。本文将网…

Deep Multimodal Representation Learning(深度多模态表示学习)

多模态表示学习旨在缩小不同模态之间的异质性差距,在利用普遍存在的多模态数据中发挥着不可或缺的作用。基于深度学习的多模态表示学习由于具有强大的多层次抽象表示能力,近年来引起了人们的广泛关注。 多模态融合的核心问题是异质性间隙,而为…

干货!Labeling Trick: 一个图神经网络多节点表示学习理论

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! GNN 旨在学习单节点表示。当我们想要学习一个涉及多个节点的节点集表示(如链路表示)时,以往工作中的一个常见做法是将 GNN 学习到的多个单节点表示直接聚合成节点集的联合表示…

知识图谱表示学习

知识图谱是一种精细化的异构网络, 所以对其节点与边的表示学习也是一个热门的问题. 这里的学习依旧是得到它们的低维稠密向量. 这样做的好处: 降低知识图谱的高维性和异构性;增强知识图谱应用的灵活性;减轻特征工程的工作量;减少由于引入知识…

深度聚类:将深度表示学习和聚类联合优化

参考文献: 简介 经典聚类即数据通过各种表示学习技术以矢量化形式表示为特征。随着数据变得越来越复杂和复杂,浅层(传统)聚类方法已经无法处理高维数据类型。结合深度学习优势的一种直接方法是首先学习深度表示,然后再…

什么是表示学习(representation learning)表征学习 表达学习

机器学习算法的成功与否不仅仅取决于算法本身,也取决于数据的表示。数据的不同表示可能会导致有效信息的隐藏或是曝露,这也决定了算法是不是能直截了当地解决问题。表征学习的目的是对复杂的原始数据化繁为简,把原始数据的无效信息剔除&#…

知识表示学习模型

最近清华的THUNLP整理了Pre-trained Languge Model (PLM)相关的工作:PLMpapers,非常全面,想要了解最新NLP发展的同学不要错过。本来这篇是打算写一写Knowledge Graph BERT系列工作的,但是最近有在做知识图谱的一些东西所以就先整…

网络表示学习(network represention learning)

https://www.toutiao.com/a6679280803920216589/ 2019-04-13 15:40:48 1.传统:基于图的表示(又称为基于符号的表示) 如左图G (V,E),用不同的符号命名不同的节点,用二维数组&#x…

图表示学习

文章目录 1.导言1.1 为什么要研究图(graph)1.2 针对图结构的机器学习任务1.3 特征表示的难点1.4 特征表示的解决思路1.5 线性化思路1.6 图神经网络1.7 讨论:何谓Embedding1.8 总结 2.图结构表示学习2.1 deepwalk(深度游走算法)2.2 node2vec 3…

表示学习(特征学习)

文章目录 表示学习特征工程与表示学习深度学习的表示学习注:深度学习不等于多层神经网络什么时候用「手工提取」什么时候用「表示学习」? 关于特征表示学习的算法 参考资料 表示学习 表示学习的基本思路,是找到对于原始数据更好的表达&#…

表示学习与深度学习

1、表示学习 首先给出表示学习的定义: 为了提高机器学习系统的准确率,我们就需要将输入信息转换为有效的特征,或者更一般性称为表示(Representation)。如果有一种算法可以自动地学习出有效的特征,并提高最…

表示学习(Representation Learning)

一、前言 2013年,Bengio等人发表了关于表示学习的综述。最近拜读了一下,要读懂这篇论文还有很多文献需要阅读。组会上正好报了这篇,所以在此做一个总结。 鉴于大家都想要我的汇报PPT,那我就分享给大家,希望能对大家有所…

使用 Altium Designer 绘制PCB完整设计流程记录(2021.05.04更新)

前言 做了大半年的毕业设计,陆陆续续也是画了几个板子,有些东西感觉要趁现在记录下来,方便以后某天还想再画板子时查看。 修改日志 时间修改内容2021.05.04初稿完成 文章目录 前言修改日志一、关于AD版本二、原理图库和封装库三、绘制原理…

PCB设计流程步骤中的注意事项

PCB中文名称为印制电路板,又称印刷线路板,几乎所有电子设备中都会应用到PCB。这种由贵金属制成的绿色电路板连接了设备的所有电气组件,并使其能够正常运行。PCB原理图是一个计划,是一个蓝图。它说明的并不是组件将专门放置在何处&…

使用Cadence绘制PCB流程(个人小结)

之前使用过cadence画过几块板子,一直没有做过整理。每次画图遇到问题时,都查阅操作方法。现在整理一下cadence使用经历,将遇到问题写出来,避免重复犯错。 注:写该篇文章时,感谢于争博士的教学视频和《Cade…

AD原理图 PCB设计步骤

版权声明:本文为CSDN博主「唐传林」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/Tang_Chuanlin/article/details/79803575 本文总结一下AD画PCB的步骤,…