深入浅出Embedding

内容来自《深入浅出Embedding》 吴茂贵,王红星 第一部分

1.万物皆可Embedding

  • Word Embedding向Item Embedding,Graph Embedding,Categorical variables Embedding延伸,静态Wrod Embedding向ELMo,Transformer,GPT,BERT,XLNet,ALBERT等预训练动态模型延伸
  • word2vec的两种模型:CBOW和Skip-Gram分别是根据上下文生成目标值和根据目标值生成上下文
  • Hierarchical Softmax和Negative Sampling对Softmax和word2vec进行优化加速
  • 只要有序列特征的场景应该都适用于Embedding思想,微软和Airbnb的推荐系统利用Item Embedding
  • Embedding将离散变量转变为连续变量,用低维向量表示一个object,能够捕捉到语义空间中的线性关系
  • 将图中的节点转化为序列样本后也可以使用Embedding,目的是用低维,稠密,实值的向量表示节点
  • DeepWalk先进行随机游走生成sequence,再用Skip-Gram模型进行向量学习,获得每个节点的Embedding
  • DeepWalk只适用于无向无权重的图,LINE使用边采样使Node Embedding分布更均衡平滑
  • 一阶相似度将两个节点间边的权重作为相似度,二阶相似度增加考虑了两个节点是否存在相同的相邻节点
  • node2vec关注了同质性和结构性,并且可权衡关系
  • 阿里团队提出EGES进行商品个性化推荐,解决可扩展性,数据稀疏性,冷启动问题
  • 知识图谱引入推荐系统的方式主要有依次学习,联合学习,交替学习
  • 一般Embedding难以处理一词多义情况,语境词嵌入Contextual Word Embedding尝试解决
  • ELMo,GPT采用自回归语言模型AR LM,BERT使用掩码语言模型,MLM,XLNet采用排列语言模型PLM
  • Transformer减少了计算量,提高并行率,利用self-attention解决长期依赖问题
  • Transformer在推荐系统方面有BST,WDL,DIN,视觉处理领域有IPT

2.获取Embedding的方法

  • torch.nn.Embedding中参数max_norm和norm_type基本不使用,通常用kaiming和xavier初始化,sparse参数不一定能稀疏加速,使用momentumSGD,Adam等优化器时包含momentum项,不相关词Embedding依然会叠加动量,无法加速
  • embedding是一个查找表,形状是(语料库大小,embedding_dim),存储固定字典和大小的词嵌入,将序列转化为嵌入,输入(batch_size,nums_index),输出(input形状,embedding_dim)
  • torch.nn.Embedding初始化weight使用标准正态分布
  • tf.keras.layers.Embedding与前类似,input_length是输入序列长度,如果需要连接Flatten再连接Dense此参数必须指定否则报错

3.计算机视觉处理

  • 卷积核是卷积过程的核心,常用的有垂直边缘过滤器,水平边缘过滤器,Sobel过滤器,过滤器通过卷积神经网络训练得到
  • 加深网络可以减少参数数量,扩大感受野.感受野是卷积神经网络每一层输出的特征图上的像素点在输入图片上映射的区域大小
  • 残差网络使得误差很小也能有效传播
  • 迁移学习是将学到共性的模型搬来学特性,根据数据相似度和数据量大小采用不同处理方法
  • torchvision(pretrained=True)和tf.keras.application内置了很多预训练模型
  • TensorFlowHub和huggingFace-transformer模型可以直接部署或进行迁移学习

4.文本及序列处理

  • LSTM解决BPTT过程中导致的梯度爆炸或消失,GRU将LSTM中的输入门,遗忘门和输出门变为更新门和重置门,计算效率更高,实际使用GRU和LSTM性能差异不大,但GRU比LSTM简单
  • 双向LSTM类似机器学习中集成思想,吧多角度的信息综合在一起,其性能往往好于只考虑单个方向
  • encoder-decoder架构是一种通用计算框架,具体使用模型自定,变化组合多.缺点是解码器输入的上下文变量相同(y1=g©,y2=g(c,y1)…)都是c,生成的文本不尽如人意,引入注意力机制解决
  • seq2seq可以考虑到输出序列之间的序列依赖性,同时支持不定长的输入和输出

5.注意力机制

  • 软注意力对key求权重概率,是一种global attention,硬注意力某个key=1,其余是0,对齐方式要求很高

  • 注意力机制先依据kye和query计算相似度,再用SoftMax归一化得到权重,对对应value加权求和得到输出

  • seq2seq中编码器得到的context对生成某个目标单词的影响力一致,这并不适合一些需要偏重某方面的环境

  • 引入注意力机制后对encoder在不同时间步的隐状态赋予不同的注意力权重能得到不同的context,将其输入decoder产生注意力

  • seq2seq计算注意力权重分配的计算key是不同时间步的state,query是decoder上一次的隐状态,计算权重后得到context,输入decoder产生这一次输出

  • 在机器翻译语境下注意力分布可以看作输入单词和目标单词的对齐概率

  • Transformer由Encoder和Decoder组件构成,每个Encoder和Decoder由6个层组成,每层包含多头自注意力层和全连接层,使用LayerNorm,dropout避免过拟合

  • Transform-XL的循环机制和相对位置编码克服了Transformer捕捉长距离依赖的缺点并解决上下文碎片化问题

  • Reformer将传统的多头注意力机制改为使用局部敏感的注意力机制,使用逆Transformer,前者降低了时间消耗,后者降低了内存消耗

6.从word2vec到ELMo

  • ELMo提出后,Word Embedding时代进入Contextualized Word-Embedding时代
  • ELMo除了提供词嵌入外,还提供生成词嵌入的预训练模型,实际使用时ELMo可以基于预训练模型,根据实际上下文场景动态调整单词的Word Embedding表示
  • ELMo包括输入句子,字符编码层,双向语言模型,混合层,输出

7.从ELMo到BERT和GPT

  • ELMo使用了BiLSTM,限制了并发处理能力,且LSTM长期记忆效果不理想
  • BERT的输入包括标识嵌入,位置嵌入和段嵌入
  • BERT使用掩码语言模型MLM,这样学到的词向量可同时关注左右词
  • BERT预训练模型采用了Transformer的Encoder部分,而GPT系列使用了Decoder部分,GPT更适合自然语言生成,BERT更擅长处理自然语言理解任务

8.BERT的优化方法

  • BERT的缺点包括训练方法与测试方法不一致,对被置换的MASK标记,BERT的损失函数使用约等号
  • XLNet避免了Mask方法在自编码语言模型中的缺点
  • ALBRET分解Vocab Embedding矩阵,跨层共享参数,修正了句子预测,用更少的参数取得了更好的效果
  • ELECTRA引入生成对抗网络对BERT进行优化

9.推荐系统

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2022年5月10日
下一篇 2022年5月10日

相关推荐