美团深度学习在搜索广告中的应用

原文: https://tech.meituan.com/searchads_dnn.html#ref-5

 

我们抽取了以下几大类特征:

  • 用户特征
    • 人口属性:用户年龄,性别,职业等。
    • 行为特征:对商户/商圈/品类的偏好(实时、历史),外卖偏好,活跃度等。
    • 建模特征:基于用户的行为序列建模产生的特征等。
  • 商户特征
    • 属性特征:品类,城市,商圈,品牌,价格,促销,星级,评论等。
    • 统计特征:不同维度/时间粒度的统计特征等。
    • 图像特征:类别,建模特征等。
    • 业务特征:酒店房型等。
  • Query特征
    • 分词,意图,与商户相似度,业务特征等。
  • 上下文特征
    • 时间,距离,地理位置,请求品类,竞争情况等。
    • 广告曝光位次

结合美团多品类的业务特点及O2O模式独特的需求,着重介绍几个业务场景以及如何刻画:

  • 用户的消费场景
    • 附近”请求:美团和大众点评App中,大部分用户发起请求为“附近”请求,即寻找附近的美食、酒店、休闲娱乐场所等。因此给用户返回就近的商户可以起到事半功倍的效果。“请求到商户的距离”特征可以很好地刻画这一需求。
    • 指定区域(商圈)”请求:寻找指定区域的商户,这个区域的属性可作为该流量的信息表征。
    • 位置”请求:用户搜索词为某个位置,比如“五道口”,和指定区域类似,识别位置坐标,计算商户到该坐标的距离。
    • 家/公司”: 用户部分的消费场所为“家” 或 “公司”,比如寻找“家”附近的美食,在“公司”附近点餐等,根据用户画像得到的用户“家”和“公司”的位置来识别这种场景。
  • 多品类
    • 针对美食、酒店、休娱、丽人、结婚、亲子等众多品类的消费习惯以及服务方式,将数据拆分成三大部分,包括美食、酒店、综合(休娱、丽人、结婚、亲子等)。其中美食表达用户的餐饮需求,酒店表达用户的旅游及住宿需求,综合表达用户的其他生活需求。
  • 用户的行为轨迹
    • 实验中发现用户的实时行为对表达用户需求起到很重要的作用。比如用户想找个餐馆聚餐,先筛选了美食,发现附近有火锅、韩餐、日料等店,大家对火锅比较感兴趣,又去搜索特定火锅等等。用户点击过的商户、品类、位置,以及行为序列等都对用户下一刻的决策起到很大作用。

  

面以这两类数据特征为例,介绍在Wide & Deep模型中的使用方式。

  • 用户实时行为
    • 行为实体 用户的实时行为包括点击商户(C_P)、下单商户(O_P)、搜索(Q)、筛选品类(S)等。商户的上层属性包括品类(Type: C_Type, O_Type)、位置(Loc: C_Loc, O_Loc)等。
    • Item Embedding 对用户的行为实体构建embedding向量,然后进行Sum/Average/Weighted Pooling,和其他特征拼接在一起。实验发现,上层属性实体(C_Type, O_Type, C_Loc, O_Loc)的表现很正向,离线效果有了很明显的提升。但是C_P, O_P, Q, S这些实体因为过于稀疏,导致模型过拟合严重,离线效果变差。因此,我们做了两方面的改进:
      1. 使用更充分的数据,单独对用户行为序列建模。例如LSTM模型,基于用户当前的行为序列,来预测用户下一时刻的行为,从中得到当前时刻的“Memory信息”,作为对用户的embedding表示;或Word2Vec模型,生成行为实体的embedding表示,Doc2Vec模型,得到用户的embedding表示。实验发现,将用户的embedding表示加入到模型Part_2部分,特征覆盖率增加,离线效果有了明显提升,而且由于模型参数空间增加很小,模型训练的时间基本不变。
      2. 使用以上方法产生的行为实体embedding作为模型参数初始值,并在模型训练过程中进行fine tuning。同时为了解决过拟合问题,对不同域的特征设置不同的阈值过滤。
    • 计数特征 即对不同行为实体发生的频次,它是对行为实体更上一层的抽象。
    • Pattern特征 用户最近期的几个行为实体序列(例如A-B-C)作为Pattern特征,它表示了行为实体之间的顺序关系,也更细粒度地描述了用户的行为轨迹。
  • 图片
    • 描述 商户的头图在App商品展示中占据着很重要的位置,而图片也非常吸引用户的注意力。
    • 图片分类特征 使用VGG16、Inception V4等训练图片分类模型,提取图片特征,然后加入到CTR模型中。
    • E2E model 将Wide & Deep模型和图片分类模型结合起来,训练端到端的网络。

 

美团猜你喜欢:

原文链接:https://tech.meituan.com/recommend_dnn.html

特征种类

  • User特征:用户年龄,性别,婚否,有无孩子等
  • Item特征:价格,折扣,品类和品牌相关特征,短期和长期统计类特征等
  • Context特征:天气,时间,地理位置,温度等
  • 用户行为:用户点击Item序列,下单Item序列等

 

标签匹配

推荐后台日志会记录当前样本对应的User特征、Item特征与Context特征,Label日志会捕获用户对于推荐项的行为反馈。我们把两份数据按照唯一ID拼接到一起,生成原始的训练日志。

等频归一化

通过对训练数据的分析,我们发现不同维度特征的取值分布、相同维度下特征值的差异都很大。例如距离、价格等特征的数据服从长尾分布,体现为大部分样本的特征值都比较小,存在少量样本的特征值非常大。常规的归一化方法(例如 min-max, z-score)都只是对数据的分布进行平移和拉伸,最后特征的分布仍然是长尾分布,这就导致大部分样本的特征值都集中在非常小的取值范围内,使得样本特征的区分度减小;与此同时,少量的大值特征可能造成训练时的波动,减缓收敛速度。此外也可以对特征值做对数转化,但由于不同维度间特征的分布不同,这种特征值处理的方式并不一定适用于其他维度的特征。

在实践中,我们参考了Google的Wide & Deep Model[6]中对于连续特征的处理方式,根据特征值在累计分布函数中的位置进行归一化。即将特征进行等频分桶,保证每个桶里的样本量基本相等,假设总共分了n个桶,而特征xi属于其中的第bi(bi ∈ {0, ..., n - 1})个桶,则特征xi最终会归一化成 bi/n。这种方法保证对于不同分布的特征都可以映射到近似均匀分布,从而保证样本间特征的区分度和数值的稳定性。

低频过滤

过多的极为稀疏的离散特征会在训练过程中造成过拟合问题,同时增加参数的储存数量。为避免该问题,我们对离散特征进行了低频过滤处理,丢掉小于出现频次阈值的特征。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值