Machine learning 基于词嵌入的文本分类

Machine learning 基于词嵌入的文本分类,machine-learning,text-classification,word-embedding,unsupervised-learning,supervised-learning,Machine Learning,Text Classification,Word Embedding,Unsupervised Learning,Supervised Learning,我有一个正面和负面内容的数据集。让我们假设这是一个垃圾邮件项目 我需要建立一个模型,可以对pos/neg中的内容进行分类。所以我在做一个有监督的学习任务,因为我有一个标记的数据集。因此,最佳选择必须是使用SVC模型 到目前为止还不错 现在复杂的部分来了 我想通过使用Keras LSTM模型来解决同样的问题。因此,我的问题是: 它仍然是受监督的还是未受监督的,因为我在这项任务中使用单词嵌入,并参考本文,单词嵌入用于非监督任务: 上面写着: 深度学习可以是无监督的:单词嵌入、图像编码 进入低维或高维

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

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

到目前为止还不错

现在复杂的部分来了

我想通过使用Keras LSTM模型来解决同样的问题。因此,我的问题是:

它仍然是受监督的还是未受监督的,因为我在这项任务中使用单词嵌入,并参考本文,单词嵌入用于非监督任务:

上面写着:

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

那么-是因为我的数据集被标记,所以它现在是无监督的还是有监督的

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

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


提前谢谢各位

单词嵌入本身是一项无监督的任务。这并不意味着你不能把它作为一个更大的监督任务的一部分,比如文本分类,把它更多地看作是数据预处理。因为,对于更大的问题,您使用的是标签,您的问题是一个受监督的问题,并且您没有在单词嵌入子任务中使用这些标签的事实不会改变这一点


作为一条非常普遍的规则,被监督/未被监督的问题的性质由整个端到端问题决定,而不是由其子任务决定

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


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

一句鼓励的话,我回忆起当时的感觉完全相同;当我开始学习这个领域时,我非常沮丧。这真的变得容易了

单词嵌入是通过无监督学习创建的。但是,您可以像现在这样在监督投影中使用经过训练的嵌入层。换句话说,您的项目是一个有监督的学习,其中一个层次是使用通过无监督训练技术获得的权重

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

您的项目是一项有监督的学习任务,因为您希望算法能够从您提供的标记数据中学习

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

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

反过来,单词嵌入通常由浅层神经网络以无监督的方式生成


非常感谢。我想我明白了!可以肯定的是:@4:但它们也可以在有监督的方法中使用,就像我的情况一样,对吗?作为一个非常普遍的规则,被监督/未被监督的问题的性质取决于整个端到端问题,而不是它的子任务。这帮助我获得了更好的理解!谢谢!