分別預估然後相乘算pctcvr是最佳做法麼

初次碰到計算pctcvr是用pctr和pcvr相乘得出的,有人可能習以為常,有人可能就會有疑惑,為啥非得這麼做,為啥不直接預估pctcvr,有哪些好處和壞處?

這麼做的理由可以列好些出來,比如,分開預估就是兩個模型,就可以有兩撥人有事情做(大霧)。技術上呢?有一種說法是,ctcvr的正例太稀疏了,拆開來更好學習。業務上的理由有,比如app的轉化有延遲,因此app ctr和app cvr資料處理流程不一樣,模型的更新週期不一樣,拆開更合理。還有一種說法是,ctr和cvr的特徵不一樣,所以拆開合情合理。

端到端預估也有不少好處,比如app ctr在某些媒體上可能有很多行為碼不好界定是否屬於點選,比如自動播放的那些。端到端就直接跨過這個問題,畢竟轉化的定義是清晰的。

另外,在召回和粗排階段,是否直接預估pctcvr又更合理呢?

ctr有的特徵是否cvr就該有

比如ctr使用了使用者行為特徵,cvr模型是否就一定也要用上,cvr特徵永遠是ctr特徵的超集?

ctr是否能使用轉化相關的特徵,cvr能否使用點選相關特徵

比如ctr能否使用使用者轉化行為相關特徵,為什麼會有效?而cvr使用點選相關特徵又會有正面效果麼?

ctr和cvr預估值怎樣相互影響

ctr和cvr的低估和高估會怎樣影響到對方?ctr資料的收集基本在站內就能完成,因此ctr相對來說會更容易做的更準確,當然點選label定義不清又是另外一種情形。而轉化受廣告主回傳等因素的影響,真值的波動會比ctr大,從而容易導致預估偏差。因此ctr是pctcvr預估的穩定劑,預估偏差不能太大。

取樣偏差在預估和統計上的影響

sampling selection bias的問題在esmm論文裡頭已經說的比較清楚了,訓練的樣本空間(其實是特徵空間)應該跟推斷的樣本空間一致。不一致會發生什麼情況呢?就拿cvr預估來說,如果還是用點選作為負樣本,轉化作為正樣本來訓練模型,相比esmm來說,正樣本是沒丟的,也就是正樣本的特徵空間也不會有損失。點選未轉化的樣本(通常意義的cvr負樣本)也一個沒少,那麼損失的都是什麼呢,是那些曝光沒點選的,大機率是cvr的負樣本。這些負樣本會對特徵空間有所擴充,而且會讓負樣本本身預估更準確。舉個例子,有點選的使用者可能集中在20-60歲之間,假設其他歲數就變成一個預設值“-”,如果是按照非esmm的cvr訓練模式訓練出來一個模型,在線上會有大量的樣本命中“-”,這個時候這些樣本的預估值就會比較接近,沒有區分度。對於ocpx系統來說,這是比較要命的,我們希望所有樣本之間都有能區分它們的特徵,從而能預估一個更細緻的值,更好地控制成本,哪怕是這些預估值很低,意味著幾乎不可能發生轉化。個人理解可以看做是easy negative(相對positive而言)裡頭的hard(negative之間)情形,因為你需要把“-”再分開。這塊跟召回用全量空間的樣本有相似之處,都是一不小心就會導致訓練的樣本空間小於推斷的樣本空間,區別在於召回的全量空間包括沒有曝光的樣本,而esmm的全量空間包括沒有點選的樣本。esmm認為能曝光出來已經是能產生轉化的最低要求了,未曝光樣本(同樣會出現新特徵值)在esmm看來屬於冷啟動問題,需要靠實時模型和泛化特徵等手段來解決。

取樣偏差在一個不太為人注意的任務上也存在,那就是統計。比如計算pcvr和tcvr之間的預估偏差,這個時候,是統計發生了點選後的預估值和點選後的真實值之間的gap,還是統計所有曝光的預估值的均值再和真實值相比?

線上學習

ctr模型用線上方式的處理,問題不太大,畢竟點選行為從端上上報不會比曝光延遲太久,漏掉正樣本的情況比較少。但cvr的轉化就不一樣了,延遲的轉化在app安裝和啟用上尤其明顯,電商推薦的收藏到付費也可能時間很長。label延遲的情況下到底是否適合線上學習,這個事情業界好像是先整線上再說,快速資料流轉成為一種理念。於是梯度補償等方法也被提出來,沒太多理論保證,但這也是為“快”所付出的代價。按預估轉化時間分桶打散聽起來更合理一些,也能跟線上處理結合,只是更復雜一些。