《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 把抖音,、今日頭條背后的技術開放給企業(yè),,字節(jié)跳動揭秘A/B測試產(chǎn)品

把抖音、今日頭條背后的技術開放給企業(yè),,字節(jié)跳動揭秘A/B測試產(chǎn)品

2021-04-22
來源: 機器之心
關鍵詞: 抖音 今日頭條

  「A/B 測試不一定是最好的評估方法。它不是萬能的,但不會 A/B 測試肯定是不行的,?!?br/>

  4 月 20 日,首個火山引擎技術開放日在北京方恒時尚中心舉辦,,字節(jié)跳動副總裁楊震原以《聊聊數(shù)據(jù)驅動和用 A/B 測試解決問題》為題,,分享了他對于 A/B 測試的理解。

  楊震原稱,,A/B 測試是字節(jié)跳動一項非?;A的工具,從公司成立之初就在使用,,支撐了抖音,、今日頭條等產(chǎn)品的增長迭代。目前,,字節(jié)跳動 A/B 測試每日新增 1500 + 實驗,,服務于 400 多項大大小小的業(yè)務,累計做了 70 多萬次實驗,。這項工具已經(jīng)實現(xiàn)產(chǎn)品化,,通過火山引擎向企業(yè)客戶開放。

  A/B 測試廣泛應用于字節(jié)跳動方方面面,,包括產(chǎn)品命名,、交互設計、推薦算法等,。但楊震原表示,,這項工具也存在很多應用局限,比如獨立性,、置信度,、長短期等問題。

  楊震原透露,,抖音產(chǎn)品名字,,其實是綜合了 A/B 測試和人為判斷的結果,「『抖音』這個名字在測試結果中排名第二,。但大家覺得,,這個名字更符合認知,更能體現(xiàn)它的形態(tài),,所以還是選了它,。」

  1.png

  楊震原在火山引擎技術開放日現(xiàn)場

  以下為楊震原演講全文:

  大家好,,我叫楊震原,。非常高興在火山引擎技術開放日上和大家交流分享,,希望對大家有所幫助。

  字節(jié)跳動做了很多產(chǎn)品,,我們希望技術團隊對待自家產(chǎn)品就像對待客戶一樣,。我們不僅有內部客戶,像抖音,、今日頭條,,也希望有更多外部客戶,把我們的技術能力輸出,,于是就有了火山引擎品牌,。火山引擎技術開放日也是這個目的,,希望把我們的技術對外,,跟更多朋友分享交流。當然,,也有點私心,,希望我們的產(chǎn)品能賣到更多地方去。

  今天我們聊的話題是 “數(shù)據(jù)驅動和用 A/B 測試解決問題”,。這里的關鍵詞是“解決問題,、數(shù)據(jù)驅動、A/B 測試”,。解決問題一定要有好的方法,,每個人都想用更好的方法解決問題,這涉及用什么方法,,達成什么目標,。“數(shù)據(jù)驅動” 是我們公司內非??粗氐囊幌盗蟹椒?,“A/B 測試”是 “數(shù)據(jù)驅動” 中的一個具體方法。

  用戶畫像和使用時長不是好的目標

  要想解決問題,,第一個問題是:目標是什么,?很多人覺得:這個很簡單啊,!目標嘛,,今天想干一個什么事情,我就確定一個目標,,接下來就是照著這個目標去完成,。但是,確認目標,,以及這個目標是否可量化,,其實是特別重要的,。

  我給大家舉幾個例子。我大概 2014 年初來到字節(jié)跳動,。剛來時,,張一鳴說把我們的推薦質量提升提升,,想想辦法怎么做改進,。所以,當時我的目標就是提升今日頭條產(chǎn)品的用戶體驗,,把推薦做得更好,。

  很快我發(fā)現(xiàn),這方面其實已經(jīng)有很多項目在做了,,其中有一個子方向的目標是“全面,、精準的用戶畫像體系”。但在我看來,,這個目標其實有很多問題,。

  我們的實際目標是“提升推薦的用戶體驗”。我們有很多方法來達成目標,,用戶畫像只是方法之一,。它是個子目標,不是我們要解決的目標,,甚至可能都不是重要的方法,。即使假設這個目標就是我們的主要目標,我們也還要評估它是不是可衡量的,。

  如何評估這一點非常難,,比如衡量用戶畫像是不是好,很難量化,。用戶的實際興趣是什么,,很難評估。問用戶喜歡不喜歡旅游,,一般人都說喜歡,,但是推薦旅游相關文章看不看?實際上很多人都不看,。

  因此,,用戶畫像不是一個好的目標。首先,,這個目標優(yōu)先級不一定高,,其次,它的評估非常難,,這就意味著,,這個目標很難指導我們的具體工作,。

  還有一種常用目標,叫“使用時長”,。A 做了一個算法,,平均使用時長 40 分鐘,B 做的算法,,平均使用時長 45 分鐘,,那是不是 B 就比 A 好?這個聽起來似乎很科學,。

  但是我要跟大家講一個例子,。大概在 2016 年,有一個傳統(tǒng)老牌外企,,它在美國的 PC 端有一款產(chǎn)品是新聞推薦,。這個公司在中國有一個研究所,其中一項工作是去提高新聞推薦質量,,采用的評估標準是用戶使用時長,。對于用戶在平臺上閱讀了多少時長,這個研究所每個季度都有 KPI,,連續(xù)幾年他們每年都能完成目標,,并且經(jīng)常超額完成。但后來我跟他們聊的時候,,這個研究所快要解散了,。

  原來,雖然使用時長在增加,,但這個產(chǎn)品的用戶規(guī)模其實是不好的,,用戶體驗也不夠理想,整個產(chǎn)品的留存在下降,。我問他們,,為什么你們的時長一直在漲,但是你們產(chǎn)品卻不行了,?對方說:時長是在漲,,但時長增長有兩種方式,一種是用戶體驗變好了,、用戶看的時間更長了,;還有一種方式是用著很好的用戶繼續(xù)留下來了,而一些時長很短的用戶看了看覺得這個產(chǎn)品不好,,就走了,。這些用戶走了以后,平均時長繼續(xù)變長。于是就變成了 “不斷驅趕體驗差的用戶,,平均時長卻變長了” 這樣一個過程,。

  這是很可怕的,看起來是個很好的目標,,但卻把產(chǎn)品做死了,。可以預見,,如果我們只用使用時長作為目標的話,,是有風險的。

  那怎么辦呢,?我們也沒有大招,,只能是盡量將多個目標綜合。既要考慮用戶體驗,,也要考慮一些客觀指標,同時可能輔以一些用戶訪談的直觀印象,,最后綜合去制定我們的方向,。

 2.png

  好的目標層次合理、可衡量

  如何選一個合適的目標,?我覺得至少有兩個角度,,需要去考慮。

  第一個角度,,目標層次合理性,。

  什么叫“層次合理性”?比如你是一家公司的首席技術官(CTO),,CEO 問你公司的技術目標是什么,,你說“我要讓我們的公司市值做得更大,原來估值 5 億美元,,10 年之后估值 50 億美元”,。這個目標很泛,、很高層次,,跟最終目標很接近。通常大家也不會質疑說這個目標有錯誤,。但是這個目標就不太能指導你的工作,。CTO 下面的總監(jiān),、經(jīng)理、工程師這個季度該干什么呢,?這個目標能有些推導分解嗎,?很難。雖然目標層次很高,不容易偏離,,但是對具體工作很難有指導,。

  那我們定非常具體的目標可以嗎?比如像剛才的例子,,以使用時長為目標,。這種時候,會有另一個問題:這個目標很具體,、很能指導工作,,但是它偏離了怎么辦?還有一個可能出現(xiàn)的問題是,,這個目標沒有偏離,,但不可衡量,它不利于指導工作,。

  所以,,應該選一個不要太高、不要太低的目標,,并且定期衡量特別重要,。聊數(shù)據(jù)驅動思路時,當試圖用數(shù)據(jù)驅動思路去細化目標時,,有利于你仔細反思:我的目標是不是這個,?我的目標能不能量化?它會逼你把目標想得很清楚,。

  第二個角度,,目標可衡量。這一點特別重要,。它跟數(shù)據(jù)驅動的理念互相幫助,,定好目標,才能更好的應用數(shù)據(jù)驅動,,當你用數(shù)據(jù)驅動的方法去做事情時,,它就會 push 你的目標到底是不是合理。比如你想了想這個目標:哦,,之前的目標就定錯了,,怪不得搞不清楚。

