推薦算法改版前的AB測試 | 實驗設(shè)計

0 評論 7906 瀏覽 72 收藏 10 分鐘

編輯導(dǎo)語:所謂推薦算法就是利用用戶的一些行為,通過一些數(shù)學(xué)算法,推測出用戶可能喜歡的東西;如今很多軟件都有這樣的操作,對于此系統(tǒng)的設(shè)計也會進(jìn)行測試;本文作者分享了關(guān)于推薦算法改版前的AB測試,我們一起來看一下。

一、實驗背景及目的

1. 實驗背景

某商城,搭建了以個性化推薦系統(tǒng)為核心的“猜你喜歡”功能;功能上線后,發(fā)現(xiàn)推薦的準(zhǔn)確率(用戶進(jìn)入物品詳情頁定義為判斷真正的正樣本)較低;對此,數(shù)據(jù)分析師優(yōu)化了推薦模型。

2. 實驗?zāi)康?/h3>

在新的推薦模型上線前,進(jìn)行AB測試,以此判斷新模型是否能夠顯著提升推薦的準(zhǔn)確率。

二、AB測試說明及測試流程

1. AB測試定義

AB測試是為明確某個問題,制作兩個(A/B)或多個(A/B/n)版本,在同一時間維度,分別讓組成成分相同(相似)的訪客群組(目標(biāo)人群)隨機(jī)的訪問這些版本,收集各群組的用戶體驗數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù);最后分析、評估出最好版本,正式采用。

2. AB測試的特點

  • 先驗性: A/B測試能夠先于上線,得出結(jié)論;不再需要先將版本發(fā)布,再通過數(shù)據(jù)驗證效果,從而一定程度上減少改版帶來的風(fēng)險。
  • 并行性: A/B測試是將兩個或以上的方案同時在線試驗,這樣做的好處在于保證了每個版本對應(yīng)的時間環(huán)境、數(shù)據(jù)環(huán)境保持一致,便于更加科學(xué)客觀地對比優(yōu)劣。
  • 科學(xué)性: 如果能保證流量分配的科學(xué)性,將相似特征的用戶均勻的分配到試驗組中,就可以避免出現(xiàn)數(shù)據(jù)偏差,使得試驗的結(jié)果更有代表性。

3. 應(yīng)用場景

1)產(chǎn)品UI

不同行業(yè)的產(chǎn)品需要不同的風(fēng)格,同時還要與企業(yè)的品牌相得益彰。利用A/B 測試優(yōu)化UI能給用戶帶來更好的交互體驗和視覺感受。

2)文案內(nèi)容

顧名思義是指用戶閱讀到的文字內(nèi)容——小到圖片配文和按鈕文字,大到文章標(biāo)題甚至版塊主題;這些部分都可以嘗試變換文案內(nèi)容,測試不同方案的數(shù)據(jù)效果。

3)頁面布局

有些時候,可能根本不需要對產(chǎn)品的UI或是文案內(nèi)容作出調(diào)整,只是在布局排版上的改變,就可以出現(xiàn)增長的效果。

4)產(chǎn)品功能

想給產(chǎn)品增加一個新功能,可是很難確定是否能達(dá)到用戶的預(yù)期,如果盲目上線,可能會造成一些損失;使用A/B 測試,對你的用戶真正負(fù)責(zé);例如,社交類產(chǎn)品在付費查看照片的新功能正式上線前,需要進(jìn)行A/B 測試,以驗證功能的使用情況和效果。

5)算法/算法

包括基于內(nèi)容的推薦算法(根據(jù)用戶的歷史記錄推薦相似內(nèi)容)、基于協(xié)同過濾的推薦算法(根據(jù)有相似興趣用戶的行為推薦相關(guān)內(nèi)容)、基于關(guān)聯(lián)規(guī)則的推薦算法(根據(jù)商品/內(nèi)容本身的相關(guān)性給用戶推薦);算法優(yōu)化迭代前,需要真實的數(shù)據(jù)進(jìn)行測試。

4. 實驗流程

推薦算法改版前的AB測試 實驗設(shè)計

三、實驗設(shè)計

1. 假設(shè)檢驗的基本概念

統(tǒng)計假設(shè):是對總體參數(shù)(包括總體均值μ等)的具體數(shù)值所作的陳述。

原假設(shè):是試驗者想收集證據(jù)予以反對的假設(shè) ,又稱“零假設(shè)”,記為 H0。

備擇假設(shè):也稱“研究假設(shè)”,是試驗者想收集證據(jù)予以支持的假設(shè),記為 H1。

雙側(cè)檢驗與單側(cè)檢驗:如果備擇假設(shè)沒有特定的方向性,并含有符號“=”,這樣的稱為雙側(cè)檢驗;如果備擇假設(shè)具有特定的方向性,并含有符號 “>” 或 “<” 的假設(shè)檢驗,稱為單側(cè)檢驗。

臨界值:是指在原假設(shè)為真的條件下,樣本數(shù)據(jù)拒絕原假設(shè)這樣一個事件發(fā)生的概率。

