面向算法效果的数据统计案例
现在需要做一个关于推荐算法的效果统计报表。产品希望知道算法在每个相关指标的效果如何,比如点击率,注册率。另外,算法工程师想知道算法的预估的效果和最终效果的差异有多大,比如预估的点击率和实际点击率的差异。
来看看我们的思路:首先,延续我们做业务统计的经验,投放效果的公式很容易得到;另外,算法工程师在日志里给出了每次算法的预估效果。
产品经理 | 算法工程师 | |
需求 | 算法的效果 | 算法预估效果与算法真实效果的差异 |
计划 | 使用业务统计的效果公式计算算法效果。 | 1.使用业务统计的效果公式计算算法效果 2.利用日志中的算法预估效果 |
我们的第一版统计很快就出来了:点击率=总点击量/总展现量;预估点击率=总的预估点击量/总展现量。注册率=总注册量/总点击量;预估注册率=总的预估注册量/总的预估点击量=(点击后的预估注册量+展现后的预估注册量)/总的预估点击量。产品经理和算法工程师也很快的反馈了意见。
产品经理 | 算法工程师 | |
反馈 | 并非所有的展现都被算法处理过。 | 展示出来的结果不符合预期 |
修改方案 | 调整公式为算法处理过的点击和展示。 SUM(IF(e_ctr>0,click_num,0))/SUM(IF(e_ctr>0,show_num,0)) *e_ctr是算法预估的点击率。有这个值代表算法处理过。 | 1.点击率的预估公式调整为 SUM(IF(e_ctr>0,show_num*e_ctr,0))/SUM(IF(e_ctr>0,show_num,0)) 2.预估注册量修改定义为算法干预过,且点击过的注册量 SUM(IF(e_ctr>0 AND CtoR>0,click_num*CtoR,0)) 3.实际注册量修改为算法干预过,且点击过的注册量 SUM(IF(e_ctr>0 AND CtoR>0 AND click_num>0,reg_num,0)) *CtoR表示算法预估的点击导致注册的预估率 |
如此修改的目的:
- 简化公式,让使用者可以看到最终一环的效果。
- 明确的文案定义,防止歧义解释。
- 算法预估的结果连续使用,将导致预估值非常小,失去意义,应该避免。
- 统计逻辑简单化,方便核对
统计报表不应该有太复杂的逻辑,查找问题的链条会变得非常长。文案的解释应当明确,尤其是作为描述较复杂的业务的报表。 业务逻辑复杂的情况下,应该层层环节用独立的报表来描述,避免数据使用者的疑惑和降低数据问题查找的困难度。