推荐技术面对千万级推荐,如何压缩模型最高效?这是腾讯看点新框架


机器之心发布
机器之心编辑部
推荐领域的模型压缩一直是个极具挑战性的问题 , 面对实际部署中数千万或亿级的推荐项 , 如何压缩才能获得最佳性能?由 SIAT-NLP 组与腾讯看点推荐团队共同完成的论文《A Generic Network Compression Framework for Sequential Recommender Systems》 , 提出了一个序列推荐模型框架「CpRec」 , 压缩率更高、训练和推断速度也更快 。 目前这篇论文已被 SIGIR 2020 接收 。
推荐技术面对千万级推荐,如何压缩模型最高效?这是腾讯看点新框架
本文插图

原文链接:https://arxiv.org/pdf/2004.13139.pdf
提起模型压缩 , 很多人都非常熟悉 。 在实际应用部署中 , 推荐领域的模型压缩问题比较于 NLP 和 CV 更具挑战性, 工业级推荐系统例如 YouTube 与抖音, 参数量是大型 NLP 及 CV 模型(如 BERT-Large, ResNet-101)参数量的上百倍 , 原因在于工业推荐系统中存在千万乃至亿级别以上的推荐项目 。 而当前最优的序列推荐系统 (SRS) 模型通常是基于三明治结构的深度神经网络 , 通常这些模型需要大量参数(例如使用较大的嵌入维度或深层网络体系结构)才能获得最佳推荐性能 。
这篇论文提出了一个序列推荐模型框架「CpRec」 , 其中使用了两种通用的模型压缩技术 。 具体来说 , 文中首先提出一种分块自适应分解方法 , 通过利用 SRS 中的推荐项服从长尾分布的事实来近似输入矩阵和 softmax 矩阵 。 为了减少中间层的参数 , 文中引入了三种分层参数共享方案 。 通过广泛的消融研究 , 文中证明了所提出的 CpRec 在现实世界的 SRS 数据集中可以实现高达 4-8 倍的压缩率 。 同时 , CpRec 在训练和推断过程中速度更快 , 并且在大多数情况下胜过其未压缩的模型 。 相关工作也会在不久后开源 。
分块自适应分解
推荐技术面对千万级推荐,如何压缩模型最高效?这是腾讯看点新框架
本文插图

如上图所示 , 本文中首先根据推荐系的频率对所有推荐项进行排序
推荐技术面对千万级推荐,如何压缩模型最高效?这是腾讯看点新框架
本文插图

, 其中x_1和x_k分别是频率最高和最低的推荐项 。 将推荐项集合S划分为n个簇:
推荐技术面对千万级推荐,如何压缩模型最高效?这是腾讯看点新框架
本文插图

其中
推荐技术面对千万级推荐,如何压缩模型最高效?这是腾讯看点新框架
本文插图

。 每个簇中推荐项的数量为
推荐技术面对千万级推荐,如何压缩模型最高效?这是腾讯看点新框架
本文插图

, 且
推荐技术面对千万级推荐,如何压缩模型最高效?这是腾讯看点新框架
本文插图

, K为所有推荐项的数量 。 因此 , 可以将输入嵌入矩阵
推荐技术面对千万级推荐,如何压缩模型最高效?这是腾讯看点新框架
本文插图

如上图 (a) 分割为个n块
推荐技术面对千万级推荐,如何压缩模型最高效?这是腾讯看点新框架
本文插图

如上图 (b) , 其中 d 是嵌入大小 。 采用相似的策略 , 文中对输出 softmax 矩阵
推荐技术面对千万级推荐,如何压缩模型最高效?这是腾讯看点新框架
本文插图

分割为n个块
推荐技术面对千万级推荐,如何压缩模型最高效?这是腾讯看点新框架
本文插图

。 接下来 , 文中分别描述了输入嵌入矩阵和输出 softmax 矩阵的分块自适应分解 。
基于分块自适应分解的输入嵌入层
在输入层中 , 文中将块


推荐阅读