第 I 類錯誤(棄真錯誤):原假設(shè)為真時拒絕原假設(shè);第 I 類錯誤的概率記為 α(alpha)。

第 II 類錯誤(取偽錯誤):原假設(shè)為假時未拒絕原假設(shè)。第 II 類錯誤的概率記為 β(Beta)。

2. 實驗原理說明

先認(rèn)定原假設(shè)成立,然后在事先給定的顯著性水平下,構(gòu)造一個小概率事件,根據(jù)抽樣結(jié)果觀察小概率事件是否發(fā)生;若小概率事件發(fā)生,則拒絕原假設(shè),否則接受原假設(shè)。

3. 實驗流程設(shè)計

1) 提出假設(shè)

本次AB測試,目的是希望提升猜你喜歡功能的推薦效果。所以選取推薦系統(tǒng)的準(zhǔn)確率,作為優(yōu)化指標(biāo)。

準(zhǔn)確率表示預(yù)測為正的樣本中,真正的正樣本的比例。公式如下:

R(u)是根據(jù)用戶在訓(xùn)練集上的行為給用戶作出的推薦列表,而T(u)是用戶在測試集上的行為列表。

最簡單的例子:例如推薦系統(tǒng)給用戶推薦了10件物品,用戶進(jìn)入物品詳情頁定義為判斷真正的正樣本的行為,用戶進(jìn)入了其中3件物品的詳情頁,則此時準(zhǔn)確率=3/10=30%。

假設(shè)我們認(rèn)為,如果新的推薦算法,比原推薦算法,顯著高于5%以上,則可將新推薦算法發(fā)布至生產(chǎn)環(huán)境。

此時我們可以得到假設(shè):

原假設(shè)H0:π2-π1≤5%

備擇假設(shè)H1:π2-π1>5%

2)確定顯著性水平α

本次實驗中,α 值設(shè)定 0.05(5%),這是假設(shè)檢驗中最常用的小概率標(biāo)準(zhǔn)值;表示原假設(shè)為真時,拒絕原假設(shè)的概率。

3)確定臨界值

臨界值是顯著性水平對應(yīng)的標(biāo)準(zhǔn)正態(tài)分布的分位數(shù),顯著性水平0.05的情況下,單側(cè)檢驗對應(yīng)的標(biāo)準(zhǔn)正態(tài)分布的分位數(shù)是1.645,雙側(cè)檢驗的標(biāo)準(zhǔn)正態(tài)分布的分位數(shù)為1.96。

4)收集實驗數(shù)據(jù),得出結(jié)論

由樣本值求得檢驗統(tǒng)計量的優(yōu)化指標(biāo)的數(shù)值。若觀察值在拒絕域內(nèi),則拒絕原假設(shè)H0,否則接受原假設(shè)H1。

四、開始測試并分析數(shù)據(jù)

定義新推薦算法的準(zhǔn)確率為π1,新推薦算法的準(zhǔn)確率為π2。

Ho:π1-π2≤5%

H1:π1-π2>5%

實驗?zāi)繕?biāo)人群:從進(jìn)入商城,且使用了“為你推薦”功能的用戶流量(UV)中,隨機(jī)抽取5%,作為實驗?zāi)繕?biāo)人群;其中的50%為實驗組,50%為對照組。

實驗時間:1周

假設(shè)檢驗方式:

不同的AB測試場景,適用于不同的檢驗方式,如上圖所示。

本次AB測試,由于兩個推薦系統(tǒng)版本是獨立的,且樣本數(shù)足夠大,認(rèn)為滿足正態(tài)分布。

根據(jù)HO、H1的假設(shè),可判斷本次檢驗為兩個獨立樣本的總體均值的單側(cè)檢驗,且總體方差未知,需要用樣本方差代替總體方差。

此時計算統(tǒng)計量公式為:

顯著性水平:0.05。

臨界值:在顯著性水平為0.05時,單側(cè)檢驗的臨界值Zα為1.645。

實驗數(shù)據(jù)(為方便計算):實驗一周后,有10000用戶,使用新推薦算法,準(zhǔn)確率的平均值為41%,標(biāo)準(zhǔn)差為20%;有10000用戶,使用原推薦算法,準(zhǔn)確率的平均值為35%,標(biāo)準(zhǔn)差為10%。此時新算法的準(zhǔn)確率定義為x,則x的平均值=41%,原算法的推薦率定義為y,則y的平均值=35%。

計算檢驗統(tǒng)計量:

檢驗結(jié)果:統(tǒng)計量Z=4.4722,臨界值Zα=1.645.由于統(tǒng)計量的值大于臨界值而落入拒絕域內(nèi),所以拒絕原假設(shè)H0,認(rèn)為新推薦算法的準(zhǔn)確率,比原推薦算法顯著高出5%,新版本算法可發(fā)布至生產(chǎn)環(huán)境。

 

本文由 @16哥 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自 unsplash,基于 CC0 協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!