
文章插图
4.4 进阶预估操作:模型也是特征
4.4.1 Model as a Feature,同构or异构?
在算法的迭代中,有时会将一个模型的预估的结果当做另外一个模型输入特征,进而取得更好的效果 。如美团搜索与NLP中心的算法同学使用BERT来解决长尾请求商户的展示顺序问题,此时需要BERT as a Feature 。一般的做法是离线进行BERT批量计算,灌入特征存储供线上使用 。但这种方式存在时效性较低(T+1)、覆盖度差等缺点 。最好的方式自然是可以在线实时去做BERT模型预估,并将预估输出值作为特征,用于最终的模型打分 。这就需要Augur提供Model as a Feature的能力 。
得益于Augur抽象的流程框架,我们很快超额完成了任务 。Model as a feature,虽然要对一个Model做预估操作,但从更上层的模型角度看,它就是一个特征 。既然是特征,模型预估也就是一个计算OP而已 。所以我们只需要在内部实现一个特殊的OP,ModelFeatureOpreator就可以干净地解决这些问题了 。
我们在充分调研后,发现Model as a Feature有两个维度的需求:同构的特征和异构的特征 。同构指的是这个模型特征与模型的其他特征一样,是与要预估的文档统一维度的特征,那这个模型就可以配置在同一个服务下,也就是本机可以加载这个Stacking模型;而异构指的是Model Feature与当前预估的文档不是统一维度的,比如商户下挂的商品,商户打分需要用到商品打分的结果,这两个模型非统一维度,属于两个业务 。正常逻辑下需要串行处理,但是Augur可以做得更高效 。为此我们设计了两个OP来解决问题:
- LocalModelFeature:解决同构Model Feature的需求,用户只需像配置普通特征表达式一样即可实现在线的Model Stacking;当然,内部自然有优化逻辑,比如外部模型和特征模型所需的特征做统一整合,尽可能的减少资源消耗,提升性能 。该特征所配置的模型特征,将在本机执行,以减少RPC 。
- RemoteModelFeature:解决异构Model Feature的需求,用户还是只需配置一个表达式,但是此表达式会去调用相应维度的Augur服务,获取相应的模型和特征数据供主维度的Augur服务处理 。虽然多了一层 RPC,但是相对于纯线性的处理流程,分片异步后,还是有不少的性能提升 。
4.4.2 Online Model Ensemble
Augur支持有单独抽取特征的接口,结合Model as a Feature,若需要同时为一个文档进行两个或者多个模型的打分,再将分数做加权后使用,非常方便地实现离线Ensemble出来模型的实时在线预估 。我们可以配置一个简单的LR、Empty 类型模型(仅用于特征抽取),或者其他任何Augur支持的模型,再通过LocalModelFeature配置若干的Model Feature,就可以通过特征抽取接口得到一个文档多个模型的线性加权分数了 。而这一切都被包含在一个统一的抽象逻辑中,使用户的体验是连续统一的,几乎没有增加学习成本 。
除了上面的操作外,Augur还提供了打分的同时带回部分特征的接口,供后续的业务规则处理使用 。
5. 更多思考当然,肯定没有完美的框架和平台 。Augur和Poker还有很大的进步空间,也有一些不可回避的问题 。主要包括以下几个方面 。
被迫“消失”的Listwise特征
前面说到,系统架构设计中没有“银弹” 。在采用了无状态分布式的设计后,请求会分片 。所以ListWise类型的特征就必须在打分前算好,再通过接口传递给Augur使用 。在权衡性能和效果之后,算法同学放弃了这一类型的特征 。
当然,不是说Augur不能实现,只是成本有些高,所以暂时Hold。我们也有设计过方案,在可量化的收益高于成本的时候,我们会在Augur中开放协作的接口 。
单机多层打分的缺失
Augur一次可以进行多个模型的打分,模型相互依赖(下一层模型用到上一层模型的结果)也可以通过Stacking技术来解决 。但如果模型相互依赖又逐层减少预估文档(比如,第一轮预估1000个,第二轮预估500),则只能通过多次RPC的方式去解决问题,这是一个现实问题的权衡 。分片打分的性能提升,能否Cover多次RPC的开销?在实际开发中,为了保持框架的清晰简单,我们选择了放弃多层打分的特性 。
离线能力缺失?
Poker是搜索实验平台的名字 。我们设计它的初衷,是解决搜索模型实验中,从离线到在线所有繁复的手工操作,使搜索拥有一键训练、一键Fork、一键上线的能力 。与公司其他的训练平台不同,我们通过完善的在线预估框架倒推离线训练的需求,进而构建了与在线无缝结合的搜索实验平台,极大地提升了算法同学的工作效 。
推荐阅读
- 智能无人车亮相北京朝阳公园
- 数据源管理 | 搜索引擎框架,ElasticSearch集群模式
- Aqara|Aqara智能窗帘神器开卖:即挂即用 支持小爱、Siri
- 淘宝旺铺专业版和智能版区别 淘宝旺铺智能版怎么用
- 淘宝热词榜 怎么看淘宝搜索热词
- 程序员客栈 V4.18 版本更新:技术信用认证与全站搜索
- 深入聊聊Linux 五种IO模型
- 历史+科技的结合 OPPO智能音箱亮相
- 高通推出全球首个5G和人工智能机器人平台,30+公司参与生态建设
- 首期人工智能导论全国师资培训“云结业”
