zoukankan      html  css  js  c++  java
  • 求通俗讲解下tensorflow的embedding_lookup接口的意思

    https://www.zhihu.com/question/48107602

    作者:王凯
    链接:https://www.zhihu.com/question/48107602/answer/159801895
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    从id类特征(category类)使用embedding_lookup的角度来讲:

    1、onehot编码神经网络处理不来。embedding_lookup虽然是随机化地映射成向量,看起来信息量相同,但其实却更加超平面可分。

    2、embedding_lookup不是简单的查表,id对应的向量是可以训练的,训练参数个数应该是 category num*embedding size,也就是说lookup是一种全连接层。详见 brain of mat kelcey

    3、word embedding其实是有了一个距离的定义,即出现在同一上下文的词的词向量距离应该小,这样生成向量比较容易理解。autoencode、pca等做一组基变换,也是假设原始特征值越接近越相似。但id值的embedding应该是没有距离可以定义,没有物理意义,只是一种特殊的全连接层。

    4、用embedding_lookup做id类特征embedding由google的deep&wide提出,但隐藏了具体实现细节。阿里 第七章 人工智能,7.6 DNN在搜索场景中的应用(作者:仁重) 中提下了面对的困难,主要是参数数量过多(引入紫色编码层)和要使用针对稀疏编码特别优化过的全连接层( Sparse Inner Product Layer )等。

    5、在分类模型中用这种id类特征,主要是希望模型把这个商品记住。但id类特征维度太高,同一个商品的数据量也不大,因此也常常用i2i算法产出的item embedding来替代id特征。

    一般做自然语言相关的。需要把每个词都映射成向量,这个向量可以是word2vec预训练好的,也可以是在网络里训练的。
    在网络里需要先把词的id转换成对应的向量,这个函数就是做这件事的。

  • 相关阅读:
    webgame模块划分
    VC的若干实用小技巧(一)
    反病毒技术:从亡羊补牢到免疫防御
    MySQL 备份和恢复
    企业网络安全整体解决方案
    大型银行核心网络的三层结构设计
    编写"优美"的SHELLCODE
    linux中apache访问控制配置文件。
    网站同步镜像制作!
    Linux远程桌面(vnc)
  • 原文地址:https://www.cnblogs.com/DjangoBlog/p/8001018.html
Copyright © 2011-2022 走看看