每一项ML系统,都是因一个商业问题而存在,这正是Line购物大力拥抱AI的目标,他们最关键的商业问题是提升销售额,而机器学习团队的任务,就是想办法用ML来提高销售额。
不过,从商业问题出发,到落地成为一支AI应用,Line开发团队有一套自己的方法论,这是一套涵盖了整个机器学习(ML)生命周期的开发流程,从定义问题、将问题转为ML问题、建模、执行AB测试、评估和决策等环节。
用ML方法解决商业问题
Line机器学习工程师黄昱睿指出,团队接到商业需求时,先从定义问题开始,以提升销售额的需求为例,考量了设计新产品、推行折价券和提高用户体验等3种实现策略,最终选择ML可行性最高的第三种。
那么,如何利用ML方法,来兼顾获利(即订单成交量)与用户体验,开发团队从Line购物用户旅程找切入点。由于Line购物属于导购平台,专门提供商品、文章等页面,来引导顾客到商品店家平台,同时在过程中提供点数优惠或反馈,因此用户购物旅程会经历:页面浏览、点击有兴趣的商品/商店/文章、页面跳转至商家商品、最终下单。
在这段旅程中,Line锁定下单前的“点击有兴趣商品”,作为ML问题切入点。也就是说,Line要预测用户有兴趣的商品,并在对的时间推荐给他们,来提高点击率。
为进一步将这个概念转换为可行的ML方法,Line团队先进行2个数据面分析。首先是推荐时间点,若锁定用户操作“当下”想购买的商品,就得依据用户过去购买的数据来训练模型,好让模型预测有兴趣的商品。但这类数据量少,会造成模型过度学习,进而影响推荐效果和用户体验。
另一个考量是,模型要根据点击次数来推荐商品,还是用户“会点击”的商品来推荐?也就是说,这个推荐模型该采用回归模型,还是分类模型。
“我们最后选择分类模型,”黄昱睿解释,电商场景中,通常有群重度用户,他们的热门商品点击率和消费额远大于一般用户,因此以点击次数来推荐商品,就会过于偏颇。
于是,团队将ML问题调整为“用户未来几天会点击的商品”,不仅能解决因数据稀疏、模型过度学习的问题,还能提前秀出用户想要的商品,优化用户体验。
这就是Line团队将商业问题,转换为ML问题的过程。
建模靠5步骤,完成还得不断迭代
有了ML问题,接下来就是建模。建模一般有5个步骤,包括特征工程、集成模型数据、模型训练、模型推论,以及脱机评估。
在特征工程阶段,Line认为,页面浏览、点击和下单这类用户行为,是决定点击购买商品的关键。但光有这些特征还不够,还得与其他特征做交叉群组计算,比如,年龄30岁至40岁点击网站的次数,交叉比对年龄30岁至40岁且是男性、点击该网站的次数,又或是再交叉比对其他属性。
多了这些资讯,就能协助团队更准确观察,用户在特定时间是否会点击该商品。尤其,黄昱睿点出,这种交叉计算资讯,可以补足同一个特征未必持续有效的缺陷。完成特征工程后,就可以进行模型数据的集成,准备进入训练模型的阶段。
不同模型的训练方式各有不同,但黄昱睿点出,模型训练有2个常见要点,包括各项指标需与基准相比,以及比较多组模型成效。其中,这个基准可以是人工方法,也可以是传统统计方法,ML工程师得观察采用模型后,指标表现是否逐步提升。
在推论部分,因Line购物推荐模型,主要比对用户嵌入矢量和商品嵌入矢量的相关性来推荐,进行推论时得同时考虑矢量大小和推论时间。
“矢量小、维度低,数据量少,推论速度快,”黄昱睿解释,矢量大则相反,因此如何拿捏矢量大小与推论时间,得看应用场景和准确度等其他数据来决定。
最后则是脱机评估,就像是模型的“模拟考”,来确认模型学习成效,以及是否太贴近训练数据、难以应对新资讯等问题。
这就是Line购物推荐模型的建模5步骤。不过,一套模型得要多次执行这些步骤、不断迭代,才能达到真正可用程度。因此黄昱睿表示,善用YAML配置文件辅助,可加速这个过程,节省工程师手动设置时间。
AB测试有4要点
接下来就是AB测试环节。在这个阶段,Line团队会将模型新做法和旧做法分为实验组和对照组,来处理用户或浏览记录资讯,比较两种做法的推荐成效。
黄昱睿提醒有4个AB测试的基本概念,包括用户要均匀分布,如随机分组就是一种方法。再来,在同个实验中,用户组别要固定,比如在一段时间内,登录网站的同一位用户,都要固定在A组。
第三,若同个实验中,实验比率增加,如实验范围从10%扩大至20%时,实验组的成员不变,即不能重新分组。最后,由于推荐系统属于线上应用场景,因此测试时,要确保API也能高效率执行。
每次AB测试时,Line还会为每次输入的浏览记录,粘贴一个标签(Tag),存储至数据库后,可进行后续分析。同理,他们也会在每次的浏览记录中,加入一些资讯,比如这次实验的唯一代码,方便后续做不同实验的比较。
评估带来的ML反思
有了实验组和对照组后,就进入黄昱睿认为ML生命周期中“最重要的”阶段:评估。在这个阶段,Line关注的评估指标有ML指标和商业指标,如ML的精确度、平均排名倒数,或是商业的点击率、转化率、交易转量等,不仅能让非技术的高层主管理解ML效益,也能衡量ML是否解决了商业问题。
黄昱睿接着说明,要是评估发现ML指标表现亮眼,但商业指标没有起色,这可能意味着,“原本定义的ML问题,没有打中要害。”
他以自己多年前的一项Email营销项目为例,他与团队打造一套ML模型,来预测用户是否点击Email内容。
当时评估发现,模型预测精确度很高,但购买率还是很低。这是因为,当初团队开发模型,只考量用户是否点击,并未纳入后续的购买、成交等消费行为,这时就得回过头去定义问题。
不只如此,黄昱睿在后来一次次的评估中,观察到推荐模型的特征相关性,与原本想象的特征,有很大的不同。
Line购物推荐模型是用来预测用户会点击的商品,照常理来说,点击行为应该是推荐成功与否,最相关的特征。但他后来发现,并非如此,因为点击并不是用户完全主动的行为,而是网站先呈现内容,用户才能点击。“主动搜索,才是相关性最高的特征。”他坦言。也因此,Line后来强化购物推荐模型时,打算纳入更多与搜索相关的特征。
黄昱睿建议,开发者在构建推荐模型前,可先分析主动事件和被动事件,再找寻相关特征,如此打造的推荐模型,效果会更好。
上线后需监控ML性能与商业指标
推荐模型经评估可行、正式部署上线后,Line团队还有套监控机制,时时把关模型性能。
监控指标不只有特征、ML性能指标,还要有商业指标,比如订单量、点击率,才能找出问题和改进方法。比如,用户每天的商品点击率递减,团队可从该商业指标发现问题,顺藤摸瓜找出推荐模型性能逐退下降原因,介入调整。
黄昱睿点出,理想的推荐系统生命周期,应该由ML工程师和产品负责人一起合作维护。“有时候推荐效果不好,不只是推荐的原因,”他举例,曾经做过流失分析,就算对流失用户发送优惠券,用户仍不买单。这时,就需要ML工程师与产品负责人共同讨论,比如重新设计或重新建模,来提高推荐成功率。
“最理想的状况是,工程师、产品负责人,甚至是企业中更多组织加入这整个ML生命周期,就能做出更完整的产品或服务,”他总结。