首页 > 其他分享 >《深入浅出Embedding》随笔

《深入浅出Embedding》随笔

时间:2023-04-29 11:02:42浏览次数:37  
标签:BERT 嵌入 模型 深入浅出 神经网络 Embedding GPT 随笔


ChatGPT的核心运行机制或许是Transformer, ChatGPT的核心数据机制或许就是嵌入(Embedding)了。什么是Embedding呢?了解Embedding可以为我们的软件研发工作带来哪些帮助呢?鉴于此,老码农阅读了《深入浅出Embedding》(吴茂贵 王红星著,机械工业出版社,2021年)一书,本文是阅读该书的读书笔记和随感。

1. 关于Embedding

Embedding是一个向量,用以表达一个实体对象。该实体对象可以是一个单词,一个序列,一件商品,一个动作,一本书,一部电影等等。机器无法直接接收或处理标识符,标识符数据的数值化表示即为嵌入,即分布式表达。

Embedding 起源于Word2vec的Word Embedding,在NLP领域中取得了成功之后,开始把Item、Graph、Node、Position 甚至图像都转换为Embedding。就NLP而言,处理的一般步骤,首先做必要的清理工作,例如清楚特殊符号、格式转换、过滤停用词等等,然后进行分词、索引化,再利用相关模型和算法单词、短语等标识符向量化,形成静态或动态的词嵌入,最后输出给下游的任务,例如问答,机器翻译,自动摘要等等。其中,词嵌入或预训练模型是关键所在。

《深入浅出Embedding》随笔_自然语言处理

词嵌入是预训练模型的学习载体,其中,ELMo和GPT采用自回归语言模型,BERT采用mask语言模型,XLNet采用排列语言模型。训练一个神经网络,意味着要输入训练样本并不断调整神经元的权重,从而不断提高对目标预测的准确性。vocabulary的大小决定了神经网络权重矩阵的具体规模,负样本可以提高训练速度并改善词嵌入的质量。

如今,Embedding几乎无处不在,无论是传统机器学习、推荐系统,还是深度学习、自然语言处理,甚至图像处理都涉及了Embedding的技术问题。由于Embedding在本质上是一种数据表达,了解Embedding还需要了解诸如注意力机制、神经网络等基础知识。

2. 注意力机制

注意力机制源于对人类视觉的研究,指人类关注一些信息的同时忽略其他信息的选择能力,俗称“抓重点”。注意力机制主要有两种,软注意力是对所有key求权重概率,是一种全局计算机制,而硬注意力是直接精确定位到某个key,而忽略其他。在NLP中,注意力机制被看作单词对齐模型,在机器学习语境下非常直观,这就容易理解到那篇经典论文的示例。

Transformer可以看成一种特征提取器,能够平行处理序列问题,利用self-attention机制有效解决长期依赖问题。Transformer 彻底改变了深度学习领域。

Transformer 使用自注意力机制,可以让单词之间直接建立联系。Transformer模型涉及两种掩码方式:padding mask 和sequence mask。padding mask 用于长短不一的语句,sequence mask 只用在Decoder的自注意力中。掩码语言模型是一种真正的双向方法。

多头注意力可以从3个方面提升注意力层的性能:

  1. 扩展了模型专注于不同位置的能力
  2. 将缩放点积注意力过程重复多次,在把输出会并起来
  3. 提高了多个“表示子空间”

3. 神经网络基础

CNN是一种前馈神经网络,由一个或多个卷积层和顶端的全连接层组成,同时包括关联权重和池化层。增加通道就是增加卷积核,卷积核相当于过滤器,类似于标准神经网络中的权重矩阵,一般通过梯度下降算法反复迭代求得。加深网络层数是为了减少参数的数量,扩大感受域。而层数增加会导致梯度消失,除了采用合适的激活函数外,还要使用残差连接。 

RNN适合处理序列数据,及前后顺序有关的数据。RNN除了增加时间步长或序列长度外,也可以纵向扩展成多层循环神经网络,但只具备短期记忆。LSTM可以用于解决长期依赖问题,其变种GRU则提高了计算的效率。双向循环神经网络是集成算法思想的体现。

4. 词嵌入(Word Embedding)

Word Embedding 本质上是一种静态嵌入的方法,模型训练完成后每个单词的表达就固定了。Word2vec实现了从one-shot到词嵌入的转换,但没有解决一词多义的问题。ELMo则将Word Embedding带到了语境词嵌入的时代。

4.1 ELMo 词嵌入

ELMo是最早进行语境化词嵌入的方法之一,是典型的自回归预训练模型,包括了两个单向LSTM实现的单向语言模型。其核心思想体现在深度上下文上,首先把输入转化成字符级的Embedding,然后生成上下文无关的词嵌入,再双向语言模型生成上下文相关的词嵌入。但ELMo基于BI-LSTM,并发能力受到影响。

