每日好店是淘宝一款经典的产品,它立足于淘宝千万卖家与海量的货源,从好品牌,好货源,好服务三个角度入手,为用户精选"平台说好,达人说好,用户说好"的淘宝优质店铺。通过中心化的好店频道,使淘宝用户对于淘内好店标准有强烈的体感,并能够让用户于淘系千万卖家中,发现真正的好店铺,形成淘宝内发现店铺的第一阵地。
我们将分两篇内容介绍我们在“每日好店“场景效率和体验上的优化升级。本篇将主要从业务视角出发,浅谈一下技术协作业务的思路,如何优化场景的效率和体验;下篇内容将从技术视角出发,介绍店铺和商品两级排序模型的升级。
背景
每日好店作为一个经典的导购场景,承接了淘宝内用户对于集中发现优质店铺的主体需求。现阶段电商平台越来越以商品作为分发组织单元,店铺存在感一直被弱化。这抑制了商家私域的运营和成长。每日好店希望通过中心化的店铺分发架构公私域联动最直接的桥梁,让用户在频道内直接得到街景式逛店体验,发现更多优质商家。
每日好店频道主要包括3个 tab:今日头条、特色街和店铺榜单。其中,首页头条是帮助用户发现热门趋势店铺,特色街是向用户推荐小众特色店铺,榜单定位则是具体生活消费场景下的店铺决策。这篇文章主要介绍今日头条中的店铺信息流推荐。
在技术侧,每日好店场景引出了一个较为新颖的推荐问题,“两级推荐”——即推荐的基本单元为一个集合态。我们为用户个性化推荐店铺,同时推荐店铺橱窗内相关商品。传统的两阶段方式(店铺推荐+店铺内商品推荐)限制了算法优化空间,我们打造了双链路店铺大卡推荐体系,让商品推荐与店铺推荐相互交融,互为补充,最终实现了效率和个性化体验上的双向提升。
好店标准体系搭建
优质店铺的定义是每日好点场景的立足之基,更是频道用户体验最有力的保障。
大多数公域场景以“商品”作为分发单元,好店则是以店铺为单元,因而店铺作为场景的“原子”就承载了整个频道的调性输出与品质把控。我们希望依托每日好店,建立平台统一定义的”好店“评价体系与标签库,在用户端结构化表达店铺入选“好店”的理由。为此我们将店铺在各个侧面进行切片并分析打分,并显示化为推荐理由,并在前台作为背书表达。其中涉及【好店评价体系搭建】,【好店标准外化】两方面的工作。
结合业务输入的店铺分层指标项,好店标准解决方案输入为千万卖家,输出为每个卖家在各维度对应的归一化分数,并对多维分数结合业务输入,行业特色进行融合以此来圈定好店最终的店铺底池。具体流程如下:
频道心智定义为“发现精选好店”,其中每个店铺的入选标准是我们能够给用户反馈“平台说好”的重要渠道。基于好店评价体系中各维度的输出分数,对一些具有用户体感,能够显示代表该店铺在整体评价体系位置的元素,我们进行了运营加工外化,并在前台底置于店招区域作为背书透出。
外化标签包括:店铺基础属性(如N年好店等),店铺效率(如回头客人数等),商业规模(如粉丝数,会员数等),购物体验(如好评率,物流服务指数等)。
技术方案介绍
用户发现和种草过程会参考与自己相关的群体投票行为,通过识别用户的特征并关联相似人群,建立了基于24格人群的个性化商品召回支路。这部分召回:1、仅筛选全网足够优质店铺(店铺质量分)2、计算每个人群偏好的top1k店铺,作为所有用户的兜底召回。线上表现来看,削弱了分发的寡头效应(高曝光低点击率)商家占比。
推荐系统的本质是提升用户和商品的匹配效率,帮助用户更高效地从海量物品中发现感兴趣的商品集合(精准性),同时,推荐系统还兼顾用户兴趣的拓展,发现并激发用户隐式需求(发现性)。
店品两级推荐让我们不仅要考虑商品之间的差异度,也需要考虑店铺之间差异度,并且需要在其中找到平衡。为了解决这个问题,我们对业内常用方法MLR进行了改良;a、引入散度分因子,将推荐发散度衡量标准直接量化,使得不同打散策略能够横向比较;b、引入个性化打散因子:希望整个session透出的类目分布和用户偏好分布趋于一致;c、引入双度量打散因子:综合考虑商品和店铺发散度情况,建立合二为一的打散机制。
两级打散方法被命名为Two-order Listing Relevance (TLR)。
传统的打散方法通过调节参数来控制相关性和发散性,但是没有一个较合理的指标来评判打散算法的优劣。我们考虑定义一个推荐列表平均发散程度的指标:
能够结合信息流内曝光位置,衡量相似内容散开程度;
散度分的数值具备明确的含义,不同长度的内容流可以比较。
借鉴ndcg的设计思路,我们设计了NormedScatterScore指标,即散度分(NSS)。
其中,为最散的情况(每个位置都不相同)对应的,作为归一化因子。我们使用散度分与效率指标作为打散策略优劣的评定标准。
我们发现,基于商品相关度和商品差异度定义的打散优化目标,在行为较少或行为较集中的用户上表现极端。一个明显的例子是,有些信息流在每个窗口内都维持了一定的散度,但是在整个流内来看却不断循环几个固定的品类。例如,用户有个偏好类目,但只有近期被激活,近期激活类目由于个性化分数比较高容易被反复推荐,发现性类目不能被透出,推荐结果仍较为聚集:
我们希望重排序能够让整个session的类目分布和用户偏好分布趋于一致,从而达到“个性化”打散的目的。基于用户长期行为统计用户的偏好分布,让流内推荐分布尽可能与用户偏好分布一致,添加分布散度作为惩罚项:
其中,采用EMD(推土机距离)衡量两个离散概率分布的距离。
MLR使用greedy search策略,每一步都是局部最优策略,并不能保证全局最优解;beam search可在可控复杂度内,提高获取最优解的概率。我们在好店中也实现了标准的Fast Greedy MAP Inference算法。
应用beam search进行最优解的搜索时,每次都从候选集合中挑选k个最优的子序列。这里的关键问题是:如何高效计算任意长度子序列的综合得分。一个子序列的综合得分中多样性(商品之间差异的惩罚项)的计算和上一个时间步存在大量重复,因此,可以将重复部分cache起来,加速计算过程。
好店卡片包含两级信息:店铺部分和商品部分。前面的打散对于店铺这一层并没有考虑。当用户在真正逛店时,例如我们推荐了连衣裙。针织和女鞋这样的商品流,但是背后的商家组成有可能都是时尚女装店铺。为了让用户体验更加丰富,我们将流内店铺的散度借用散度分纳入目标函数当中。
其中为取卡片对应店铺函数。店铺散度分因子和对商品相似度惩罚目的一致,它是多样性的“硬”标准,使用示性函数约束店铺主营类目的发散程度,与基于商品表征相关度等离散分数相互配合。
最终的优化目标是基于Fast Greedy MAP检索,为我们最终优化得到的目标序列(顺序敏感),优化目标包括几项:相关性、多样性、个性化。
实验结论:最终上线后,我们效率指标微涨,得到了生态指标的显著提升。
店铺橱窗表现力升级
当推荐商品列表确定后,我们考虑提升商品前台展示力。即通过更合适的图像,文案和展示样式来呈现店铺橱窗。这其中包含了两个层次的优化:卡片容器样式优化与内容选择(智能UI)。通过展示形式的优化期望提升频道效率与用户使用体验。
观察到坪效对于频道效率影响较大,但是卡片版头设计留白较多,背书的展示与评论的展示都很松散,没有很好的利用空间。为了提升坪效优化用户浏览体验,将图像容器尺寸优化设计,对于大部分商品图像展示更友好。
店铺橱窗最重要的组成元素是商品,也是店铺内容的核心外化。这里我们考虑对商品进行更丰富的表达,在商品图基础上,添加商品的卖点(如浏览上千,销量过万等统计标),并丰富商品视频,店铺新品等内容对商品区域丰富。
除此之外,我们尝试用内容取代商品对店铺进行表达,通过去商品增商家自定义素材,将店铺大循环素材加入到分发(包括商家海报,活动外宣素材,宣传视频,直播,试搭间,自定义动态卡片等),这一部分的引入不仅活跃了商家与频道的互动,也丰富了信息流内容。
总结与展望
每日好店频道依托于淘宝活跃的用户群体,对于店铺/商家内容进行中心化的分发,希望能够达到,用户发现新鲜宝藏店铺,商家扩增运营阵地的双诉求。作为算法同学,我们立足于业务进行思考,结合场景用户行为反馈,用数据指导业务决策,以技术视角推动产品样式更迭。在优化过程中有两点较为深刻的感触:1、信息流的坪效与效率紧密相关,如何利用好我们每一次推荐曝光的机会需要精心设计;2、算法同学的空间不仅局限于模型优化,我们可以驱动数据产生,模型迭代,前端展示,交互设计甚至前台样式改版等,更多的探索能打开更大的空间。
除此之外,用户体验相关的优化是较难定义和评估的,它有时候会对效率有折损。但是我们坚信这是一条正确的路,是我们需要去解决的最重要问题。打散重排需有丰富的内容值得去挖掘,目前我们以上尝试的多样性方法中,都只是对店铺和商品分别添加了约束,这种简单的做法没有真正解决组合式信息的多样性问题。如何能够做到同时对两级信息(店/品)的感知与打散是未来想要去展开的一个方向。
团队介绍
我们是大淘宝技术的好货&好店技术团队,主要服务淘宝两大导购业务:有好货和每日好店,为上亿消费者提供导购服务,为千万商家、机构和达人提供内容运营平台和商业化方案,致力于通过技术和业务创新提升淘宝导购效率。团队研究方向主要包含商品推荐、内容推荐、AIGC等,我们在推荐算法领域也有很深的技术沉淀,在国际会议和杂志上发表数十篇学术论文。
大淘宝春季 2024 届实习生招聘已正式启动,欢迎对导购业务感兴趣的同学加入我们,可将简历发送到 [email protected]
¤ 拓展阅读 ¤
3DXR技术 | 终端技术 | 音视频技术
服务端技术 | 技术质量 | 数据算法