從轉基因到搜索產品的優化 — 閑話Bucket Testing
1、優化改良無處不在
如果要回顧即將遠去的2010年,公眾最關注的話題有哪些,相信“轉基因水稻”必定榜上有名。對于這些通過基因工程,被人為創造出來的新物種,科學家雖然能保證高產與抗蟲害能力,但是不能證明食用后對人體沒有損害,這多少有些令人尷尬;而農業部在前景不明朗情況下批準商業化種植,則把公眾推向了高風險境地。不過,拋開轉基因技術所帶來的食品安全風險,它與雜交、輻射變異在本質上是類似的,都是通過嘗試著的改變生物的基因,來選拔良種。由于人們對于基因如何表達為生物性狀的機理不是完全了解,加之基因在雜交過程中本身存在隨機因素。這使得尋找良種的過程中需要不斷嘗試。因此,不論是孟山都公司通過基因工程來改造水稻種子,還是袁隆平老師通過不同水稻品種的雜交來培育優質水稻,其實在方法論上都是一致的:挑選一些樣本,然后施加各種各樣的變化因素,通過觀察,找到最佳的樣本。
圖1. 袁隆平的雜交水稻實驗,可以看作是一種BTS實踐(圖片來自網絡)
2、搜索產品的優化
在互聯網領域尤其是搜索領域,我們同樣也面臨著與選育良種類似的問題,即如何對一個搜索產品施加各種變化,從而發現效果最好的版本。說的再具體一點,為了尋找到效果最好的搜索產品,我們應該嘗試著去改變搜索產品的哪些方面,以及在每個方面施加哪些可能的變化。
這問題不像看上去的那樣簡單。首先,這個效果的定義,含義可就豐富了。淘寶搜索首先要考慮搜索結果與用戶query之間的相關性;除了相關性要求之外,對于淘寶搜索而言,是不是能有效的促進成交,也是要重點考慮的效果之一;此外,如果在搜索結果中,大量存在假冒偽劣產品,那這個效果也是要打折扣的;另外,如果大部分的搜索結果里,都是那些大賣家在拋頭露面,中小賣家沒有展現機會,對于淘寶生態圈的長期發展也是不利的。因此,淘寶搜索所考慮的效果問題要比一般意義上的搜索引擎更加復雜。其次,搜索產品的哪些方面可以做改動,如果要一一列舉就太多了。事實上,搜索產品的任何一個地方的不完善,都有可能降低搜索產品的整體效果。筆者試著將淘寶搜索產品的可變化因素整理成一個圖,希望各位看官能有一個感性的認知。
3、分桶測試 (Bucket Testing, BTS)
諸位看官可能已經意識到了,如何優化一個搜索產品,實際情況應該比我上面說的更加復雜,這真是一個壞消息;不過我們也有一個好消息,因為對于這個問題的答案,業界已經有答案了,這就是分桶測試(bucket testing),簡稱BTS。
所謂的分桶測試,是讓不同的用戶在訪問特定的互聯網產品的時候,由系統來決定用戶的分組號(我們稱為bucket id),然后根據分組號,令用戶看到的是不同的產品版本,用戶在不同版本產品下的行為將被記錄下來,這些行為數據通過數據分析形成一系列指標,而通過這些指標的比較,最后就形成了各版本之間孰優孰劣的結論。
3.1 A/B測試 (A/B Testing)
分桶測試的最簡單形式,稱為A/B testing。即設定一個基準桶,再設定一個或以上的測試桶。然后考察測試桶與基準桶之間在各項指標上的差異,最后確定測試桶的效果。這種方法論,很容易在現實生活中找到影子。其實,改革初期建立的深圳特區,就是一場偉大的A/B testing,基準桶就是中國內地,測試桶就是深圳,當時各自的用戶量是9億 vs 30萬(以當時的人口計算)。對于A/B testing而言,測試桶的用戶量、流量都不會太大,這是為了確保BTS萬一失敗,對于整體系統的影響盡量小。當然,測試桶的用戶量、流量也不能太少,否則測試效果容易受到未知因素的干擾,而變得不穩定。對于A/B testing而言,判斷測試組與基準組孰優孰劣非常簡單,只要將二者的指標進行對比即可。但是,如果版本中包含多個因素,那么確定每個因素的貢獻,就不好評估了。這就好比,我們不能僅僅根據內地與深圳的GDP差異,就能斷定是因為當時良好的投資環境,還是地理因素,或其它什么因素,是導致了深圳當時成功的主要因素。所以,利用A/B測試,我們往往只能知道how,而不能知道why。
圖3. 建立經濟特區,本質就是 A/B 測試(圖片來自網絡)
如果經濟特區的例子還是不夠直接的話,我們來看下奧巴馬同學的例子吧。奧巴馬的競選團隊如何在總統競選中將互聯網手段發揮到極致的,我們就不費口水介紹了,單說一下他們是如何改善競選網站的吧。看下圖,在奧巴馬競選網站上有一個贈送競選T恤的頁面,用戶只要捐款達到一定數額就會贈送一件T恤。顯然,如果T恤廣告圖片(下圖紅框處)足夠抓眼球的話,那捐款率可就ceng ceng的往上漲啊。所以奧巴馬團隊在廣告圖片的設計上可是花了不少心血,方法嘛自然是A/B測試咯,他們一共為測試組設計了4種變化(A~D),然后借助于 Google Website Optimizer 對用戶點擊行為的分析,選出最佳的形式。
圖4. 奧巴馬競選團隊利用A/B測試來改進競選宣傳的效果(圖片來自網絡)
3.2 多變量測試 (Multivariate Testing)
分桶測試的高級形式,是多變量測試。在多變量測試中,每個可以改變的地方稱為因素,而每種因素的可能具有的狀態稱為水平。比如,你想同時改變某個搜索產品的按鈕顏色、排序算法、索引數據這3個地方,那你需要一個3因素的多變量測試。如果,按鈕的顏色為3種,那“按鈕顏色”這個因素是3水平的。多變量測試允許你在同一時間測試多個要素處于不同水平時對于搜索產品的影響。通過多變量測試,你能十分清楚的看到不同的變化組合,對最終效果的影響。
舉例而言,如果對某個搜索產品進行BTS測試的范圍為:3種按鈕顏色、2種排序算法和2種索引數據,那么該如何確定效果最佳的搭配呢?一般,我們會進行排列組合,產生不同的版本,使得每個版本對應一種水平的組合,這樣我們就要構造3*2*2=12種版本參加BTS測試。接下來我們只要確定好每個版本的流量分配即可,即哪些桶對應哪個版本。
最后,也是最有難度的地方在于,如何通過各版本的指標分析,來確定哪個版本最好、每個因素貢獻程度以及結論的可靠性。這將比A/B測試要復雜的多,建議各位看官在有興趣嘗試之前,回顧一下統計學的假設檢驗、實驗設計方面的知識。限于篇幅,這里我們就不展開。
最后說明下,多變量測試的威力在于同一時間內可以進行多個因素的測試,可以為我們節省時間,但在使用這個工具的時候,切忌貪心,不要同時進行太多因素的測試。這是因為,在一定時間內,網絡流量是有限的,而同時進行太多的測試,就要創建大量的版本,這將攤薄每個版本能夠得到的流量。而流量不足時,會導致統計指標的可靠性變差。
來源:搜索技術博客-淘寶
- 目前還沒評論,等你發揮!