GPT和BERT是生成式的预训练模型,基于可平行处理的Transformer。

4.2 BERT 词嵌入

BERT使用上下文来预测单词,是在海量语料的基础上进行自监督学习,即没有人工标注的数据上进行监督学习。BERT的输入编码项链是标识嵌入(token Embedding)、位置嵌入(position Embedding)和段嵌入(segment Embedding)这三个嵌入特征的单位和。基于BERT的词嵌入可同时关注左右词的信息。

在下游的NLP任务中,可以使用BERT的特征表示作为该下游任务的词嵌入特征。也就是说,BERT提供的是供下游任务迁移学习的模型,该模型可以根据下游任务微调或固定之后作为特征提取器。除微调方法外,BERT也可使用特征提取方法,使用预先训练好的BERT模型来创建上下文的词嵌入,擅长处理自然语言理解任务。

4.3 GPT 词嵌入

GPT采用多层单向的transformer decoder,可以使用传统的语言模型进行训练,通过上文预测下一个单词,更擅长处理自然语言生成任务。GPT和GPT-2在架构上没有大的变化,只在规模、数据量上有所不同。GPT对下游采用有监督学习方式,通过修改输入格式,并添加一个全连接层。而GPT-2对下游采用无监督学习方式,不改变不同下游任务的参数和模型。

GPT-3 延续了GPT的单向语言模型训练方式,规模参数增大到1750亿,并使用45TB数据进行训练。同时,聚焦于更通用的NLP模型。

BERT由Transformer的Encoder模块构成,使用多头注意力,可以同时从某词的左右两边进行关注。而GPT-2采用遮掩多头注意力,只能关注词的右边,如下图所示——

《深入浅出Embedding》随笔_机器学习_02

5. 生成/获取 Embedding

词嵌入的学习方法主要有两种:1)将嵌入作为一层,随机初始化那些词向量,然后通过正负向学习得到最终的词向量;2)使用预训练的词嵌入。传统上,根据上下文生成目标词嵌入,可以使用CBOW模型,根据目标生成上下文采用skip-gram模型。CBOW 模型是根据某个词前后的若干词来预测该词,可以看成多分类,skip-gram则根据某个词的条件概率生成这个词的上下文。

使用PyTorch的Embedding Layer,把一个张量(tensor)转换为词嵌入,TensorFlow平台也有对应的网络层,具体步骤如下:

  1. 准备语料库
  2. 预处理,得到不同单词构成的词典,词典包含各单词及其索引
  3. 构建神经网络,把Embedding layer作为第一层,初始化对应的矩阵权重(查表获得)
  4. 通过训练来不断更新权重矩阵。

把预训练好的词嵌入作为模型的权重,进行微调,是一种迁移学习的方法。使用预训练模型,首先要考虑目标模型的数据量及目标数据与源数据的相关性,入门可以选择:github.com/huggingface/transformers. 微调允许修改预训练模型的参数来学习目标任务,常用方法是固定底层参数,调整顶层或具体层的参数。

6. Embedding 的应用

词嵌入诞生于NLP 领域, 因此在NLP领域中有着广泛的应用。除了NLP领域之外, Embedding 同样对各种领域产生非常大的影响。

6.1 用Embedding 表现分类特征

对结构化数据使用神经网络或深度学习框架进行分析时,首先需要对连续特征和类别特征进行处理。如果是连续特征一般进行分段处理,对分类特征则可以进行数字编码或者Embedding。如果类别颗粒度很粗,可以采用one-hot编码,如果颗粒度较细可以使用Embedding,最后拼接这些数据作为网络的输入层。

6.2 用Embedding提升ML性能

对于传统的机器学习算法,例如XGBoost,采用相同的数据集和算法,但输入预处理的方式如果是Embedding处理,机器学习模型的性能会有较大提升。

6.3 在推荐系统中的应用

在结构化数据上运行神经网络时, entity Embedding 表现得很好。在推荐系统中,协同过滤基于矩阵分解模型,利用潜在特征的内积进行推荐,而内积属于线性变换,其特征的表现有限。如果利用神经网络取代内积部分,可以学到特征之间任意的函数关系。多层感知机利用FM、DNN等特征提取方法,这个架构可以无需人工特征工程,能同时学习低阶和高阶的组合特征,FM和DNN模块可以共享特征嵌入部分,进而提升训练效率及模型性能。用户对商品评价数据的稀疏性是影响推荐系统质量的主要因素之一,利用卷积神经网络的特征提取功能来学习高阶产品特征表示,然后作用到商品矩阵。 同样,使用Transformer的自注意力机制也可拥有强大的特征提取功能。

7. 小结

