【问题标题】:Why do we do one-hot encoding in language modelling?为什么我们在语言建模中进行 one-hot 编码?
【发布时间】:2018-10-14 17:18:07
【问题描述】:

谁能解释一下为什么 one-hot 编码在语言建模中很好用? (特别是在深度学习方面)

(我知道word2vec等其他编码方式更好,我只想从根本上知道为什么one-hot编码有效)。

提前谢谢你!

【问题讨论】:

    标签: nlp deep-learning rnn one-hot-encoding


    【解决方案1】:

    one-hot 编码的主要应用是用没有任何先验偏差的向量来表示符号。 'book'、'apple'、'library' 是没有任何可测量值的符号表示。

    我们在神经网络中有两个地方使用 one-hot 编码: 1. 编码输入 2. 编码预测输出。

    神经网络的输入称为特征表示,而输出则用作查找工具的组件(在索引i 中查找值)。但是,我想说的是,两者实际上都是查找操作的工具。

    神经网络在任何计算操作中寻找的最重要属性是 1. 可微性和 2. 与 GPU 的并行化。查找操作,如果它像索引项目并基于整数索引查找它们,则不是可微操作,并且不可能轻松并行完成,但如果进行此操作的项目是向量,则索引可以表示为 one-hot 向量,查找操作可以是向量向量(数字矩阵)和索引的 one-hot 表示的简单矩阵乘法。这种乘法运算既可并行化又可微分。

    当您使用 one-hot 编码 x 表示输入单词时,将其与矩阵 W 相乘的结果用作查找操作(这就是我们所知道的嵌入层),如果输出标签y 使用 one-hot 编码输出 y' 和转置 y 的乘法是预期索引中的确切值(通常是预测标签的概率或 logit)。这种表示并不总是执行此操作的最佳方式,这就是为什么您经常在现代框架中找到“稀疏”替代方案:即sparse_categorical_crossentropy 用于输出。

    【讨论】:

    • 感谢您的解释 Mehdi。
    猜你喜欢
    • 2018-09-11
    • 2021-12-13
    • 2021-04-14
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    • 2023-01-16
    相关资源
    最近更新 更多