作者:CHEONG

公众号:AI机器学习与知识图谱

研究方向:自然语言处理与知识图谱

本文主要分享自编码器、变分自编码器和条件变分自编码器的相关知识以及在实际实践中的应用技巧,原创不易转载请注明出处,原稿获取请关注公众号【AI机器学习与知识图谱】回复:自编码器,下面首先简单认识一下:自编码器、变分自编码器和条件变分自编码器之间的关系。

1.自编码器: 自编码器结构:Encoder将输入数据进行压缩,Decoder将其转化回输入的近似值,自编码器可以对输入进行重构,但是无法充当生成模型,变分自编码器可以用作生成模型;

2.变分自编码器: 变分自编码器通过Encoder将每个样本不是压缩到单个点,而是映射到标准正态分布上,变分自编码器为每个样本产生一个概率分布;

3.条件变分自编码器: 自编码器和变分自编码器都仅仅在Encoder阶段有输入,而条件变分自编码器在Encoder和Decoder阶段都有输入,使得Decoder可以按需生成特定结果。如下图所示:

生成模型的难度在于判断生成分布和真实分布的相似度,自编码器寻找的是单值映射关系,而变分自编码器寻找到的是两个概率分布之间的映射关系。

一、变分自编码器

首先从VAE思想的出发点,明白条件变分自编码器是一个生成模型,给定了真实样本X,生成这个真实样本X对应的后验概率分布P(Z|X),假设后验概率分布P(Z|X)是服从正太分布的,这目前都是Encoder部分工作,然后在Decoder部分,从分布P(Z|X)中采样变量Z,然后再通过采样样本Z还原生成X,这样就完成了从X生成X,如下图所示:

但在上述变分自编码器中存在以下两个问题:

问题1. 如果在重构X^过程中,模型使得最后的方差为0,那么就没有随机性了,模型就相当于简单的自编码模型了,不能体现生成模型的特点。

针对这个问题变分自编码器是通过让所有的P(Z|X)都向标准正态分布看齐,相当于给模型添加了高斯噪声,保证了模型具有一定的生成能力,实现方法是引入KL Loss,即为了让P(Z|X)都能逼近标准正态分布N(0,I),计算一般正态分布和标准正态分布的KL散度作为额外的Loss,根据KL散度性质,通过最小化这个Loss,便最小化了P(Z|X)和标准正态分布N(0,I)距离

问题2. 如果由真实数据X得到概率分布P(Z|X),VAE是通过神经网络拟合出来的,网络类似于传统的seq2seq模型,如VAE中采用的也是LSTM,下面便可以看一下VAE网络结构:

VAE模型结构如上图,和传统的seq2seq模型不同,VAE模型encoder的结果不再是一个明确的值,而是生成一个分布(u,σ)(u, \sigma)(u,σ),再从这个分布中采样最后encoder的结果,因此相同的输入可能对应不同的encoder结果,对应不同的输出

变分自编码器VAE中变分的理解: 变分体现在引入了KL散度及其性质,通过KL散度来最小化后验分布P(Z|X)与标准正态分布之间的距离。变分自编码和条件变分自编码器中由于存在一个随机变量,因此反向传播算法无法通过随机变量来回传递梯度损失信号以达到更新模型参数,为了解决这个问题,将随机变量的参数进行分解,并通过随机梯度变分贝叶斯训练模型参数

二、条件变分自编码器CVAE

变分自编码器可以无监督的对数据样本进行建模从而通过采样生成结果,条件变分自编码器在此基础上引入了监督信息条件,从而在不同的给定条件下生成不同的结果,CVAE模型图如下所示:

CVAE存在的问题: KL散度消失问题,在CVAE做生成模型时,其解码器通常是一个自回归模型实现,实际会导致训练过程出现一个问题即KL正则项会消失趋近0,在实践中这意味着学习到的特征将不再能够表达观测到的数据,针对KL消失问题很多论文提出了相关策略

三、关键词提取TextRank

TF-IDF算法可以用于关键词提取,但TF-IDF仅仅从词的统计信息出发,没有考虑词之间的语义信息,因此使用TextRank算法,TextRank是一种基于图排序的关键词提取算法,考虑到了相邻词的语义关系,TextRank算法和PageRank算法在思想上类似,PageRank的节点是网页用于对网页重要度排序,TextRank算法节点是单词,用于对词的重要程度排序。

TextRank将某一个词与其前面的N个词、以及后面的N个词均具有图相邻关系,类似于N-gram语法模型。具体实现是设置一个长度为N的滑动窗口,所有在这个窗口之内的词都视作词结点的相邻结点;则TextRank构建的词图为无向图。

TextRank算法提取关键词步骤:

Step1. 把给定的文本T按照完整句子进行分割

Step2. 对于每个句子,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词和形容词,其中ti,jt_{i,j}ti,j是保留后的候选关键词

