数据分析是所有pm评测产品功能策略效果的重要方法,通常pm每天起床后第一件要做的事情,就是查看数据,掌握昨天产品动态,并且随时可能面临拷问三连击“为什么跌了?怎么修复?什么时候修复?”,然后开启分析定位问题的一天。数据监控体系作为问题分析的基石,地位至关重要,笔者以推荐产品为例,谈谈如何确定评测指标,建立一套完善的数据监控体系。
数据指标体系的目的是监督推荐系统是否是“一个好的推荐系统”,而什么是一个好的推荐系统,根据笔者的经验与理解,对“好的推荐系统”的定义为:“从数据算法到方案形成闭环,拥有学习更新能力,满足准确性、实时性、新颖性、稳定性要求,短期与产品发展阶段和目标指向一致,长期稳定健康,再拔高一点,能形成正确价值观的推荐系统”。
数据指标就是将目标拆解量化,转化为可统计便于查看的数据。她跟独立产品类似,并不是由零散的字段和数据点构成,需要统筹规划,形成体系,并且根据需要不断迭代。
数据指标体系的展示方式多样,可以利用第三方平台,公司数据平台或者简单的数据报表形式;更新周期通常为日更。
一个好的数据指标体系,既要有抽象指标,能快速了解整体情况,又要有具象指标,方便初步定为问题出现的位置或者环节,以便进一步追踪。
针对推荐系统,大家都熟知项亮在《推荐系统实战》中讲述的推荐系统评测十大指标:
用户满意度:适用的实验方法为用户调查法与在线测试法,区别于统计指标,度量用户满意度。
预测准确度:度量一个推荐系统活着推荐算法预测用户行为的能力,这个指标时最重要的推荐系统离线评测指标。
覆盖率:描述一个推荐系统对物品常委的发掘能力,最简单的定义为推荐系统能够推荐出来的物品占总物品集合的比例。
多样性:为满足用户广泛的兴趣,推荐列表需要能够覆盖用户不同的兴趣领域,多样性描述了推荐列表中物品两两之间的不相似性。
新颖性:衡量推荐系统推荐用户以前没听说过的物品的能力。
惊喜度:区别于新颖性,指的是推荐结果和用户历史兴趣不相似,但却让用户觉得满意的能力,目前没有什么工人的惊喜度指标定义方法,只有一种定性的度量方式。
信任度:衡量推荐系统是否得到用户信任,增加用户和推荐系统交互的能力,智能通过问卷调查的方式获得。
实时性:包括两个方面,一是推荐系统需要实时地更新推荐列表来满足用户新的行为变化,第二方面时推荐系统需要能够将新加入系统的物品推荐给用户。
健壮性:度量推荐系统抗攻击能力的评测指标,通过比较攻击前后推荐列表的相似度评测算法的健壮性。
商业目标:度量推荐系统服务商业盈利目标的能力的评测指标。
这十个指标高度的概括的推荐系统的衡量指标,具有抽象性,需以此为基础,将这些指标具化,跟自己的业务、产品结合起来落地实现。
一.根据推荐系统架构制定相应指标
一个推荐系统,至少分为数据层、召回层、排序层、重排序层以及业务层。根据系统框架制定各层指标是建立完善的数据指标体系的思路。
数据层拆分为用户画像、物品画像和用户行为数据,数据的准确性、完整性不仅仅决定一个推荐系统是否能够良好运转,同时也是产品其他模块以及运营依赖的重要底层数据,针对数据层的指标可以单独拿出来作为一个独立的区别于推荐系统、服务与整个产品的模块分析,这里暂不展开。
召回层
作为物品初步过滤的模块,最主要的衡量指标就是召回率。
召回率:召回的相关物品/数据库内的相关物品总量。
召回率在策略里出现频率之高大家早就明白,但在实际操作过程中需要区分整体召回与各算法各数据库的召回。
召回层会应用到多种方法以及策略,每一种方法和策略都需要对应的召回率,以此衡量每种算法的召回能力。
物品在进入推荐系统之前已经根据不同维度的特征划分至不同的物品库内,例如地域库、新库、热库等,每个库的商品召回情况也需要监控。
覆盖率:除召回率,仍需考虑召回商品的全面性,可利用用户画像的用户兴趣特征与召回商品分类目分品牌匹配对比,衡量推荐召回商品的丰富程度。下文会提到,召回率覆盖率等指标贯穿整个策略始终,不仅可以衡量离线数据,线上同样需要。
排序层
排序层对物品进行打分排序,是纯粹依赖算法的排序,会应用到大量机器学习深度学习算法,评测指标是算法特有的,应用于模型的不同环节,其最终目的仍然是衡量算法模型对物品排序的准确率,常见的指标有:
AUC:统计和机器学习里面重要模型评价指标,只能用于而分类模型的评价,不过对于类似LR等对物品打分的回归模型,本质作用还是分类,依然使用auc,auc值等于roc曲线下面积,完全随机状态下,auc值=0.5。
MAE:即平均绝对误差,计算预测评分和真实评分的差异。
RMSE:即均方根误差,与MAE思路类似,对每个绝对误差首先做了平方,所以对比较大的绝对误差有更重的惩罚。
重排序层:
排序层是利用算法对召回物品进行打分排序,完全依赖算法的排序并不一定完全符合业务要求与用户体验,例如:当前排序结果是否满足用户体验的新颖性,是否满足各类物品的均衡性,是否符合当前产品发展阶段某些流量倾斜策略。重排序就是在当前排序的基础上对排序进行调整,以满足以上目的。常用做法有打散、去重、部分物品打压降权或者提升加权、随机等。
排序的目的重点在算法预估准确,重排序的目的重点在用户体验。
新颖性:借助用户画像,用户兴趣特征,如兴趣品牌、类目以及其他兴趣标签与非兴趣商品对比,衡量推荐系统挖掘用户潜在兴趣的能力。这里的指标也是指离线指标。
业务层:
业务层是推荐产品直面用户的第一线,推荐系统将结果呈现给用户,收集用户信息,接受用户反馈,从而不断调整自己的计算,实现自我更新的闭环。
推荐系统最终目的指向业务,所以推荐系统的大部分指标体系都在业务层体现。数据指标体系的框架也由业务逻辑演化而来,如产品的核心指标,活跃留存等,如漏斗模型,它广泛的应用与流量监控、产品目标转化等日常数据监控工作,同样适用于推荐系统,将各数据分层监控。以电商行业为例,用户访问推荐产品模块是转化的第一步,购买是转化的最终目的。
转化漏斗:访问-点击-收藏/加车-购买。每一层都可以从pv、uv量拆分,如有必要可监控用户或者物品去重数据。
将这些维度的数据交叉统计,获得所需要的数据。
推荐整体指标:活跃、留存。
规模指标:pv、uv、商品曝光、点击数量等。
转化率指标:点击转化率、收藏转化率、加车转化率、下单转化率。其中纯商品维度的曝光点击数据,即ctr,是推荐产品重要监控数据。
质量指标:人均点击商品数、人均收藏商品数、人均加车数量、人均订单量、人均gmv、客单价。
推荐数据与全站数据对比指标:推荐点击占全站点击比例、推荐订单占全站订单比例、推荐gmv占全站gmv比例。
针对问题重点监控指标:如无点击行为占比等。
线上消耗资源情况指标:资源消耗占比等。
在召回层以及排序层提到的覆盖率与新颖性指标,线上依然需要。
覆盖率指标(线上):按照商品类目、品牌分别统计线上消耗与商品库内数量对比,监控推荐系统是否有效避免马太效应,是一个稳定全面,可以长期发展的健康系统。
新颖性指标(线上):越收越窄是推荐算法一个弊端,重排序层的随机策略正式为了解决算法收窄问题,新颖性指标借助用户画像,用户兴趣特征,如兴趣品牌、类目以及其他兴趣标签与非兴趣商品对比,衡量推荐系统新颖性。
其他指标:打击低俗内容指标,反作弊指标等。
指标的定义也是不断优化完善的,以点击率为例,一个用户点击进入商品详情页,迅速返回,与点击进入详情页,浏览至最底部,其行为反应用户对此商品的兴趣程度是不一样的,前者属于无效点击,后者则为有效点击,计算点击率时使用的是后者行为,视频行业如youtube,已经在迭代中将“点击播放行为”更改为“有效浏览行为”,数据采集和指标制定的准确度,可见一斑。
然后确定数据维度
时间维度:天,月
用户维度:高价值用户推荐数据,非高价值用户推荐数据、新用户推荐数据、老用户推荐数据等。
终端维度:ios、安卓、小程序、h5、pc
二.单一指标与综合指标
当衡量指标非常多的情况下,制定核心指标与辅助指标是一种指标分层的方法。
以电商行业为例,虽然最终目的是购买,影响购买的因素太多,非推荐系统所能单独影响,因此一般把点击层指标作为核心指标,也就是大家非常熟悉的CTR。核心指标的选取并不是固定不变的,也可选取其他指标作为衡量标准,据笔者所知,很多公司也会选取例如“人均点击次数”或者“推荐点击占全站点击比例”作为衡量推荐效果,指导优化迭代的核心指标。任意一层或者模块都可以制定核心指标与辅助指标。
但同样应该明确,推荐系统非常复杂,任何单一指标都很难作为衡量推荐系统好坏的指标,需要结合全部指标进行综合评估。
三.长期指标与短期指标
长期指标与短期指标反应的是推荐系统的长期目标与短期目标,例如长期目标是提升活跃度,保证推荐系统健康运转,短期目标为提升转化,把数据做起来。不同的目标对应不同的策略,指标也要相应调整。
四.数据指标与人工抽样评测
数据指标再详细,都无法替代人工抽样评测。根据曹博士的头条算法分享中提到的几点很好的陈述的理由。
线上试验平台智能通过指标变化推测用户体验
数据指标和用户体验存在差异
重要改进需要人工评估二次确认
已经以上步骤,一个初步的数据指标体系就搭建好了,可以开始愉快的分析工作了。但这项工作并非一劳永逸的事情,后续仍然需要不断的优化完善,路漫漫,尽求索。
参考:
《推荐系统实践》
《推荐系统评级指标综述_朱郁筱》
《今日头条推荐算法原理全文详解》
萧饭饭,搜索推荐产品经理,WX:xiao-xiao1991,欢迎大家一同探讨,共同进步~