3.png

  什么是靠譜的評估方法,?

  當目標想清楚了,,那我們就評估吧。通常我們有哪些方法,?

  一是經(jīng)驗判斷,。不管什么公司,每天都在不停的用這個方法,這個方法非??孔V的,,但是有它的問題。

  二是非 A/B 測試的數(shù)據(jù)分析,。

  三是 A/B 測試的數(shù)據(jù)分析,。我特別把 A/B 測試和非 A/B 測試區(qū)分了一下,因為它是一個更接近真實,、更能夠把握住本質的一個方法,。相信很多朋友都了解因果推斷,做精準的 A/B 測試能夠把因果說得更清楚,,所以是更有效的方法,。

  4.png

  經(jīng)驗判斷是什么?本質上是就靠人,,這個方法是普遍采用的,。舉個例子,大家都知道我們公司在做短視頻,,怎么評估質量好壞,?很多時候都靠人去判斷,如果你用客觀指標判斷它,,會有另外的風險,所以很多時候用人判斷,。在很多公司,,比如戰(zhàn)略決策通常是人判斷的,很難靠數(shù)據(jù)定你的戰(zhàn)略方向,,這是一個很重要的方法,。

  但它的問題在于:執(zhí)行層面很容易不一致,尤其對一個很大的公司來說,,每天要決策的事情很多,,并不是每個決策都由 CEO 或者高管來做,可能會分到公司很多團隊很多部門,,每個部門都有很多人,,這些人在他們的點上去做希望對公司正確的決策,但他們的意見有可能是不一致的,。而且每個人可能有每個人的偏好,,這是很難避免的。尤其公司比較大的時候,,就會帶來非常多風險,,比如不一致性和有偏性。

  非 A/B 測試的數(shù)據(jù)分析。這個主要想強調關聯(lián)跟因果的問題,,我們來舉個例子就很容易看到,。暑假前,運營團隊做了一波活動,,聲勢非常浩大,,到了暑假開始的時候,發(fā)現(xiàn)用戶的活躍度大幅上升,,這個提升是我們的運營活動帶來的嗎,?二者是有關聯(lián)的,但是關聯(lián)并不代表因果,。很明顯,,暑假就是一個因素,暑假帶來的變化跟運營活動帶來的變化,,到底誰更大,?這個事情很難歸因的。每個人都覺得自己做的事情有用,,關聯(lián)分析中往往就會帶有偏見,。

  我們再舉個有趣的例子,諾貝爾獎和巧克力消費量的關系圖,。圖片顯示,,巧克力吃得越多的國家,諾貝爾獎得主就越多,。如果想改進中國的科技水平,,多拿諾貝爾獎,我們應該多吃巧克力嗎,?這顯然不靠譜,。可能會變胖,,但很難拿到諾貝爾獎,。

  5.png

  這可以說明一件事情,這兩個事件有關聯(lián)性,,但是它不是因果性,。從數(shù)據(jù)分析中得出結論,就會面臨很多這樣的風險,,它會混淆關聯(lián)性和因果性,,并不能解決問題。

  真正的完美解決方案是什么,?得靠平行宇宙了,。當前時空是這個狀態(tài),,做了一波 A 操作,比如一些同事搞了一波活動,,時間退回去,,他沒有做這個事情。我們再回過頭來看這兩個平行宇宙的差別是什么,,這個差別就是這個活動所帶來的,,這個很好理解。但是我們沒辦法做平行宇宙的實驗,,就只能做 A/B 測試了,。

  怎么做 A/B 測試?當我們想觀測某個方面,,比如說人群或者某類產(chǎn)品,,就把人群和產(chǎn)品分成 A、B 兩組,,比如你的操作是發(fā)紅包,,或者改了設計頁面,又或者是做了運營活動,。除了這些操作之外,,其他的分布完全一樣。當然了,,這件事情只能無限逼近,,不能做到理論上完全一樣,除非是平行宇宙,。

  A/B 測試看上去好像效率很低,,非常復雜,要分組,,還要看因素是不是剝離干凈了。但是當你真正把一個事情搞清楚以后,,就可以一個臺階一個臺階往上走,。如果你搞不清楚,做得很快,,有可能今天上一個臺階,,明天下一個臺階,后天上一個臺階,,不能保證一直在前進,,這是非常大的差別。

  字節(jié)跳動的 A/B 測試實踐

  早期有記載的 A/B 測試,,是在 1747 年,,詹姆斯 · 林德治療壞血病的臨床實驗,。他們把患有壞血病的水手分成 6 組,每組 2 個人,。在 6 天的時間內,,他們把大家安排在同樣的治療室中,吃同樣的食物,,盡量排除實驗的干擾,。這個人群選擇也很重要,我們應該選擇各種年齡段的,,各種國家地區(qū)的,。這里沒有寫,沒有足夠的數(shù)量,,這是它不嚴謹?shù)牡胤?。唯一的不同是每組的治療方案,吃什么東西,?檸檬,、橘子、蘋果汁,、醋,、海水等等。最后的實驗結果是檸檬 / 橘子,、蘋果汁有用,。

  在此之前有很多玄學,這個病,,有人說用這個方法有用,,用那個方法有用,有的是碰上了,,有的是有效了,。這個實驗雖然不夠嚴謹,還可以做得更好,,但是它真正確定了什么原因,。當你非常確信這個結論時,就可以繼續(xù)深入研究,,比如從這個食物中分離出它所必要的真正有效物質是什么,。在很確定結論的基礎上不斷演化,就能夠往后走得很遠,。

  知道了 A/B 測試的源頭后,,現(xiàn)在說下字節(jié)跳動做的 A/B 測試實踐。

  6.png

  2012 年公司成立,,那時候我還沒來,。聽說那會兒一鳴還在自己寫代碼,,已經(jīng)開始做 A/B 測試。

  我大概是 2014 年來的,,發(fā)現(xiàn)公司已經(jīng)非常重視這方面,。這跟我的理念非常像,我也在繼續(xù)推動這件事情,。比如定目標,,推動 A/B 測試的平臺化,讓它更嚴謹,,以及發(fā)現(xiàn)它的問題,,在公司中更廣泛地使用。

  到 2016 年,,已經(jīng)變成一個內部廣泛使用的平臺了,,叫 Libra 平臺,它有很多的功能,。到 2019 年時,,我們已經(jīng)不只是內部平臺了,正式立項,,開始做對外平臺,,給外部更多客戶來用我們的產(chǎn)品。

  內部來說,,我們用 A/B 測試確實很多,,現(xiàn)在每天大概新增 1500 個實驗,服務了 400 多項業(yè)務,,累計已經(jīng)做了 70 萬次實驗,。

  7.png

  應用在哪些方面呢?產(chǎn)品命名,、交互設計,,比如改一個字體、一個彈窗,、界面大小,,都會做 A/B 測試。推薦算法就不說了,,從一鳴自己寫代碼開始,就一直在做了,。廣告優(yōu)化,,這是業(yè)界普遍做法。用戶增長,,也是這樣,。市場活動,,我們做了一小部分。內部基本上就是,,能用 A/B 測試的都用,。

  A/B 測試不是萬能的

  那 A/B 測試是不是就一統(tǒng)天下了呢?顯然也不是,。A/B 測試不一定是最好的評估方法,,它不是萬能的,但是我覺得,,不會 A/B 測試肯定是不行的,。

  為什么說它不一定是最好的評估方法?我們說說它的一些局限和問題,。

  首先是獨立性的問題,。如果你真的想做 A/B 測試,就要對你的實驗對象進行分組,,分組之后,,去做一個操作,觀測結果,。這個分組要求兩組是非常獨立,,除了你的這個操作之外,其他部分都一樣,,至少是分布一樣,。但有時候這點并不容易保證。

  舉個例子,,網(wǎng)約車的司機分配策略,,比如這個網(wǎng)約車分配什么司機?誰離你最近,,我就分配,,這是一個策略。我們還可以考慮價格,,以及車型和時間等等,,做別的策略。A 同學做了 A 策略,,B 同學做了 B 策略,,哪個策略更好?

  8.png

  我們可以來做個 A/B 實驗,,把用戶分成兩組,,A 組是一部分用戶,用 A 策略,,B 組是另一部分用戶,,用 B 策略,。但這是有很多問題的。如果只按用戶來分,,A 策略和 B 策略的用戶有可能都用同一個司機,,A 策略的用戶把這個司機訂走了,B 組的用戶就訂不到這個司機了,。

  也就是說,,你最后觀測到的統(tǒng)計指標,比如成單量,、成單率,,可能會有交叉影響,但具體是多少,?單從這個實驗數(shù)據(jù)來講,,是看不出來的,也不太容易分析,,所以它不獨立,。交叉影響在哪?按用戶分了,,但是司機沒有分開,,兩波用戶有可能會聯(lián)系到同一個司機,這就叫“獨立性問題”,。

  更嚴謹?shù)膶嶒炘趺醋??應該把用戶和司機都分開,把用戶編個組,,司機也編個組,,用戶司機 A 組,用戶司機 B 組,。當你發(fā)現(xiàn)你要觀測的對象不能被嚴格切分的話,,就需要考慮獨立性的問題,這時候你做的結論很可能是錯的,。

  我們再看一個置信度的問題,。比如做搜索評估,我們評估 100 個隨機測試,,把它們分成 A,、B 兩個測試組,其中有 22 個變好了,,有 20 個變差了,,加起來是 42 個,剩下的 58 個兩邊一樣。

  請問,,A 組是比 B 組變好了嗎?有人說,,系統(tǒng)變好 10%,,效果非常明顯。你相信嗎,?你要相信的話就被蒙蔽了,。

 9.png

  我這里寫了一個置信度,P 值 = 0.75,,這是什么意思,?我們通常認為,P 值要小于 0.05,,這個數(shù)據(jù)才是可信的,,也就是 A 比 B 好。0.75 的意思是 “A 比 B 好” 碰巧出現(xiàn)的概率是 75%,,這是不可信的,。我們把這個箱型圖畫出來,它波動的范圍如果按照 95% 的區(qū)間,,從 - 0.1 一直到 0.147,,是非常大的范圍。把置信度畫出來,,發(fā)現(xiàn)這個實驗完全不能說明 A 比 B 好,。結論就是:這個實驗不可信,沒有顯著性,,完全不能從這個實驗中得出 A 比 B 好的結論,。

  還有長短期的影響,這也是一個常見的問題,。我舉一個例子,,比如說,我們對每個商品會有評價,,現(xiàn)在興趣電商比較熱,,電商的推薦主要會考慮它的評價,對于評價低的商品,,我們會做一些控制和懲罰,,讓它的推薦少一些。如果加大懲罰力度,,或者由不懲罰變成懲罰,,交易量會怎么樣變化?

 10.png

  如果做 A/B 實驗,會發(fā)現(xiàn)加上這個懲罰,,它的交易量是下降的,。這很顯然,商品本來可以買,,現(xiàn)在不讓買了,,那它的交易量肯定下降。如果你看了 A/B 測試,,說我們不應該做,,對這些差的產(chǎn)品就應該保持,那你很可能就錯了,。

  有時候,,靠人的經(jīng)驗相信這個事情是對的,堅持做,,你很可能會得到一個正確的答案,。為什么?我們這個實驗不再測 3 天或者 1 個星期,,而是測 1 個月,,你會發(fā)現(xiàn),這個交易量開始是下降的,,但是慢慢持平了,。隨著時間再往前推移,它的交易量就變好了,。

  可以想象,,當你做了一些正確的事情,短期可能會受一定損失,,但是積累了用戶口碑,,這些東西周期都很長的,慢慢效果就體現(xiàn)出來了,。A/B 測試通常不會做那么多時間,。

  所以有時候要結合判斷相信背后本質的東西,可以用更長期的 A/B 測試驗證它,,這時候你會做出更正確的選擇,。如果相信短期,就掉到溝里了,,得出錯誤的結論,。

  抖音的名字是怎么來的?

  最后再講講抖音取名字的故事,。很多人都很關心這件事,,甚至有人說抖音的名字是找大師算過的,。起名字是可以做 A/B 測試的。當年,,我們做了這個短視頻產(chǎn)品,,有很多候選名字,那會兒已經(jīng)有一些產(chǎn)品 demo 了,。

  我們就把這個 demo 產(chǎn)品起成不同的名字,,用不同的 logo,在應用市場商店做 A/B 測試,,同樣的預算,同樣的位置,,這能測出用戶對這個名字的關心程度,,吸引力程度,下載轉化率等等,,但其實也是非常短期的,。

  做完這個測試之后,我們得出了一個排名,,比如第一名是什么,,第二名是什么?!岸兑簟笔桥琶诙?,不是最好的名字。當時負責抖音的產(chǎn)品經(jīng)理,,討論應該用哪個名字,。

  你去看這個分析和排名,看那個過程,,就會發(fā)現(xiàn)有一些是符合你的感覺,,有一些不是符合你的感覺,才知道,,原來人們對這個東西可能會這么想,。所以 A/B 測試的過程,有時不完全看它的結論,,它也會給你帶來很多認知,,這就是經(jīng)驗帶來的偏差。A/B 測試可以糾正這些偏差,,但是它也會有這樣或那樣的問題,,有時候你不會完全采納它的結論。

  我們就沒有采納排名第一的名字,,大家覺得,,“抖音”長期來講更符合認知,更能體現(xiàn)它的形態(tài),所以就選擇了 “抖音” 這個排名第二的選項,。

  從這個故事中可以看到,,真正想去做一個科學決策,是很難有完美方法的,,沒有一招鮮的方法,,只有最合適的方法。充分地做 A/B 測試,,這是一個能夠在很大程度上補充信息的過程,,能夠消除很多偏見,能夠帶來很多客觀的事實,。但是它也不是完美的,,需要補充其他方法一起來用。就像 “抖音” 起名字的例子一樣,。在公司中更廣泛地使用 A/B 測試,,我相信對提高整個公司的決策質量是很有幫助的。

 


本站內容除特別聲明的原創(chuàng)文章之外,,轉載內容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章,、圖片,、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者,。如涉及作品內容,、版權和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。