https://www.atatech.org/articles/174568?spm=ata.13261165.0.0.3ddb7edbDyrCTr
如何科学合理地评价推荐系统的结果质量?
要根据不同的推荐场景,因地制宜的选择合适的评估方法。推荐场景,与推荐内容,展现方式,满足用户需求有关。
推荐的目的:电影推荐,目的是快速选出想看的电影,需要评分,简介,海报,用户停留时间越长,满意度越低,因为用户选不出;短视频推荐,目的的让用户在app停留时间足够长,多样性新颖性更重要
推荐电影 短视频 商品 新闻 小说 歌曲 个性化信息流feed推荐,相关推荐 热门推荐,推荐场景有很多
短视频:用户粘性,浏览时长,短视频制作方的曝光和生态,是关键考核因素。
影响推荐系统评估方式的几类因素
1.推荐展示的槽位是固定数量还是不断延展的信息feed流
TOP-N推荐:展示数量有限,有先后次序,对结果的准确率要求高,因此,推荐结果的前N条点击率CTR(click-through-rate)是常见指标,计算方式为点击/曝光
推荐结果有明显顺序关系的,app从上到下展示,需要有位置衰减因素,如NDCG(Normalized Discounted Cumulatie Gain)MRR(Mean Reciprocal Rank)MAP(mean average precision)。
feed流:常用点击/曝光即曝光点击率来衡量推荐质量,PV点击率(点击量/总 PV)、UV点击率(点击量/总 UV)也是Feed流中常用方法
2.推荐背后的商业模式是电商交易型还是广告收益型?
电商
电商:推荐核心目的是促成交易,推荐带来的交易笔数占总交易的占比,或总交易金额与GMV的比例,是最直接的评价指标
从推荐激发购物者兴趣,到用户完成订单,有漫长的操作链条,所以还可以分解动作以更好的衡量每个环节的效果。例如加购物车率(通过推荐引导的加购物车数量 / 推荐曝光总数),商品详情页阅读率(通过推荐引导进入商品详情页数量 / 推荐曝光总数)等
广告
广告点击、曝光:新闻资讯、短视频、免费小说漫画阅读类APP,广告作为主要收入来源,要扩大用户在APP上的停留时间和促进广告点击,因此用户平均停留时长、推荐引导下的成功阅读次数等,作为衡量标准
推荐评估是离线进行还是在线实时完成?
离线
离线数据采集通常很难做到完全细致全面的情况下(例如大量用户的隐式反馈数据很难完整记录,因为性能代价太大)
使用大数据算法竞赛,采用静态评估方法计算。
例如在电影、电视剧的推荐中,用户 - 物品评分矩阵(User-Item-Rating)就是常用于离线评估,在学术界尤其常见。因为高校、学术界很难接触真实线上环境,用离线评估是比较方便来评估算法好坏的,也算是学术界的无奈吧。
在线
在线评估可以随时进行abtest,缺点是,线上环境复杂,会受到其他干扰因素影响,未必能反应推荐算法效果的好坏;一些指标很容易受到攻击和作弊,运营活动也会有干扰;流量占比过小时,数据抖动很大,abtest的效果未必能体现真实效果。
离线评估的结果和在线测试的结果可能南辕北辙。离线测下来效果顶呱呱的算法,上线后可能石沉大海一点浪花也看不到。这也恰好证明了正确选择评估方法是多么重要。
推荐系统当前的目标是最大化运营指标还是考虑生态平衡和来源多样性?
推荐的内容如果都来源于平台自身,那么往往只需重点考虑平台关键运营指标最大最优,例如达成更多的交易提升 GMV,或者读者的留存率更高,或者提升整个平台用户的活跃度等就行。
但是比如抖音的内容来自各个发出者,这些人依赖平台推荐,增加曝光率来获利,因此平台要从自身的生态平衡和系统长期健康角度出发,考虑让出一些曝光给长尾UGC或者PGC,避免被顶流占据,同时扶植更多中小内容创作者让生态更加繁荣。这时评价指标要包含内容来源覆盖率,多样性等指标。
研究表明主流的推荐算法(比如协同过滤)都是具有马太效应的,基尼系数用来评测马太效应的强弱的,如果 Gini1 是从初始用户行为中计算出的物品流行度的基尼系数,Gini2 是从推荐列表中计算出的物品流行度的基尼系数,如果 Gini2 > Gini1 则说明推荐算法具有马太效应。
推荐结果要硬核人性还是引导人性?
评价指标一定不能只单纯看重点击率、转化率等量化指标,因为如果只用这些指标来优化算法,最终结果一定是低劣内容会充斥着版面,降低整个平台的格调。
在推荐系统评估时大家往往语焉不详的“惊喜度”(Serendipity)、“新颖性”(Novelty)等,往往就是在人性揣测的方面进行探索。
这些指标计算时最大的难点是评价指标偏主观,很难直接使用在线行为计算。一般只能用事后问卷或者用户对内容的评价评分、转发等行为来间接佐证。或者以 7 日或者 N 日留存率等来判断用户对推荐结果整体的满意度。(达观数据 陈运文)
实践中推荐评估指标设置的常用方法
方法一:为不同的细分人群来设置不同的评价指标
基于用户的整体式评估,会让推荐算法导向满足“大多数人口味”的推荐结果,但这背离了千人千面的个性化的初衷。我们期望社群里不同的人都能通过推荐来形成满意的体验。小众的人群偏好往往会淹没在整体数据中,我们一线的算法工程师经常有体会,就是某个新的推荐算法上线后,看整体指标明显好很多了,但是你的领导 / 客户可能来投诉,说感觉推给他的东西感觉没以前好了。个体和群体经常存在类似的矛盾。某个推荐算法可能对整体有利,但对其中另一类人未必如此。
理想的做法是将其中的人群进行细分,例如电商网站中既有价格敏感型的大众用户,也有追求品质的高端用户。在计算指标时如果划分不同人群来计算,更能体现推荐效果作用后的具体差异。例如我们期望新用户能迅速完成交易并沉淀下来,那么针对这群人的推荐指标,下单率和次日或 7 日留存就非常重要。而针对高端人群的则有所不同。个体的差异性和小众品味要得到更大程度的重视。
方法二:按不同的推荐位置来制定不同的指标
在同一个推荐 APP 或产品里,不同位置的推荐需要针对性的设置推荐评价指标。前文中提到的不同位置、不同场景,推荐指标制定规则可以有所不同。例如首页首屏的 banner 推荐(Top-N 推荐),信息流 Feed 推荐,内容详情页下面的相关推荐(常用 precision-recall 或者 F1-score)来计算。还有在搜索无结果页、购物车页面,退出确认页等等,不同的位置一定需要因地制宜的选择适合的评价指标。
方法三:综合几种不同的评估指标来获得整体数据指标
每个指标都有局限性,推荐系统需要平衡很多因素 ( 商业、用户体验、技术实现、资金、人力等 ) ,怎么做好平衡是一种哲学。通常可以把几个因素加权求和来作为整体指标
指标的选择和产品主打定位有关系。例如一个特别强调内容快速新鲜的 APP,那么结果的时效性就应该占更大的权重。而一个强调格调品味的 APP,单篇阅读时长就显得更可贵。而强调社群活跃度的平台,用户对内容的分享率,互动率等,在整体指标中要更突出。(达观数据 陈运文)
在产品运营的不同阶段,倾向性不同指标的选择也应该有所不同。产品上线前期可能要照顾用户体验,大力拓展新用户。当用户量足够多后,可能会侧重商业变现 ( 推荐的付费视频,在列表中插入较多广告等 ) ,想办法通过推荐让产品尽快盈利。如果是电商类推荐,要细致的考虑用户购买前和购买后的差异,以及标品和非标品的差异。购买前往往可以多推荐同类产品以更好的让用户进行比选。当购买动作完成后,尤其是耐用消费品,再继续推荐就适得其反了。
推荐系统本质上就是让每个消费者满意,这些指标只是从不同的角度来衡量“满意”这件事情的程度高低。在此小结下常见的指标种类,包括如下几种类型:
场景转化类指标:曝光点击率,PV 点击率,UV 点击率,UV 转化率,加购物车率,分享率,收藏率,购买率,人均点击个数,CTR,AUC 等
推荐内容质量指标:结果多样性(Diversity),结果新颖性(Novelty),结果时效性(timeliness),结果信任度 (Confidence& Trust) 等
内容消费满意度指标:留存率,停留时长,播放完成率,平均阅读时长,交易量,沉浸度(Engagement),惊喜度 (Serendipity) 等
在同一个推荐场景下,指标不宜过多,因为太多了不利于最终优化决策,把握准每个场景核心发挥的作用的几个推荐指标就行。但也不能只有一个指标,因为过于单一的指标会把推荐算法的优化引入歧途。迷信单一的指标表现好不能说明产品好,而且物极必反,过度优化后的指标虽然上去了,但用户的体验往往会降低。
很多推荐评价指标本身也是脆弱和易受攻击的,一些推荐算法如果严重依赖各类反馈指标来自动优化结果,往往会被恶意利用,所以既要灵活运用推荐评价指标,又不要完全迷信技术指标。因为指标背后体现的是用户的人性。在商业利益和人性之间拿捏到最佳平衡点,是推荐系统开发、以及推荐效果评估的至高境界。
网友评论