ArchSummit全球架构师峰会北京站2015
美团柔性营销平台的系统实践
陈华良
2014年至今-美团
美团广告检索组负责人。
负责搜索排序、受众定向平台、
机器学习平台、营销平台、广告
检索系统等工作。
2014年之前-百度
在凤巢从事了4年多的研发工作。
2010年之前-创业公司
从事了1年多的视频搜索引擎研发。
背景
几亿的用户
•获得实惠
•发现新店
•尝试新品
近千万的商户
•拉新用户
•老客维系
•扩大销量
•提高影响
美团
背景
柔性营销平台用户
商户
(DEAL/
POI)
不同规
模商户
大品牌
连锁店
单店
多种品
类
美食
酒店
丽人
婚庆
多种用
户
长尾用户
新老客
品类偏好
附近常客
多种形
式
立减
满返
红包
多种渠
道
实时PUSH
专题
Banner
标签展示
背景-产品效果
列表页标签 详情页标签
背景-产品效果
专题 banner push
背景-自助促销效果
0
50000
100000
150000
200000
250000
300000
0
5000000
10000000
15000000
20000000
25000000
2
0
1
5
0
4
1
2
0
1
5
0
5
1
2
0
1
5
0
5
2
2
0
1
5
0
6
2
2
0
1
5
0
7
0
2
0
1
5
0
7
1
2
0
1
5
0
7
2
2
0
1
5
0
8
0
2
0
1
5
0
8
1
2
0
1
5
0
8
2
2
0
1
5
0
9
0
2
0
1
5
0
9
1
2
0
1
5
0
9
1
2
0
1
5
0
9
2
2
0
1
5
1
0
1
2
0
1
5
1
0
2
2
0
1
5
1
0
2
2
0
1
5
1
1
0
2
0
1
5
1
1
1
2
0
1
5
1
1
2
销量
交易额
核心框架
用户
产品
定向框架 柔性定向服务
用户属性挖掘
柔性定向
机器学习平台
个性化展示
个性化排序
过滤层 柔性召回
业务系统
功能页面
定向协议
营销主体
营销协议
业务系统
功能页面
会员营销
自助促销 营销协议
营销主体
品牌维度 门店维度
DEAL维度
形式 有效期
份数 总金额
定向协议
新老客 附近常客
定制化
查询服
务接口
定制化
写服务
接口
买单促销
TAIR
MYSQL
会员卡
品类偏好 性别
业务系统-功能页面
自助促销 买单促销 会员营销
业务系统-品牌维度
POI_1
POI_2
POI_n
DEAL_1
POI
POI_1
POI_2
POI_n
DEAL
POI_1 POI_2
POI_n
品牌
?
?
DEAL_2
业务系统-定向协议
每个定向条件都用一个DNF来表达
每个DNF由一组Conjunction组成
每个Conjunction由一组Assignment组成
例⼦:
DNF1: (喜欢火锅∩ 20-40岁)∪ (品牌新客)
DNF2: (附近3公里 ∩ 男性)∪(附近5公里 ∩ 女性)
DNF3: (喜欢火锅∩男性)∪ (喜欢美食∩女性) ∪ (附近3公里的用户)
核心框架
用户
产品
定向框架 柔性定向服务
用户属性挖掘
柔性定向
机器学习平台
个性化展示
个性化排序
过滤层 柔性召回
业务系统
功能页面
定向协议
营销主体
营销协议
柔性定向
商户
(POI/
DEAL)
User_1
User_2
User_n
1
User_n
2
…
…
商户
(POI/
DEAL)
User_x?
柔性定向-定向框架
实时模型
storm
柔性定向
服务
用户产品
hbase
tair
update
r
hadoop
hive
spark
离线模型
统计
几T的训练数据
业务系统
定
向
协
议
柔性定向-定向服务
辅助
功能
调试
效果
监控
定向协议解析器
用户属性
用户-POI/DEAL
性能
监控
POI-DEAL
会员卡-POI
LRU 定期更新缓存
Assignm
ent判断
交运算 并运算
K
V
服
务
(喜欢火锅∩男性)∪ (喜欢美食
∩女性) ∪ (附近3公里的用户)
交运算 并运算
喜欢火
锅
男性 女性
喜欢美
食
附近3公
里
柔性定向-用户属性挖掘
用户
历史
行为 人口
属性
新老
客
购买
力品类
偏好
地理
位置
终端
类型
…
两亿用户
已经挖掘几十种用户属性
柔性定向-地理位置
经纬度
Geohash块
商圈
城市
前
6
个
月
前
3
个
月
前
1
个
月
当
前
2
天
一
周X
粒度
时
间
目
的
地
柔性定向-地理位置
Label数据
预估
数据
KV服
务
1行为
2上报
3行为
4行为
N+1行为
N+2上报
N上报
…
用户搜索、
浏览、点
击、下单
等行为
用户途经、
验券等地
理位置
星期几
节假日
GBDT
LR
预估
模型
迭代优化
迭代优化
柔性定向-地理位置
离线预估结果
实时
预估
实时上报
应用
最近用户搜
索、浏览、
点击、下单
等行为
最近用户途
经、验券等
地理位置
星期几
几点
节假日
天气
实时
模型
storm
核心框架
用户
产品
定向框架 柔性定向服务
用户属性挖掘
柔性定向
机器学习平台
个性化展示
个性化排序
过滤层 柔性召回
业务系统
功能页面
定向协议
营销主体
营销协议
个性化展示
POI_1
…
User_x ?
POI_2
POI_1
…
DEAL_2
POI_2
POI_N
DEAL_1
DEAL_2
DEAL_N
DEAL_1
个性化展示-技术框架
Scene Retrieval User Retrieval
营销数据
PUSH Banner专题
个性化数据
应
用
层
柔
性
召
回
数
据
层
关系数据
线下调研 线上框架
个
性
化
排
序
业务规则
过
滤
层
质量度过滤
个性化展示-柔性召回
柔性召回
User
Retrieval
User-CF
Session
用户偏好
Scene
Retrieval
地理
品类
Query
上下文
个性化展示-召回层
POI1
POI2
POIN
…商圈
GEO
WIFI
个性化展示-技术框架
Scene Retrieval User Retrieval
营销数据
PUSH Banner专题
个性化数据
应
用
层
柔
性
召
回
数
据
层
关系数据
线下调研 线上框架
个
性
化
排
序
业务规则
过
滤
层
质量度过滤
个性化排序-线下调研-数据矩阵
推荐
筛选
专题
…
展
现
点
击
下
单
JOIN
清洗
赋权
用户
场景
POI/DEAL
LABEL
取值监控 数量监控 空值监控
个性化排序-线下调研-特征矩阵
POI-USER特征
•浏览过
•购买过
•收藏过
DEAL-USER特征
•品类相似度
•价格相似度
场景特征
•地理位置
•上下文
•时间
DEAL特征
•CTR
•CVR
•Isnew
•折扣
•是否促销
USER特征
•位置偏好
•消费水平
•品类偏好
POI特征
•评分
•评论数
•是否有WIFI
•DEAL数
场景-POI特征
•位置距离
个性化排序-线下调研-示例
最近一周的
验券数
是否周末
用户所在位置
浏览POI用户数
平均打分
个性化排序-线下调研-模型调研
模型评估1
特征
矩阵
特征融合
模型训练1
临时
特征
标注
日志
参数搜索
调整配置
模型评估2模型训练2
…
…
…
…
个性化排序-线上框架
Application
FlumeImpression
Log
Labeled
Data
Order/Click
Log
Deal DB
Model 1
Feature
Offline
Training
Model 2
…
Online
Training
结果获取
Rerank Service
D
E
B
U
G
工
具
A
B
T
E
S
T
框
架特征处理
模型预估
排序机制
个性化排序-线上框架-模型预估
高级特征
rank
Online
learningGBDT
低级特征
GBDT
LR
并行预估
级联预估
配置
个性化排序-线上框架-排序机制
排序机制
CTR预估模型
P(click|show)
ACTION预估模型
P(action|click)
即时反馈模型
P(instant)
业务规则
核心框架
用户
产品
定向框架 柔性定向服务
用户属性挖掘
柔性定向
机器学习平台
个性化展示
个性化排序
过滤层 柔性召回
业务系统
功能页面
定向协议
营销主体
营销协议
机器学习
没有好用的分布式
算法
没有整个流程的解
决方案
需要针对业务优化
算法
现状
缺少评估算法
分布式机器学习算
法
针对业务优化后的
算法
开源,多方合作
整个流程的解决方
案
多种评估算法
机器学习平台
机器学习平台
LR SVM
MinMax Standard
API Command
应
用
层
模
型
层
特
征
归
一
化
特
征
选
择
Chi squared
Topic
Model
GBDT
Mutual Information
DEBUG
可定制化
模型评估
只改配置,就可以完成特征处理、模型的训练和评估等调研
机器学习平台-GBDT
Hypothesis:
Loss Function:
Update Function:
Tree 1 Tree 2 Tree M
......
1
( ) ( ; )
M
M m m
m
h x T x
2
1
1
min ( ) min ( ( ))
2
N
i i
h H h H
i
L h y h x
1
,
1
ˆ{ , } arg min ( , ( ) ( ; ))
m m
N
m m i m m m
i
L y h x T x
机器学习平台-GBDT
Command sample:
. /gbdt_train -train trainset -test testset -model model_path -conf config_file
arguments (conf/) :
dim=100 # 特征维度
depth=4 # 每棵树的最大深度
iterations=100 # 树的个数
shrinkage= # 衰减
fratio= # 特征抽样比例
dratio= # 数据抽象比例
maxBins=40 # 最大bin数
loss=LogLikelihood # 损失函数,提供 loglikelihood 和 square error 两种
init=false # 是否采用初始值
hasInitValue=false # 数据中是否给出了初始值
debug=true # 是否输入debug信息
总结
用户
产品
定向框架 柔性定向服务
用户属性挖掘
柔性定向
机器学习平台
个性化展示
个性化排序
过滤层 柔性召回
业务系统
功能页面
定向协议
营销主体
营销协议