Step3. 构建候选关键词图G = (V,E),其中V为节点集,由(2)生成的候选关键词组成,然后采用共现关系构造任两点之间的边,两个节点之间存在边仅当它们对应的词汇在长度为K的窗口中共现,K表示窗口大小,即最多共现K个单词

Step4. 根据上面公式,迭代传播各节点的权重,直至收敛

Step5. 对节点权重进行倒序排序,从而得到最重要的T个单词,作为候选关键词

Step6. 由上述5中得到最重要的T个单词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词

四、关键词增强的条件变分自编码器

1. 自编码器

2. 变分自编码器

3. 条件变分自编码器:cvae相对于vae来说,将无监督学习变成了有监督学习,有监督的方式是对输入句子的会编码得到一个分布N(u1,σ1)N(u_1, \sigma_1)N(u1,σ1),然后对于生成结果也生成一个分布N(u2,σ2)N(u_2, \sigma_2)N(u2,σ2),对这个两个分布引入一个KL LOSS,然后最小化loss这样实现了有监督学习

4. 基于关键词增强的条件变分自编码器

CVAE中对于输入的句子先会通过RNN得到Sentense Embeddding,每个句子都会得到一个Sentense Embedding,然后将每个Sentence Embedding拼接在一起

关键词增强方式: 在关键词增强过程中,关键词是从输出句子中提取出来的,关键词增强可以理解成利用关键词生成文章,然后利用关键词结合上文信息,这样提到预测下一句的准确度,效果提升明显

关键词和输入的句子如何结合: 将Sentense Embedding和Keyword Embedding拼接在一起传入网络中,关键词相当于提供了额外的强特征信息

五、评估指标

1.BLEU:Bilingual Evaluation Under Study,一种经典的自动生成效果评估指标,含惩罚因子的BLEU评估,如下公式所示:

使用的BLEU值就是覆盖率,生成句子对原句子的覆盖率大小,不考虑n-gram的顺序

BLEU-1:1-gram:指句子切分成一个字只看一个字的覆盖率

BLEU-2:2-gram:将句子一次切分成两个字,相当于看词的覆盖率,同样不考虑顺序n-gram的BLEU值

2.Distinctness:用于测评自动生成文本中用词多样性情况的指标

3.随机变量x的熵: 熵是随机变量x不确定性的度量,x取值越多越不确定熵越大

4.联合熵,从一维变量扩展到多维变量时,联合随机变量的熵

5.条件熵,条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性,条件熵 H(Y|X)相当于联合熵 H(X,Y)减去单独的熵 H(X),即H(Y|X) = H(X,Y) −H(X)

6.相对熵:也就是我们提到的KL散度,相对熵可以用来衡量两个概率分布之间的差异,当两个概率分布相同时,则相对熵为0。设p(x)和q(x)是离散随机变量x中取值的两种概率分布,则p对q的相对熵为

7.交叉熵:衡量非真实分布q(x)和真实分布p(x)相似度

从这里可以看出,交叉熵和相对熵相差了H(p)H(p)H(p),而当ppp已知的时候,H(p)H(p)H(p)是个常数,所以交叉熵和相对熵在这里是等价的,反映了分布pppqqq之间的相似程度。

六、往期精彩

【知识图谱系列】Over-Smoothing 2020综述

【知识图谱系列】基于生成式的知识图谱预训练模型

【知识图谱系列】基于2D卷积的知识图谱嵌入

【知识图谱系列】基于实数或复数空间的知识图谱嵌入

【知识图谱系列】自适应深度和广度图神经网络模型

【知识图谱系列】知识图谱多跳推理之强化学习

【知识图谱系列】知识图谱的神经符号逻辑推理

【知识图谱系列】动态时序知识图谱EvolveGCN

【知识图谱系列】多关系神经网络CompGCN

【知识图谱系列】探索DeepGNN中Over-Smoothing问题

【知识图谱系列】知识图谱表示学习综述 | 近30篇优秀论文串讲

【知识图谱系列】动态知识图谱表示学习综述 | 十篇优秀论文导读

【面经系列】八位硕博大佬的字节之旅

【机器学习系列】机器学习中的两大学派

各大AI研究院共35场NLP算法岗面经奉上

干货 | Attention注意力机制超全综述

干货 | NLP中的十个预训练模型

干货|一文弄懂机器学习中偏差和方差

FastText原理和文本分类实战,看这一篇就够了

Transformer模型细节理解及Tensorflow实现

GPT,GPT2,Bert,Transformer-XL,XLNet论文阅读速递

机器学习算法篇:最大似然估计证明最小二乘法合理性

Word2vec, Fasttext, Glove, Elmo, Bert, Flair训练词向量教程+数据+源码

Word2vec, Fasttext, Glove, Elmo, Bert, Flair训练词向量教程+数据+源码

原稿获取请关注公众号后回复:自编码器,原创不易,有用就点个赞呀!

