目录
1 引言
COLD全程:Computing power cost-aware Online and Lightweight Deep pre-ranking system。是阿里巴巴提出的,主要用于推荐中的粗排阶段。该文将粗排的演化分成4个阶段,
第一阶段:简单的规则
第二阶段:LR
第三阶段:基于DNN的向量内积,其实就是著名的双塔模型
第四阶段:COLD
通过上图可得知,双塔模型是user一个向量,item一个向量,然后最后做cos的相似性,但是无法使用到user和item的一些交叉特征,COLD直接将其作为另外的输入,
从上图看出,双塔模型的这种,就是先联合离线训练,然后再把所有的item和所有的user都离线的经过模型算出各自的DNN输出,然后再线上进行提供服务时,可以采用诸如faiss这种向量引擎系统去计算相似性即可。
2 COLD结构
主要从网络结构上,以及工程上做了几个优化,结构上,就是相比embedding&mlp网络结构增加了SE模块,以及输入的时候,增加了交叉特征
下图是离线训练后的GAUC结果
3 COLD的工程优化
1)采用gpu,并且基于混合精度,这样可以减少计算量的同时增加QPS,同时使用cuda的MPS特性
2)将向量的乘积或者布局以列向量存储,这主要是考虑到数据在内存条上的存放规则,因为内存条的存放时,cpu去取数据往往是会将相邻的一起取出来,如果数据存储布局合理,将会用到这个特性,比如一个cpu取数据指令取出一条向量,而如果存放的不合理,那么就需要N个取指令才能取出一个完整的向量
3)从服务架构上,将一个user的query分解成内部的多个请求,每个之间并行计算
不过,论文结论是,如下图,
还是双塔模型快