首页人工智能技术资讯正文

如何实现个性化推荐?

更新时间:2020-09-14 来源:黑马程序员 浏览量:

相关背景

对于一家品牌电商,连接着供应商和用户,改善供应链的同时给用户提供高品质、高质量、无大牌溢价的商品。营销侧业务场景是在线电商的重中之重,面临的场景挑战包括:

·如何优化流量分配?

·如何增加 GMV?

·如何提升用户购物体验?

互联网人口红利消失殆尽,在存量争夺用户时间的战场上,必须高效充分利用每份流量。使用个性化算法是各家必用技术,在电商的营销场景提升效果明显,点击率预估提升一小步,流水增益一大步。该目前主要采用深度模型应用在搜索、推荐、广告等场景,具体算法方向有DeepCTR、Embedding、NLP 等。

在转向深度学习的这两年,该方案个性化场景的用户体验、指标数据都有较大提升(产品形式、系统能力、算法效果都在持续优化中)。个性化场景最重要的两个阶段是召回和排序,接下来会从这两方面切入分享一些实践经验和思路总结。

个性化推荐


技术方案

能力统一召回体系

这里的召回更准确定义是召回 + 粗排。召回的目的是快速缩小范围,减轻精排的压力。当下的挑战不在数据规模和系统压力,我们设计系统最看重的是复用性、维护性和扩展性。因此考虑对召回能力做大统一,涉及搜索、推荐、广告、客服多个业务场景。


召回抽象

对召回来说,输入输出都是信息,只是信息的类别可能不同,同时必须定义信息间关系度量:$ score = f (InputData,OutputData) 。召回阶段对时延比较敏感,不能选用太过复杂关系度量算法。对于多个场景,信息可以抽象为:

·搜索(输入查询词,输出商品列表、专题内容列表)

·推荐(输入用户,输出商品列表)

·广告(输入用户,输出素材列表)

·客服(输入问题,输出答案列表、相似问题列表)

信息载体包括文本和向量,两端信息载体相同的情况下才能计算关系度量值。 显而易见查询词、商品、问题 / 答案、专题内容天然包含文本信息,而使用向量必须依靠模型做目标的向量化表征。

类似 Airbnb[1] Sequence Embedding 思路,我们基于实现商品向量化表征,同时引入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],Wide Part 依靠先验知识构建特征,挑选高覆盖、高价值属性两两交叉构建特征。Deep Part 依靠深度网络实现特征组合,对商品 Id、类目 Id、属性 Id Embedding,但不直接对用户 Id Embedding,而是基于用户和商品的行为序列表征用户,引入注意力模块[3] 计算用户向量。

后续在定制 WDL 之上加入 CTR、CVR 的多任务学习[4],共享 Embedding 层权重,构建 CTCVR LOSS,实现曝光阶段的 CVR 预估。

在线模型

业界已经形成共识数据新鲜度能进一步提升模型效果。为实时感知用户偏好,一般使用实时特征传入深度模型,但存在两个问题:

·实时特征在线计算用于推断,数据清理用于训练;特征调整的维护成本和计算量比较大。

·实时特征线上计算有不可靠性,扰动模型效果。

我们选择实现成本较低的方案:T+1 复杂模型的基础上挑选 TopK 应用实时重排序,在风险可控的前提下尝试激进实时算法。基于用户和商品交互数据计算用户多类目的实时兴趣向量(用户向量表征参考上文召回说明),在不同的场景按需使用。如在搜索推荐,使用当前上下文信息激活多维度用户实时向量,计算向量距离重排序商品列表达到类似实时模型的效果。系统工程上收益一个是用户和商品交互数据是基础统计,没有额外特征维护成本,另一个使用向量有更好泛化性和数据容错性。该方案严选场景验证效果有明显的提升。


结语

近几年深度学习领域的技术革新非常快,新模型新思路层出不穷,不由感叹 “终身学习” 的知行合一颇为不易。营销端个性化有丰富的深度学习应用场景,从点击率预估、语义匹配、向量化到素材合成、文案生成、人群画像,我们一直在扩充算法的能力边界。


参考文献

[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


猜你喜欢:

深度相机常见技术:深度相机的相位求解

解决类别不平衡数据方法介绍

python人工智能之人脸识别综合应用与实践

分享到:
在线咨询 我要报名
和我们在线交谈!