内容来自《深入浅出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此参数必须指定否则报错,参数是(词汇表大小,输出的大小),input_length是pad之后的每个句子的长度

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.推荐系统

深入浅出Embedding相关推荐

  1. 【赠书】深入浅出embedding:原理解析与应用实践

    ‍‍ Embedding(嵌入)是当下人工智能领域的热点,并发挥着越来越重要的作用.本书从Embedding基础概念和方法讲起,逐渐深入其原理,并以应用实例作为辅助,是快速了解并掌握Embedding ...

  2. 终于有人把Embedding讲明白了

    导读:如果要总结深度学习大获成功的原因,那至少有两样东西必须入选:一样当然是很"深"的神经网络模型,这也是深度学习的"深度"的由来,另一样就是Embedding ...

  3. 每日一书丨终于有人把Embedding讲明白了

    导读:如果要总结深度学习大获成功的原因,那至少有两样东西必须入选:一样当然是很"深"的神经网络模型,这也是深度学习的"深度"的由来,另一样就是Embedding ...

  4. 【深度学习】使用transformer进行图像分类

    文章目录 1.导入模型 2.定义加载函数 3.定义批量加载函数 4.加载数据 5.定义数据预处理及训练模型的一些超参数 6.定义数据增强模型 7.构建模型 7.1 构建多层感知器(MLP) 7.2 创 ...

  5. 终于有人把卷积神经网络(CNN)讲明白了

    导读:深度学习作为人工智能的一个分支,在计算机视觉处理方面取得的巨大成就,与深度学习中的算法及方法密切相关,如卷积神经网络.反向传播算法.正则化方法.迁移方法等.其中很多方法具有普遍性,在自然语言处理 ...

  6. 详解word2vec

    1.嵌入是用向量表示一个物体 2.用数值表示标识符,在机器学习领域称为词嵌入,也称分布式表示 3.词嵌入通常有两种方法--基于平台的Embedding学习,基于预训练模型 4.word2vec是最开始 ...

  7. 老码农眼中的大模型(LLM)

    即便全力奔跑,也不一定能跟上时代的步伐.但如果失去了学习的动力,很可能会被时代淘汰.而且,当时代淘汰我们的时候,往往不会有任何预警.基于大模型的 ChatGPT 给我们带来了极大的震撼,那么什么是大模 ...

  8. ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书

    导读:今天是图灵诞辰109周年的日子.图灵被称为人工智能之父,他对于计算机和人工智能的贡献是深远的.开创性的,他用谜一样的人生为人们解密了一个又一个的数字密码. 今天,华章妹就为大家推荐几本最新的AI ...

  9. 自然语言处理从入门到应用——自然语言处理的基础任务:词性标注(POS Tagging)和句法分析(Syntactic Parsing)

    分类目录:<自然语言处理从入门到应用>总目录 词性标注 词性是词语在句子中扮演的语法角色,也被称为词类(Part-Of-Speech,POS).例如,表示抽象或具体事物名字(如" ...

  10. 深入理解深度学习——BERT派生模型:SpanBERT(Improving Pre-training by Representing and Predicting Spans)

    分类目录:<深入理解深度学习>总目录 MLM训练方法是BERT拥有自然语言理解能力的核心训练方法.然而,BERT在预训练过程中挑选掩码词的概率是独立计算的,即BERT掩码词的粒度是最小的, ...

最新文章

  1. 打印session cookie
  2. Java黑皮书课后题第3章:3.7(金融应用:整钱兑零)修改程序清单2-10,使之只显示非零的币值单位,用单词的单数形式显示一个单位,复数形式显示多于一个的单位的值
  3. TUST 数据库原理 试卷(A)
  4. 程序员需要谨记的九大安全编码规则
  5. json tostringfiy_JS学习笔记 : 类型转换之「抽象值操作」
  6. SSL 1461——最大连续数列的和
  7. 策略模式+工厂模式(反射)+枚举代替 大量 if..else if..
  8. git 设置忽略文件类型 gitignore
  9. 使用61850网关实现modbus和电力iec61850协议的转换
  10. 信息系统服务器维护,信息系统运行维护服务方案(IT运维服务方案)-20210729025444.pdf-原创力文档...
  11. python 埋点 库_vue 友盟统计埋点插件
  12. word在试图打开文件时遇到错误,解决办法
  13. css3 火焰文字,Css3字体做出火焰效果的实现步骤
  14. 目标检测、追踪梳理:帧差法、光流法、背景减除法
  15. win10安装cuda10.2+tensorflow-GPU 1.14.0
  16. ctfshow--node.js漏洞
  17. 软技能-代码之外的生存指南
  18. 红外测温仪技术方案开发
  19. st7920驱动OCMJ2X8C屏使用CGRAM自定义图标
  20. MySQL学习(8)︱DISTINCT去重与表连接

热门文章

  1. 三维全景虚拟现实:现在的VR全景行业怎么样?|时空克隆 三维视频融合 投影融合 点卯 魔镜系列
  2. 动态域名ddclient
  3. 教师节HTML祝福网页,教师节的祝福语
  4. 《烈烈先秦》8、独撑大厦的真勇者——半残战神李牧
  5. 他捧红了王菲、张学友等近百个巨星,却甘心成为最普通的学佛人…
  6. Oracle 触发器写法
  7. javascript的apply理解
  8. OpenGL学习笔记:GLAD和第一个窗口
  9. 编程中常见的数学概念及常用解法
  10. 大数据是什么?华为云学院带你探索大数据之旅