1. embedding存储大小过大: 推荐系统中像是video id,item id,advertiser id, user id都很大,不像NLP的bert,字典只有30K(因为bert用了word-piece),我们无法用NLP的方法对推荐领域的ID特征进行降维,也没办法直接Lookup一张巨大的词表,换句话来说我们需要很多的空间去存放embedding。
2. embedding 表达内容不够明细,one hot embedding的方式只是学习到一种item的embedding,而没有学习到多个item的关联信息。
再往下我们介绍来自阿里巴巴的一篇双胞胎网络来解决该问题的方式。
embedding参数空间太大,占据内存太多了。
1. ATML这篇工作主要是通过缩减embedding size来减少embedding的总体参数,确切的来说,是通过减少不重要user的embedding size,而user的重要程度,是通过user 的frequency来体现的。
2. 所以总的来说,是将embedding的size根据不同的user_id 出现的frequency来变化,出现多的dimention更大,是一种embedding selection的网络。
使用了频率相关的信息,例如出现的次数,或者频率的排序在这个特征领域等等。
AML 是简单的MLP网络。
h-AML 是用来捕获高频次信息的。
l-AML 是用来捕获低频次信息的。
在处理完之后,会有weighted sum 来整合两个网络的信息。之后会经过soft max网络来选择合适的mask大小。
在产生了mask之后,网络自动输出固定大小的embedding即可。
这个网络总的来说是非常好理解的,实际上就是通过frequency vector来做embedding size的筛选,具体来讲,先通过双胞胎AML网络来加权输出对于embedding size的预测结果,然后再利用mask掉多余的维度,最终输出长度为3的embedding 输出。
效果略微的有提升,不过在我读了这么多论文的时候,我发现embedding优化很难去提升很多的样子。
节省的网络空间
总结该方法目前存在的问题
只是通过frequency来衡量用户的重要性,肯定是不够的。
通过mask掉多余的embedding输出,势必会对下游的网络有很大的训练难度,比方说embedding size是6维度,而mask掉了最后两维度,输出就是长度是6后两位是0的输出,而embedding的下一层网络只是对前面四位进行学习,后面两0没办法学习。换句话来说,下游网络的后几个位置会很难更新到一个好的参数。应该尝试去优化mask,不能简单的”一刀切“。