一.背景介绍
-
P4首页在做纯CTR排序,即期望首页卡片根据CTR降序在首页展现,并且首页卡片位置排序随着CTR值实时变化。
-
目前实现:工程团队利用几种策略的CTR预估算法来预估CTR并根据CTR对卡片的位置排序。
-
不同策略是指CTR更新的不同频率,如“139策略”是指按天更新一次的CTR排序策略;“151策略”是指10分钟更新一次的CTR排序策略。
-
问题:
-
如何知道首页整体CTR预估的有效性?
-
如何实时方便、直观查看在某个时间段首页所有卡片的位置排序详情?
-
如何方便、直观的查看某个卡片在某个时间段内的位置变化?
-
-
startpage 排序监控工具的目的就是解决上面遇到的问题,即能客观的评估CTR排序的有效性,并能方便、直观的给出CTR在某个时间段的变化、首页卡片位置排序的变化、某个卡片在某个时间段内的位置变化。
二.思路和具体算法
-
思路:
-
先获取每分钟的首页所有卡片的排序详情,即每个卡片的位置和卡片id。(并存储数据)
-
根据卡片id和策略id获取每个卡片每分钟的实际点击量和曝光量,并计算出每个卡片实际CTR。(并存储数据)
-
访问CHANA的API获得实时点击量和曝光量
-
-
根据总点击量和总曝光量计算首页实际CTR。
-
根据每个卡片实际CTR和每个位置的曝光量来计算理想CTR。
-
计算实际CTR和理想CTR的差值。
-
存储的是每分钟的数据,所以计算区间可以是十分钟、一个小时、一天等,如果计算区间是10分钟的,就把10分钟的数据加和来计算,依次类推。
-
-
具体算法:
-
每个卡片实际CTR = 点击量/曝光量
-
首页整体CTR = 总点击量/总曝光量
-
CTRt= i=1nclick i/i=1nimpr i,n 表示全部的 n 个 卡片
-
-
计算理想CTR:
-
按实际CTR降序排序
-
-
CTRe = i=1n(CTR i * impr i)/i=1nimpr i
-
CTR 1CTR 2CTR 3...CTR n ,该计算区间内将所有卡片实际CTR 降序;
-
impr 1impr 2impr 3... impr n ,该计算区间内将所有卡片 曝光量 降序;
-
-
-
计算差值:
-
1-CTRt/CTRe
-
CTRt 表示首页实际CTR,CTRe表示首页理想CTR
-
-