【自然语言处理系列】自编码器AE、变分自编码器VAE和条件变分自编码器CVAE相关推荐

  1. 【Pytorch神经网络理论篇】 22 自编码神经网络:概述+变分+条件变分自编码神经网络

    1 无监督学习模型的概述 在监督训练中,模型能根据预测结果与标签差值来计算损失,并向损失最小的方向进行收敛. 在无监督训练中,无法通过样本标签为模型权重指定收敛方向,这就要求模型必须有自我监督的功能. ...

  2. 【人工智能概论】 变分自编码器(Variational Auto Encoder , VAE)

    [人工智能概论] 变分自编码器(Variational Auto Encoder , VAE) 文章目录 [人工智能概论] 变分自编码器(Variational Auto Encoder , VAE) ...

  3. NLP自然语言处理系列-week6-Seq2Seq+Attention

    NLP自然语言处理系列-week6-Seq2Seq+Attention 目录 序列到序列模型 序列到序列算法 Seq2seq在机器翻译中的应用 RNN序列到序列演示第一步 RNN序列到序列演示 注意力 ...

  4. 自然语言处理系列篇——关键词智能提取

    自然语言处理系列篇--关键词智能提取:https://zhuanlan.zhihu.com/p/25889937

  5. 自然语言处理系列十七》中文分词》分词工具实战》Python的Jieba分词

    注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书<分布式机器学习实战>(人工智能科学与技术丛书)[陈敬雷编著][清华大学出版社] 文章目录 自然语言处理系列十七 分词工 ...

  6. 自然语言处理系列二十二》词性标注》词性标注原理》词性介绍

    注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书<分布式机器学习实战>(人工智能科学与技术丛书)[陈敬雷编著][清华大学出版社] 文章目录 自然语言处理系列二十二 词性 ...

  7. NLP自然语言处理系列-音乐推荐系统实战 - 数据处理

    NLP自然语言处理系列-音乐推荐系统实战 - 数据处理 本文进行音乐推荐系统案例实战,对音乐数据集进行数据清洗和特征提取,基于矩阵分解进行音乐推荐. 数据处理 读取音乐数据集,统计数据指标,选择文本信 ...

  8. 变分自编码器和条件变分自编码器 (VAE CVAE)

    变分自编码器(VAE) 变分自编码器(VAE)是通过大量的观测数据 xi\mathbf{x}_{i}xi​ 总结出数据的分布 p(X)p(\mathbf{X})p(X),进而可以通过无穷次的采样获取所 ...

  9. NLP自然语言处理系列-基于知识图谱的电影推荐实战

    NLP自然语言处理系列-基于知识图谱的电影推荐实战 kaggle数据集 https://www.kaggle.com/netflix-inc/netflix-prize-data?select=com ...

最新文章

  1. DNN数据库核心表结构及设计思路探研
  2. oracle11g安装补丁升级
  3. python各个解释器的用途-常用的五种Python解释器|老男孩网络Python学习课程
  4. 题目1090:路径打印
  5. python web flask开发框架_零基础入门python web框架Flask开发
  6. Python使用lxml模块和Requests模块抓取HTML页面的教程
  7. 区块链系列教程之:比特币中的挖矿
  8. 使用dva框架的总结
  9. Linux设置时间和硬件时间
  10. jdk动态代理使用详解
  11. Guice依赖注入(接口多实现)
  12. 高一计算机算法教案,高中信息技术 算法及其实现 教案
  13. 淘宝自动查券找券返利机器人搭建教程
  14. MATLAB读取文件中的所有同类型数据,并记录其峰值
  15. opengles之展翅飞翔的雄鹰
  16. 史克鲁克唱诗班-我最爱的!
  17. python怎么爬虎牙_Python爬虫:爬取虎牙星秀主播图片
  18. XShell免费版的安装配置教程以及使用教程
  19. 电路设计的3W原则、5W原则、3H原则、5H原则、20H原则、五五规则
  20. Echarts中迁徙图,设置点和航线的不同颜色

热门文章

  1. python教程视频哪个好-Python入门视频看哪个好?适合初学者的教学视频推荐
  2. Premiere 出现“该级别的帧大小/帧速率无效。请减小视频范围或帧速率,或者增加配置文件和级别,然后重试”的解决办法
  3. [宋史学习] 高梁河之战
  4. Oracle数据库 动态SQL
  5. uniapp社区动态实战:根据图片数量动态改变图片大小
  6. 腾讯开放者平台微下载申请
  7. CSS 动画指南: 原理和实战(二)
  8. 《分析服务从入门到精通读书笔记》第一章、数据分析层次结构(2)
  9. 锐龙处理器对linux软件支持咋样,amd锐龙现在还有小毛病吗?据说软件支持不太好?...
  10. 龙之战神微信登录服务器,37龙之战神服务器正式关服公告