如果模型是大厦,那么Embedding就是砖瓦。Embedding技术由最初的自然语言处理领域在向机器学习、搜索排序、推荐和知识图谱领域延伸,具体表现为Word Embedding向item embbeding,graph Embedding,categorical variable embbeding 的扩展。同时,Embedding自身也在从单一的静态表达向实体的动态表达演变,例如,Word Embedding 向ELMo,GPT,BERT等动态预训练模型演进,这是技术系统动态化趋势的一种体现。

标签:BERT,嵌入,模型,深入浅出,神经网络,Embedding,GPT,随笔
From: https://blog.51cto.com/wirelesscom/6236659

相关文章

  • 计算机科学速成课随笔2
    中央处理器(CPU)计算机的心脏就是“中央处理单元”,简称“CPU”CPU负责执行程序,而程序由一步步的操作完成,这些操作就叫做“指令”但是对于俺们小白来说,详细的理解CPU的各个组件和各个线的分布是不太可能的我们需要一个高层次的视角叫做“微体系架构”(应该就是抽象的理解一下的意......
  • 计算机科学速成课随笔1
    # ALU(算数逻辑单元)计算机数学的大脑负责运算的单元第一个ALU英特尔74181(4位输入)ALU有两个单元,一个是算术单元,另一个就是逻辑单元 算术单元,负责计算操作(增量运算。。。)运用逻辑门计算机中1代表true,0代表falseXOR(异或)的逻辑门刚刚好可以满足大部分的0,1相加但是计算的......
  • 不会编辑置顶公告所以放到置顶随笔里啦hh
    考虑到博客园不支持手机端浏览、有部分功能无法调试,使用体验并不是特别好。邪童已经在学习Linux以及Django框架等内容,准备学习自己租服务器,搭建自己的个人博客。预计在暑假就会着手搭建自己的个人博客,大家可以浅浅期待一下哟!......
  • 计算机操作系统随笔
    计算机操作系统是一种控制和管理计算机硬件和软件资源的软件程序,类比为一座大厦的物业管理。它负责管理计算机硬件资源,如中央处理器、内存、硬盘等,以及软件资源,如程序、文件等。一座大厦的物业管理主要负责管理大厦的各项资源,如电力、水源、电梯、消防等,确保大厦能够正常运作。......
  • 第一次写随笔,本文用于测试 xlwings 使用手册
    xlwings使用手册本人目前也在学习中,如发现编写内容存在错误,请及时与我联系,勿喷!单纯的api使用,以及部分实例.主要用于快速查找方法和参数.非教学内容转载请注明来源,谢谢安装和导入模块安装模块pipinstallxlwings-ihttps://pypi.tuna.tsinghua.edu.cn/simple导......
  • 第一次写随笔,本文用于测试 xlwings 使用手册
    xlwings使用手册本人目前也在学习中,如发现编写内容存在错误,请及时与我联系,勿喷!单纯的api使用,以及部分实例.主要用于快速查找方法和参数.非教学内容转载请注明来源,谢谢安装和导入模块安装模块pipinstallxlwings-ihttps://pypi.tuna.tsinghua.edu.cn/simple导......
  • 关于聚合根,领域事件的那点事---深入浅出理解DDD
    作者:京东物流赵勇萍前言最近有空会跟同事讨论DDD架构的实践落地的情况,但真实情况是,实际中对于领域驱动设计中的实体,值对象,聚合根,领域事件这些战术类的实践落地,每个人理解依然因人而异,大概率是因为这些概念还是有一些抽象,同时有有别于传统的MVC架构开发。在此,通过小demo的方式......
  • openAI cookbook - embedding
    https://github.com/openai/openai-cookbook Embedding是什么意思就不说了基于大模型的Embedding本身是包含比文本更多的内涵的,因为包含了大量的相关性但Embedding怎么用,基本逻辑是文本相似性所以Semanticsearch是最简单的,把Embedding存到向量数据库里面,search就行推荐也......
  • 如何在Godot中使用ParallaxBackground实现稳定的2d游戏背景[一问随笔]
    问题:我尝试给2d游戏添加静态的背景,当角色运动速度很快时相机的渲染就跟不上角色了,背景会发生这样巨大的位移。我将Camera2d节点和背景节点绑在一起,但根本无法解决这个问题。我还尝试制作天空盒子作为解决方案,有没有什么更好的方案?解决:Godot提供了两种节点ParallaxBa......
  • 读书随笔:读TED的全球权利的转移
    TED:全球权利的转移大致讲述过去权力到哪里,秩序到哪里,但现在,在国家层面之间有着新的国际权利,由互联网、资金控制,他们呼风唤雨,但不受国家法律的节制,要规范,联合国这样的组织显然无能无力。国家也在国际化,以前敌人在墙外,现在敌人在墙内。A内发生的事,不单是A的事情,可能影响全球。单极世......