1. AutoEncoder介绍

2. Applications of AutoEncoder in NLP

3. Recursive Autoencoder(递归自动编码器)

4. Stacked AutoEncoder(堆栈自动编码器)

1. 前言

深度学习是机器学习的一个分支,它设计大量的学习函数和概念模型。大多数机器学习需要大量的人工筛选的特征作为输入,通常特征筛选需要对数据的意义有深入的了解。并且一个能很好的适用于一组数据的特征可能并不使用于其他数据集。深度学习算法在不同层次上对数据进行抽象,每一个层都是根据上一个简单的层抽象定义。这是为什么深度学习能够在复杂的任务熵表现出强大能力的原因。

2. AutoEncoder介绍

在接下来的内容中,我们将主要讨论自动编码器(AE)在NLP中的应用。自动编码器是表示学习算法的一个很好的例子。它结合了编码器功能和解码器功能,以尽可能重建输入的方式进行训练,同时隐藏层表示具有有用的属性。

2.1 Recursive Autoencoder(递归自动编码器)

RAE是递归自动编码器,假设我们有一句话的分词后的向量表示方式,希望从词向量中推断这个句子大概率。我们先为句子构建二叉树结构。第一步,RAE重建两个叶子节点,而后再每个步骤中,重建一个叶子节点和上一个RAE中的隐藏节点,直到最后重建出整棵树,RAE的构建方式可以训练任意的输入。

2.2 Stacked Autoencoder(堆叠自动编码器)

我们后面将介绍如何使用堆叠自动编码器构建深度网络。SAE是通过依次训练单个自动编码器,使用反向传播进行微调,然后添加输出层(例如用于分类问题的softmax层)来完成的。已经证明单独训练层的方法导致准确性的显着提高。

3. AutoEncoder in NLP

自然语言处理(NLP)是一个研究领域,它对涉及计算机理解人类语言的问题感兴趣。NLP包含计算机科学中一些最古老,最困难的问题。近年来,深度学习使得一些看似棘手的问题取得了有希望的进展,如下所示。事实上,自动编码器已被用于尝试解决以下问题:

3.1 word Embeddings(词向量)

为了让计算机识别语言,我们需要能够使用单词,句子和段落并将它们映射到向量。我们将单词转换为向量的过程。有一下几种方法,词集模型、词代模型、n-gram、TF-IDF、word2vec。这些是传统的词向量模型,由Lebret和Collobert在2015年提出的论文《“The Sum of Its Parts”:
Joint Learning of Word and Phrase Representations with Autoencoders》,它使用自动编码器来共同学习单词和短语的表示。

3.2 NMT(机器翻译)

机器翻译是一个非常难的问题,它的目标是准确地将文本从一种语言翻译成另一种语言。
逐字翻译的传统方法会产生非常差的结果,部分原因是大多数现代语言之间存在显着的句法差异。解决方案是分析输入语言中的语法,生成解析树,然后执行转换,生成一个新的解析树,可用于生成输出语言中的文本。
但是,由于同音异义词而导致错误:在不同的语境中,词语可能会有非常不同的含义。解决方案是分析源语言中的语义,然后根据这个含义生成目标文本。这个含义可以用单词,句子和段落向量的形式编码。
这些不同的方法由Vauquois金字塔显示。通常,中间表示的深度越大,翻译质量越高。正如Chandar和Lauly在2014年提出的论文《Bilingual Autoencoders with Global Descriptors
for Modeling Parallel Sentences》,讨论如何使用自动编码器来构建双语单词和短语表示,不过说到机器翻译,不得不说的也是在2014年,由google提出的《Sequence to Sequence Learning
with Neural Networks》,其实AE和Seq2Seq有很多相似的地方。

3.3 Document Clustering(文档聚类)

文档聚类是将文档(例如网页或新闻报道)聚合成不同类别的问题。我们将主要讨论无监督的文档分类。这里的挑战是以什么样的方式表示文档,使得它们可以容易且准确地聚类。
2006年,Hinton使用自动编码器把804414个向量降低为2000个维度,每个向量代表新闻专线故事中的特定单词概率。从下面显示的结果可以看出,自动编码器明显优于基于PCA的语义分析的标准方法和Roweis在2000年提出的非线性降维算法。

3.4 Sentiment Analysis(情绪分析)

我们将研究情绪分析中最基本的任务:确定陈述的情绪。换句话说,我们想要判断给定的文本是正面的,中性的还是负面的。这种情绪分析在商业中具有重要的应用,例如股票预测以及产品研究和营销。

早期的方法只是寻找积极或消极的话语,并单独预测这种情绪。例如,包含“好”一词的评论可能是积极的。这种方法可以非常快速地实现,因此仍然有几家公司使用这种方法实时对大量数据进行情绪分析。然而,这样的策略可能是不准确的(大多数研究发现这种方法对于大约60-80%的测试数据是准确)。
2011年,由R Socher、Andrew Y. Ng等人发表的论文《Semi-Supervised Recursive Autoencoders
for Predicting Sentiment Distributions》讨论使用递归自动编码器的方法实现情绪分析。

4. 总结

