今天带来的是推荐系统架构的总览,围绕AB测试、微服务与模型更新三大部分展开,后续会不断展开详细内容,欢迎关注!

AB test

AB分流
划分依据: uid,MAC,cookie,IMEI
划分方式: 基础组3%,试验组3%,对照组3%
划分标准
-
流量均等
-
分布一致
-
彼此正交

结果对比

模型 | 展现量n | 点击量 k | 点击率 | 方差S^2 |
---|---|---|---|---|
A | 99458 | 10045 | 0.101 | 0.091 |
B | 100134 | 9282 | 0.093 | 0.084 |
C | 99705 | 10268 | 0.103 | 0.092 |
微服务

RPC请求过程
-
序列化协议:json, protobuf, thrift
-
服务注册:zookeeper, Consul, etcd
-
负载均衡:加权轮询法,最小并发度法
-
通信:TCP, epoll
同步调用

模型更新
日志收集

模型增量更新
模型增量更新的好处:样本量可以一直累加,享受样本量增加带来的持续收益
保存老模型,等新样本到来后再加载老模型,继续训练。模型文件里一定要保存优化器的中间状态
pytorch在保存模型时需要指定'optimizer': optimizer.state_dict();
tensorflow默认生成的checkpoint文件就可以满足增量更新的需求
分布式训练


参数服务器
参数的分布存储

读取参数

更新参数

监控系统
基础组件
-
实时监控。influxDB、Prometheus等时序数据库(TSDB)
-
小时级监控。hive、clickhouse等sql数据库
网友评论