新知一下
海量新知
6 2 8 8 4 6 4

数据中台推荐系统入门(三):推荐系统的评测指标

改变世界的产品经理 | 乔布斯说要做改变世界的产品经理 2021/04/07 21:42

本文介绍一下推荐系统的相关评测指标。 推荐系统的数据指标分为两种。

(1)商业指标,即推荐系统的与最终交易额相关的指标。我们做推荐系统的目的是为了代替人工给用户推荐商品,提高效率,实现千人千面的用户体验,从而带来更多的交易额。商业指标包括曝光次数、商品的PV、商品的UV、商品支付人数、支付金额、支付件数,以及点击率(商品PV与曝光次数之比)、支付转化率(商品支付人数与商品UV之比)。

接下来我们看看这些指标该怎么计算。

首先是曝光次数。统计推荐模块曝光次数的方式有两种:其一是通过 前端页面埋点 的方式,当用户在推荐模块浏览商品时,由前端工程师异步上传数据到埋点日志服务器,再通过解析埋点日志的方式统计曝光次数;其二是通过后端埋点的方式,当用户在推荐模块浏览商品时,推荐模块调用的是获取推荐商品的接口,由后端工程师记录当时的推荐场景、算法、用户、商品 ID的集合等关键信息,将之保存到日志文件,再通过解析日志文件的方式统计曝光次数。由于前端页面埋点有5%的丢失率,而应计算的一些指标(比如交易额)需要比较准确的数据。如果采用后端埋点的方式统计,曝光量会更加准确一些。

推荐商品的PV、UV可以通过对推荐位进行常规埋点的方式计算,由前端工程师开发。每当用户点击一次推荐位的商品,平台就会通过埋点的方式记录当前的推荐场景、算法ID、商品ID等主要信息。

与交易额相关的指标(比如支付人数、支付金额、支付件数等),也需要通过后端埋点的方式采集。前文讲过,在电商产品的交易流程中有一个断层 ——用户一般都是先加购再下单,这就会增加前端埋点和数据解析的难度。简单的做法是在订单中增加下单来源的字段,记录商品的推荐场景、算法ID等信息到购物车中,一般来说,购物车中的数据是保存在内存数据库Redis里面的,当用户下单时再从Redis中取出数据放入订单中,这样就保证了数据整个链条能够被记录下来,功能界面如下图 所示。

新知达人, 数据中台推荐系统入门(三):推荐系统的评测指标

2) 算法运行监测指标。可以通过准确率、召回率、覆盖率这几个指标监测推荐系统算法运行的情况。接下来我们介绍一下这三个指标是如何定义的。

首先看准确率。假设平台向用户推荐了100个商品,用户点击了其中10个,那么准确率就是10%。要想计算准确率,就要对推荐的商品列表页做埋点,用户每点击一次推荐的商品就会上传商品的ID、用户ID,这样才能记录用户到底点击过哪些商品。

接着看召回率。假设平台向用户推荐了100个商品,用户点击了其中10个,而用户在平台上一共查看了50个商品,那么推荐系统的召回率就是20%。

最后看覆盖率。假设电商网站一共有10000个SKU,向所有的用户推荐的SKU一共有8000个,那么这个推荐系统的覆盖率就是80%。覆盖率为100%的推荐系统可以将每个物品都推荐给至少1个用户。覆盖率是供应商会关注的指标,他们关心自己的商品是否会被推荐给用户。

在推荐系统搭建好后可以先组织公司内部人员做测试,比如笔者公司电商产品的定位是女装批发平台,主要客户是女性,在推荐系统上线前,我们就招募了一些公司女同事做了测试。这些女同事平时在我们的电商平台上也会购买一些女装,已经积累了一些数据。

在做灰度测试时,推荐系统最好能做成准实时模式,当用户有了新的行为(如点击、加购等),一旦刷新界面,就能看到平台推荐的新的让他们感兴趣的商品,这样也便于我们及时收到反馈。我们可以手工统计一下数据,比如单个用户的准确率和召回率。

可以先不要告诉试用者这次活动的目的,给他们5分钟,让他们先逛平台,唯一他们能做的就是记录每次查看的商品名称和位置,这样可以方便我们计算出召回率。接下来可以让他们关注推荐模块,让他们记录推荐了多少个商品,点击了其中的多少个商品,这样可以直接算出来准确率。最后再问他们几个核心问题,比如他们给这个推荐系统打几分(满分是10分)、为什么打这样的分数、有没有其他建议给我们。经过这一轮内部测试,我们会发现一些问题,可以针对问题进行针对性修改。

在优化出一个稳定的版本后,我们可以和运营人员合作,邀请几个真实的用户来试用一下。测试用户的年龄、活跃度等相关指标的分布要和真实用户大致相同。可以设计一套方案,让他们参与进来,体验我们的推荐模块,这时可以通过后台收集埋点数据的方式计算这批用户的准确率和召回率。


更多“推荐系统”相关内容

更多“推荐系统”相关内容

新知精选

更多新知精选