【问题标题】:How to normalize probabilities of words in varying length sentences?如何标准化不同长度句子中单词的概率?
【发布时间】:2018-08-11 04:06:48
【问题描述】:

假设我们有一个 RNN 模型,它输出在语料库上训练的给定上下文(或没有上下文)的单词的概率。 我们可以将序列中每个单词的概率链接起来,以获得句子本身的整体概率。但是,因为我们是链式的,句子的概率(或可能性)会随着长度的增加而下降。即使我们使用对数概率,情况也是如此。

无论如何我们可以标准化这些概率吗?这是我在构建语言模型时面临的一个有趣的子问题。我有一个包含 900 万个句子的语料库,其长度从 2 到 30 不等。但是所有的句子都是有效的,我用这些作为语料库来训练 LM。

现在,我正在获取数据子集并对其进行更改,例如将句子改组或将句子切成两半,添加或添加随机单词等。这是为了创建一个不需要有效的“假句子”。我想做的是在所有有效句子的可能性上获得某种阈值,然后当我使用 RNN 计算假句子的概率时,它应该相当小或与计算的阈值不同。

tldr; 像

这样的句子
"the cat sat on the red mat"
"the cat sat on a mat"
"a cat sat on the red mat with brown coffee stains"

都应该具有可比较的概率/分数/指标 而像

这样的句子
"cat cat mat on the brown red sat is"
"not mat in door on cat"

得分较低。

【问题讨论】:

    标签: machine-learning nlp deep-learning rnn language-model


    【解决方案1】:

    你可以引入一个特殊的词END-OF-SENTENCE,并预测它的概率以及其余的词。在这种情况下,您将能够正确地对句子长度的分布进行建模。在 Jurafsky 的 NLP book 中的练习 4 中有一个很好的例子。

    确实,句子“A cat sat on the red mat with brown coffee send”比“A cat sat on the red mat with END”的可能性更大,因为句子很少以“with”结尾。如果你的 RNN 足够好,它会反映这一点。

    如果您仍想标准化句子概率,您可以计算 perplexity(每个单词的平均对数概率),例如在 this question 中,该概念以简单的 1-gram 模型显示。

    【讨论】:

    • 感谢您的指点。虽然,我绝对认为我需要规范化,因为我正在研究的语料库中的单词分布很疯狂。虽然最流行的词出现了几千次,但最不流行的词只出现了一次,并且包含这些不太常见的词的句子也是有效的。将这一事实与不同的长度相结合,概率迅速下降到 0 并且超出了 LM 的目的。老实说,我不认为仅仅对长度进行归一化也有助于达到阈值,但让我用困惑的用法来验证这一点。
    猜你喜欢
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 2018-04-12
    相关资源
    最近更新 更多