案例分享 | 网易严选个性化实践之路(系列之二)
作者介绍:潘胜一,网易严选算法专家,负责网易严选搜索和广告业务。关注算法在个性化场景应用以优化流量和提升用户体验。
背景
如何优化流量分配? 如何增加 GMV? 如何提升用户购物体验?
提升模型迭代效率,可以从两点理解:
1)大部分特征组合工作交给深度模型,让 Machine Learning Engineer 更关注在模型本身,享受学术届新模型落地在工业界的技术红利。 2)TensorFlow 提供很多预训练好模型和模型基础结构。 训练和推断无缝结合(TF Serving 的出现是当初选择 TensorFlow 的最大参考因素,目前我们也在尝试 TFX 中)。 充足的社区资源(踩坑也可以爬得出来)。
在转向深度学习的这两年,网易严选个性化场景的用户体验、指标数据都有较大提升(产品形式、系统能力、算法效果都在持续优化中)。个性化场景最重要的两个阶段是召回和排序,接下来会从这两方面切入分享网易严选实践经验和思路总结。
能力统一召回体系
这里的召回更准确定义是 召回 + 粗排。召回的目的是快速缩小范围,减轻精排的压力。网易严选系统当下的挑战不在数据规模和系统压力,我们设计系统最看重的是复用性、维护性和扩展性。因此考虑对召回能力做大统一,涉及搜索、推荐、广告、客服多个业务场景。
对召回来说,输入输出都是信息,只是信息的类别可能不同,同时必须定义信息间关系度量:$ score = f (InputData,OutputData) $。召回阶段对时延比较敏感,不能选用太过复杂关系度量算法。对于多个场景,信息可以抽象为:
搜索(输入查询词,输出商品列表、专题内容列表) 推荐(输入用户,输出商品列表) 广告(输入用户,输出素材列表) 客服(输入问题,输出答案列表、相似问题列表)
信息载体包括文本和向量,两端信息载体相同的情况下才能计算关系度量值。 显而易见 查询词、商品、问题 / 答案、专题内容 天然包含文本信息,而使用向量必须依靠模型做目标的向量化表征。
类似 Airbnb[1] Sequence Embedding 思路,我们基于 TensorFlow 实现商品向量化表征,同时引入 Batch 内 pairwise loss 和 side info 进一步提升模型的性能和效果。基于商品向量可以关联表征用户、查询词、专题。
向量关联表征
问题 / 答案的向量化参考 sentence embedding 技术,由专门的 NLP 同学负责。
如果信息是文本或向量,召回能力需要支持:
文字相关性
依靠 ElasticSearch 索引,BM25 算法度量相关性。语义相似性
Pre-train 和 fine-tuning 的 BERT 模型推断相关性。向量最近邻
近似最近邻搜索(Approximate Nearest Neighbor),余弦距离计算相关性。
作为通用召回体系必须保证低延时、高可用,具体做系统架构时我们将三种能力都用索引来支撑。文字相关性本来就是索引提供的能力;向量最近邻基于 LSH(Locality-sensitive hashing)投影后再建索引,获取索引正排数据(原始向量)计算匹配得分,实现向量的在线查询能力。非 GPU 环境下 BERT 模型比较耗时,可将热门查询词和高频问题(二八定律)做离线推断,结果得分 T+1 同步到索引。
能力统一
搜索场景:输入查询词同时使用文字相关性,语义相似性(Query 和 ItemTitle 形成 setence pair),向量最近邻召回商品(QueryVector 到 ItemVector)。网易严选商品总量偏小,扩展召回能力希望用户能看到更多关联商品。
推荐场景:输入推荐模块商品池条件和用户向量,使用文字相关性(多路召回的商品过滤条件,是通用的索引条件查询),向量最近邻 (UserVector 到 ItemVector) 召回商品。
各显神通精排服务
精排场景没有考虑对能力做抽象统一,每个模块核心诉求点会不同(有些战略导向的场景可能只考虑曝光点击量)。核心指标上综合考量曝光转化率(CTR*CVR)、UV 价值、总体 GMV,这些都是算法需要全局优化的目标,同时综合业务方的人工策略,呈现给用户最终的商品浏览效果。小伙伴可以充分发挥聪明才智,自由选择特征和模型结构,以线上 AB Test 数据评估价值。我们的精排模型探索往大的说分为两方面:追求精度效果的复杂深度模型和实时感知用户偏好的在线模型,下文做详细介绍。
使用深度模型做 DeepCTR 预估,主体思路是 Embedding&MLP,对模型做网易严选场景的适配调整。我们首个深度模型是 WDL[2],依靠 TensorFlow 提供基础的 WDL 模块可以方便的编码实现。Wide Part 依靠先验知识构建特征,挑选高覆盖、高价值属性两两交叉构建特征。Deep Part 依靠深度网络实现特征组合,对商品 Id、类目 Id、属性 Id Embedding,但不直接对用户 Id Embedding,而是基于用户和商品的行为序列表征用户,引入注意力模块[3] 计算用户向量。
后续在定制 WDL 之上加入 CTR、CVR 的多任务学习[4],共享 Embedding 层权重,构建 CTCVR LOSS,实现曝光阶段的 CVR 预估。
复杂 T+1 模型
实时特征在线计算用于推断,数据清理用于训练;特征调整的维护成本和计算量比较大。 实时特征线上计算有不可靠性,扰动模型效果。
我们选择实现成本较低的方案:T+1 复杂模型的基础上挑选 TopK 应用实时重排序,在风险可控的前提下尝试激进实时算法。基于用户和商品交互数据计算用户多类目的实时兴趣向量(用户向量表征参考上文召回说明),在不同的场景按需使用。如在搜索推荐,使用当前上下文信息激活多维度用户实时向量,计算向量距离重排序商品列表达到类似实时模型的效果。系统工程上收益一个是用户和商品交互数据是基础统计,没有额外特征维护成本,另一个使用向量有更好泛化性和数据容错性。网易严选场景验证效果有明显的提升。
实时向量表征
结语
近几年深度学习领域的技术革新非常快,新模型新思路层出不穷,不由感叹 “终身学习” 的知行合一颇为不易。网易严选营销端个性化有丰富的深度学习应用场景,从点击率预估、语义匹配、向量化到素材合成、文案生成、人群画像,我们一直在扩充算法的能力边界。借助 TensorFlow 高效实现 & 验证学术界 SOTA 模型,关注应用微创新和算法适配落地,能大幅提升算法团队工作效率。
参考文献
[1] Real-time Personalization using Embeddings for Search Ranking at Airbnb
[2] Wide & Deep Learning for Recommender Systems
[3] Deep Interest Network for Click-Through Rate Prediction
[4] Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate
想加入案例分享?点击 “阅读原文”,填写相关信息,我们会尽快与你联系。
更多相关案例: