WideAndDeep

性能上,通过切分一次请求需要处理的app 的Batch size为更小的size,并利用多线程并行请求达到提高处理效率的目的。单次响应耗时从31ms下降到14ms。

交叉特征在wide部分很重要,可以捕捉到特征间的交互,起到添加非线性的作用。

特征首先转换为低维稠密向量,维度通常O(10)-O(100)。

训练方式。 集成模型的子模型部分是独立训练,只在inference阶段合并预测。而联合训练模型是同时训练同时产出的。
模型规模。集成模型独立训练,模型规模要大一些才能达到可接受的效果。而联合训练模型中,Wide部分只需补充Deep模型的缺点,即记忆能力,这部分主要通过小规模的交叉特征实现。因此联合训练模型的Wide部分的模型特征较小。

联合模型求解采用FTRL算法,L1正则。深度部分用AdaGrad优化算法。

image.png
image.png

warm-starting方式进行模型的更新,即预先用上一个版本的向量和wide模型的权重进行初始化模型。模型加载后,空跑一轮确认在大规模服务期间无问题。有点类似为了解决tf程序懒加载而进行warm-up的空跑。

模型服务阶段将请求的batch size切分为更小的size,由多线程程序并行执行,缩短运行时间。

image.png
image.png
image.png
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容