PaddlePaddle中embedding的作用是什么?

  • 关键字: embedding作用

  • 问题描述:看了PaddlePaddle词向量相关的代码,大量使用了embedding_layer+fc_layer的结构,请问这里常用的paddle.layer.embedding()方法的具有有什么作用?在PaddlePaddle中是如何实现的?

  • 相关代码:

embed_first = fluid.layers.embedding(
        input=first_word,
        size=[dict_size,EMBED_SIZE],
        dtype='float32',
        is_sparse=is_sparse, #是否使用稀疏更新的标志。
        param_attr='shared_w' #该图层参数
    )
  • 问题讨论:
    问题描述中其实涉及了两个主要的问题,即paddlepaddle中embedding()方法的作用是什么?以及PaddlePaddle如何实现embedding方法?下面就这两个问题简单解答一下

  • 问题解答:
    关于 embedding 的作用:

    • 1.为了让计算机处理输入,首先需要对数据的规范化表示方法。one-hot,BOW,n-gram 等等,都是人类设计出的不同表示输入数据方法。
    • 2.embedding 是一种distributed representation,它的出现是相对于 one-hot 的表示法。
      • 在 one-hot 表示方法中,一个编码单元表示一个个体,除了某一个维度上的值是 1,其余维度都是 0。
      • distributed representation 用几个编码单元而不是一个编码单元来表示一个个体,是一类表示学习方法,用一个更低维度的实向量表示“一个概念”(可以理解为机器学习任务输入观察的输入特征),向量的每个维度在实数域 R R R 取值
    • 3.embedding 在自然语言处理任务中获得了很大的成功,所以也常被翻译为“词向量”。但是,作为一类表示学方法,我们可以为所有离散的输入学习对应的 embedding 表达,并不不局限于自然语言处理任务中的词语。
    • 4.简单而言,引入 embedding 的动机有:
      • 将高度稀疏的离散输入嵌入到一个新的实向量空间,对抗维数灾难,使用更少的维度,编码更丰富的信息。
      • 我们观测的不同离散变量都可以嵌入同一个实向量空间,得到统一的表达形式。定义于实向量空间上的各种数学运算,可以作为描述语义的数学工具。

    embeding层可以理解为从一个矩阵中选择一行,一行对应着一个离散的新的特征表达,是一种取词操作

    关于PaddlePaddle中embedding方法是如何实现的?可以参考 https://github.com/PaddlePaddle/Paddle/blob/develop/python/paddle/trainer_config_helpers/layers.py#L938,PaddlePaddle的embedding是用table_projection实现的,关键代码片段为:

    with mixed_layer(
            name=name,
            size=size,
            act=LinearActivation(),
            bias_attr=False,
            layer_attr=layer_attr) as mix:
        mix += table_projection(input=input, size=size, param_attr=param_attr)
    return mix
    

    table_projection的计算公式是out.row[i] += table.row[ids[i]],在上述代码连接中也可以找到

  • 问题拓展:
    embedding,即词向量,这个概念并不是PaddlePaddle独有的,在自然语言处理方面,embedding操作也是非常常见的,其主要目的将词转为相应的向量,这样一个词就可以映射到高维空间,一个常见的做法就是计算词与词之间的距离,因为词被表示成了向量,计算距离就是简单的计算两个向量间的距离,通过这种向量计算获得的值通常都可以看作是两个词之间的相似度。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值