文本主要介绍了AE在NLP中可以尝试去解决的问题,其实AE能有这么多用处,主要还是得益于AE算法的强大的数据压缩的功能,能够把无论什么形式的数据压缩到固定维度,供给进行下一步运算使用。

2. AutoEncoder在NLP中的应用的更多相关文章

  1. GAN︱GAN 在 NLP 中的尝试、困境、经验

    GAN 自从被提出以来,就广受大家的关注,尤其是在计算机视觉领域引起了很大的反响,但是这么好的理论是否可以成功地被应用到自然语言处理(NLP)任务呢? Ian Goodfellow 博士 一年前,网友 ...

  2. 从0到1,了解NLP中的文本相似度

    本文由云+社区发表 作者:netkiddy 导语 AI在2018年应该是互联网界最火的名词,没有之一.时间来到了9102年,也是项目相关,涉及到了一些AI写作相关的功能,为客户生成一些素材文章.但是, ...

  3. 图解BERT(NLP中的迁移学习)

    目录 一.例子:句子分类 二.模型架构 模型的输入 模型的输出 三.与卷积网络并行 四.嵌入表示的新时代 回顾一下词嵌入 ELMo: 语境的重要性 五.ULM-FiT:搞懂NLP中的迁移学习 六.Tr ...

  4. [转] 理解NLP中的卷积&&Pooling

    转自:http://blog.csdn.net/malefactor/article/details/51078135 CNN是目前自然语言处理中和RNN并驾齐驱的两种最常见的深度学习模型.图1展示了 ...

  5. 转:使用RNN解决NLP中序列标注问题的通用优化思路

    http://blog.csdn.net/malefactor/article/details/50725480 /* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ author ...

  6. [NLP/Attention]关于attention机制在nlp中的应用总结

    原文链接: https://blog.csdn.net/qq_41058526/article/details/80578932 attention 总结 参考:注意力机制(Attention Mec ...

  7. 在NLP中深度学习模型何时需要树形结构?

    在NLP中深度学习模型何时需要树形结构? 前段时间阅读了Jiwei Li等人[1]在EMNLP2015上发表的论文<When Are Tree Structures Necessary for ...

  8. 理解NLP中的卷积神经网络(CNN)

    此篇文章是Denny Britz关于CNN在NLP中应用的理解,他本人也曾在Google Brain项目中参与多项关于NLP的项目. · 翻译不周到的地方请大家见谅. 阅读完本文大概需要7分钟左右的时 ...

  9. NLP中的预训练语言模型(五)—— ELECTRA

    这是一篇还在双盲审的论文,不过看了之后感觉作者真的是很有创新能力,ELECTRA可以看作是开辟了一条新的预训练的道路,模型不但提高了计算效率,加快模型的收敛速度,而且在参数很小也表现的非常好. 论文: ...

随机推荐

  1. ASP.NET车辆管理系统

    原文地址:https://blog.csdn.net/lisenyang/article/details/46606181 系统开发环境为VS2010,采用ASP.NET框架,数据库采用SQL Ser ...

  2. 高级Unix命令

    在Unix操作中有太多太多的命令,这些命令的强大之处就是一个命令只干一件事,并把这件事干好.Do one thing, do it well.这是unix的哲学.而且Unix首创的管道可以把这些命令任 ...

  3. javascript 中的==(相等运算符)与===(等同运算符)比较

    javascript 中的==(相等运算符)与===(等同运算符)比较:(1)==用于一般比较,===用于严格比较,(2)==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回flas ...

  4. Oracle in和exists效率问题分析

    --------------------------in和exists效率问题------------- 单说in和exsist,in的效率较差.关于EXISTS与IN的区别:EXISTS检查是否有结 ...

  5. 路径不对 导致FileNotFoundError: [WinError 2] 系统找不到指定的文件, 问题解决办法

    执行python + selenium 代码 from selenium import webdriver driver = webdriver.Chrome("D:\AutoConf\bi ...

  6. 网页与APP中那些优美的登陆表单

    我从Dribbble收集了20个漂亮的登陆表单案例.希望你看后能从中受益,并对你以后的登陆表单设计有帮助.设计一个登陆表单是非常容易,但大多设计都很糟糕.毫无亮点.无论如何,这篇Dribbble案例集 ...

  7. 【转】10个非常有用的网页设计工具 | Goodfav Magazine

    10+ very useful Web Designer Tools Totally free legal computer eBooks download, available in various ...

  8. Atitit 大龄软件工程师的出路attilax总结

    Atitit 大龄软件工程师的出路attilax总结 1.1. 创业vs打工 联合创始人 合伙人1 1.2. 项目管理 架构师1 1.3. 软件培训 讲师2 1.4. 研究院研究员2 1.5. 继续博 ...

  9. Java Web(十一) 分页功能的实现

    虽然现在有很多好用的框架,对分页进行支持,很简单的就把分页的效果做出来,但是如果自己手写是一个怎样的流程的?今天就来说说它,手动实现分页效果. --WH 一.分页的思路 首先我们得知道写分页代码时的思 ...

  10. 91平台iOS接入demo

    源码:http://pan.baidu.com/s/1DuBl6 今天整理硬盘,找到了一个有趣的demo.一年前,91助手游戏联运呈爆棚趋势,但是许多使用FlashAir开发的优秀的游戏和应用都卡在了 ...