zoukankan      html  css  js  c++  java
  • 2. AutoEncoder在NLP中的应用

    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的构建方式可以训练任意的输入。
    image

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

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

    image

    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》,它使用自动编码器来共同学习单词和短语的表示。

    image

    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有很多相似的地方。

    image

    3.3 Document Clustering(文档聚类)

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

    image

    3.4 Sentiment Analysis(情绪分析)

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

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

    4. 总结

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

  • 相关阅读:
    面试题29:数组中出现次数超过一半的数字
    面试题25:二叉树中和为某一值的路径
    Path Sum II
    面试题28:字符串的排列
    面试题24:二叉搜索树的后序遍历序列
    面试题23:从上往下打印二叉树
    面试题22:栈的压入、弹出序列
    面试题20:顺时针打印矩阵
    面试题18:树的子结构
    Linux 中使用 KVM
  • 原文地址:https://www.cnblogs.com/huangyc/p/9825405.html
Copyright © 2011-2022 走看看