【问题标题】:Text classification using word embeddings使用词嵌入的文本分类
【发布时间】:2020-07-10 18:02:19
【问题描述】:

我有一个正面和负面内容的数据集。所以让我们假设它是一个垃圾邮件项目。

我需要建立一个模型,它可以对 pos/neg 中的内容进行分类。所以我正在做一个有监督的学习任务,因为我有一个标记的数据集。因此,最好的选择必须是使用 SVC 模型。

到目前为止一切顺利。

现在复杂的部分来了。

我想通过使用 Keras LSTM 模型来解决相同的任务。所以我的问题:

它仍然是有监督的还是无监督的,因为我在这个任务中使用了词嵌入,在这里参考这篇文章,词嵌入用于无监督的任务:https://www.quora.com/Is-deep-learning-supervised-unsupervised-or-something-else

上面写着:

深度学习可以是无监督的:词嵌入、图像编码 进入更低或更高维度等。

那么 - 它现在是无监督的还是有监督的(因为我的数据集被标记了)?

深度学习是另一种技术,如无监督学习和监督学习,或者这些主题之间的关系如何?深度学习是使用监督和非监督技术吗?还是必须在深度学习、无监督学习和有监督学习之间做出选择?

这太令人困惑了!请帮忙!特别是对于 LSTM 任务。我需要知道它在哪里受到监督(因为标记的数据集)或无监督(因为使用了词嵌入)

提前谢谢各位!

【问题讨论】:

    标签: machine-learning text-classification word-embedding unsupervised-learning supervised-learning


    【解决方案1】:

    词嵌入本身是一项无监督的任务。这并不意味着您不能将其用作诸如文本分类之类的更大监督任务的一部分(更多地将其视为数据预处理)。因为,对于您更大的问题,您正在使用标签,所以您的问题是受监督的,并且您不将这些标签用于词嵌入子任务这一事实并不会改变这一点。

    作为一个非常普遍的规则,问题的性质或问题(有监督/无监督)由整个端到端问题决定,而不是由其子任务决定。

    用数字特征进行更简单的分类/回归设置的类比可能会有所帮助:这里我们经常缩放输入的数字特征;缩放也是一种无监督技术(不需要标签),但由于它仅用于预处理,因此不会影响更大问题的性质。

    在词嵌入的情况下,任务本身由 ML 模型处理(而不是相对简单的算术运算,如缩放)这一事实并没有改变论点:它只是监督分类中的一个无监督组件管道。

    【讨论】:

    • “作为一个非常普遍的规则,性质或问题(监督/非监督)由整个端到端问题决定,而不是由其子任务决定。”这有助于我更好地理解!非常感谢!
    【解决方案2】:

    一句鼓励的话,我记得当时的感觉完全一样;当我开始学习这个领域时,非常沮丧。它确实变得更容易了!

    词嵌入由无监督学习创建。但是,您可以使用经过训练的嵌入层受监督的投影中,就像您正在做的那样。换句话说,您的项目是监督学习之一,其中一层使用通过无监督训练技术获得的权重。

    进一步了解嵌入层、它们是如何制作的以及它们可以为监督学习做什么可能会有所帮助。我将尝试以非技术性的方式进行解释,以便您在学习细节和学究之前先对概念有所了解。
    假设您从一个巨大的语料库开始。您计算每个单词的出现频率,并使用它对每个单词进行相对于其他单词的排名(或使用其他公式,无论如何)。这是一种文本“标记化”的方法。关键是将单词变成数字。显然这很重要,因为我们正在固定对它们进行数学运算,但这会造成一些麻烦:数字关系不一定包含任何关于含义的关系的信息字。为了改善这种情况,您可以像这样训练一个小网络:从您的语料库中获取块并创建skipgrams,并教导网络在应用权重和cosine similarity 的度量之后,产生的输出应该是@ 987654323@ 如果单词彼此靠近(或其他标准),或者0(或者-1,如果您愿意的话)当它们不靠近彼此出现时。在语料库的过程中,倾向于一起使用的单词将一起移动,反之亦然。目标是创建一种标记(即单词)相对含义的映射(或拟像,如果你愿意的话);换句话说,目标是创建单词相对含义的 n 维表示。然后,在训练之后,可以保存嵌入以在像您这样的项目中使用。然后,您的嵌入层将在保存的嵌入中查找标记并获取其输出,即嵌入空间中该词的向量表示;他们在我们的理论地图中的坐标。这被认为是“无监督的”,因为您不必明确提供基本事实进行比较;在这种情况下,它是从训练样本中按程序生成的(即从任何输入生成的跳过图)。另一个例子是,如果预期输出与输入相同(如在自动编码器中),这是无监督的(如前所述),因为您不必提供预期输出;如果您提供输入,它会自动获得预期的输出。
    如果所有这些都令人困惑,那么请停下来考虑一下您自己的想法:如果我问您一个与“大比萨饼”中的“大”含义相同的词,则请咨询您对“”含义的理解big” 与所指示的短语有关,并尽可能接近它:也许是“large”这个词。嵌入是一种制作地图的方法,其中“大”和“大”沿大多数轴(即在大多数维度上)非常靠近。
    因此,当您加载一些预训练的嵌入时,您只是将一些权重加载到您的一个层中。有时人们用零初始化层,有时人们使用随机正态或高斯分布,有时人们使用特定值(例如加载保存的网络或加载嵌入);这都一样。如果你继续进行有监督的训练,那么你就是在这样做:进行有监督的训练。在嵌入层之后,您正在使用的信息不是任意词,而是这些:相对含义。如果这不只是整洁,我不知道是什么!我发现考虑您的数据在通过网络时所代表的含义很有帮助。

    【讨论】:

      【解决方案3】:
      1. 您的项目是一项监督学习任务,因为您希望算法能够从您提供的标记数据中学习。

      2. 深度学习是基于人工神经网络的方法的一部分,可用于有监督和无监督方法。

      3. 词嵌入是词映射:每个词都表示为一个向量。您使用词嵌入将词转换为向量,以便为神经网络提供数据。

      4. 反过来,词嵌入通常由浅层神经网络使用无监督方法生成。

      【讨论】:

      • 谢谢!我想我明白了!只是为了确定:@ 4):但它们也可以用于像我这样的监督方法,对吧?
      猜你喜欢
      • 1970-01-01
      • 2020-02-03
      • 2018-02-09
      • 1970-01-01
      • 1970-01-01
      • 2016-08-28
      • 2016-11-17
      • 2018-12-28
      • 1970-01-01
      相关资源
      最近更新 更多