论文笔记:Learning to Embed Categorical Features without Embedding Tables for Recommendation
摘要
本文提出了deep hash embedding(DHE)的框架,来代替原来初始化一个embedding table 再去look up 的方法。
- 如何学好类别特征的embedding是各种推荐模型的核心;
- 现在业界常用的方法就是初始化一个embedding table,然后look_up,一个特征对应固定一行;
- 这种方法的缺点在于:集合大(high-cardinality)的特征和之前没见过的特征,学习不好;但这种情况在真实场景中非常常见;
- DHE首先用多种hashing函数将特征值编码为一个唯一的标识符向量,在接DNN学习成embedding;
- 编码模型是确定的,不可学习的,并且不需要存储;嵌入网络DNN在训练中是不断更新的;
- 优势:有更好的AUC值相比与传统的one-hot编码方式,而且模型更小;
论文地址
1.introduction
首先从神经网络的角度讨论了现有的各种基于one-hot的嵌入方法。
然后介绍了DHE的密集哈希编码,深度嵌入网络,以及使用侧面特征进行更好的编的扩展,并介绍了文章实验结果。
- focus:提升large-vocabulary的类别特征embedding的效果;
- 特别地,认为一个类别型特征由一个词表V定义,特征值是词表V中的一个值;如,“device”是一个特征词表,而“iPhone”是V中可能的一个特征值;
- 比较了NLP中的embedding和推荐中的不同:1)NLP中存在分词的机制,所以词表大小远远小于推荐中纯ID类的词表;2)NLP中的词表是静态的(因为词语是固定的),而推荐中词表需要经常更新(因为有新用户等进入);3)推荐中的高度偏移的数据分布,也就是如何处理长尾数据的embedding
- 提到了hash trick的方法,对类别型进行hash分桶处理,这样能比较好处理未出现过特征,但是不可避免会影响embedding的个性化表达;
- 介绍了本文的DHE框架,寻找一个稠密的encode方法,用DNN框架学习embedding;使用多重hash和适当的转换来生成一个唯一的、确定的、密集的、实值向量作为给定特征值的标识符编码;
- 贡献:将one-hot编码方式换成稠密的编码表达,这样就不用每个特征对应去查找embedding表,提高了参数的利用率;通过整合编码中的侧面(side?)特征去提高泛化性。