【问题标题】:(Bidirectional) RNN for simple text classification(双向)RNN 用于简单的文本分类
【发布时间】:2016-02-23 14:51:23
【问题描述】:

TL;DR:Bidirectional RNN 是否有助于简单的文本分类并且填充是邪恶的?

在我最近的工作中,我为同一个任务创建了一个 LSTM 模型和一个 BLSTM 模型,即文本分类。 LSTM 模型做得很好,但我决定试一试 BLSTM,看看它是否可以进一步提高准确性。最后,我发现 BLSTM 的收敛速度要慢得多,而且令人惊讶的是,它过拟合了,尽管我以 50% 的概率应用了 dropout。

在实施过程中,我对 LSTM 和 BLSTM 都使用了展开的 RNN,期望更快的训练。为了满足要求,我手动将输入文本填充到固定长度。

假设我们有一个句子“我早上睡得很晚,错过了与 Nebuchadnezzar 的采访”,然后在转换为预训练词嵌入的索引数组时在其末尾填充 0。所以我们得到类似 [21, 43, 25, 64, 43, 25, 6, 234, 23, 0, 0, 29, 0, 0, 0, ..., 0]。请注意,“th”(应该是“the”)是一个错字,而且“Nebuchadnezzar”这个名字太少见了,所以它们都没有出现在词汇表中,所以我们也用 0 替换它,这对应于一个特殊的完整 -零词向量。

以下是我的感想:

  1. 有些人喜欢在将语料库输入到 GloVe 或 Word2Vec 模型之前将未知词转换为特殊词,例如“”。 Does it mean that we have to first build the vocabulary and change some low-frequency words (according to min count setting) into "" before training?训练 RNN 时,是不是比把未知词改成 0 还是直接去掉更好?

  2. 就我而言,输入 LSTM 或 BLSTM 网络的尾随 0 会使输出混乱。尽管没有来自外部的新信息,但单元状态仍会在随后的每个时间步中更新,因此最终单元的输出将受到长尾随 0 的严重影响。在我看来,BLSTM 会受到更大的影响,因为它还会以相反的顺序处理文本,例如 [0, 0, 0, ..., 0, 321, 231],特别是如果我们设置初始忘记门到 1.0 以在开始时培养记忆。我看到很多人使用填充,但如果文本被填充到很长并且在 BLSTM 的情况下会不会造成灾难?

对这些问题有任何想法吗? :-o

【问题讨论】:

    标签: machine-learning neural-network lstm recurrent-neural-network


    【解决方案1】:

    我基本同意 Fabrice 上面的回答,但要补充一些 cmets:

    1. 永远不要将相同的令牌与 UNK 和 PAD 一起使用。大多数深度学习库都掩盖了 PAD,因为它不提供任何信息。另一方面,UNK 确实为您的模型提供了信息(这里有一个词,我们只是不知道它是什么,而且它可能是一个特殊的词),所以您不应该掩盖它。是的,这确实意味着在一个单独的预处理步骤中,您应该检查您的训练/测试数据,建立一个词汇表,例如前 10,000 个最常用的单词,然后将其他所有内容切换到 UNK。

    2. 如 1 中所述,大多数库只是掩盖(即忽略)填充字符,因此这不是问题。但正如你所说,你没有必要填充句子。例如,您可以在训练时按长度对它们进行分组,或者将句子一次一个地输入到您的模型中。

    【讨论】:

      【解决方案2】:

      根据经验,对UNKNOWNPADDING 使用不同的嵌入是有帮助的。既然你在做文本分类,我想如果没有太多,删除它们不会太有害,但我对文本分类不够熟悉,不能肯定地说。

      至于填充序列,您是否尝试过以不同方式填充序列?例如,为前向 LSTM 填充序列的开头,为后向 LSTM 填充序列的结尾。由于您使用零填充,因此激活不会那么强(如果有的话),并且您的 LSTM 现在将以您的序列而不是零结束,这可能会覆盖您的 LSTM 内存。

      当然,这些只是我脑海中的建议(我没有足够的声誉来发表评论),所以我没有答案。您必须自己尝试一下,看看它是否有帮助。我希望是的。

      干杯。

      【讨论】:

        猜你喜欢
        • 2016-12-28
        • 2021-07-20
        • 2020-04-21
        • 2019-01-13
        • 2017-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多