用神經網絡對頁面登錄進行多參數優化的小妙招

 2018-07-26 10:57:00.0

雷鋒網按:本文爲 AI 研習社編譯的技術博客,原標題 Neural networks for landing page optimization,作者爲 Oleksandr Savsunenko 。

翻譯 | 趙萌       校對  |  餘杭      整理 | MY


用增強學習將 A/B 測試提升到一個新的水平

用神經網絡對頁面登錄進行多參數優化的小妙招

AI 尋找最佳的登錄頁面版本


爲什麼,是什麼,怎麼做?

我很樂意分享我用神經網絡對頁面登錄進行多參數優化的一些實驗。我想到這個點子已經有半年了,而且我發現從自動操作這個角度來看它十分有趣。A/B  測試需要從市場專家那裏消耗大量的時間,同時它們需要有大量的流量才能表現良好。當一個小團隊來管理大量頁面時,這就很成問題了。對於一些項目來說,這也與登錄頁面的「老化」有關——它們會隨着促銷或優惠的結束而過時。

有許多方法可以解決這個問題。在谷歌優化方案中比較舊的方案 MVTs(多變量測試)將分割所有可能的登錄頁面版本間的流量。並且適用於 3 個變量的測試。但是想象一下,你要測試 3 個標題,3 個子標題,2 個按鈕顏色和 2 個標題圖片,再加上總體佈局的幾個版本。這很容易達到 10k+不同的組合。由於你估計了 50k 的流量,目標是儘快找到最優或接近最優的版本。你犧牲了純粹的統計精度,並試圖儘快達到儘可能多的轉換。

我知道少量的潛在方法。首先,考慮不同的特性。因爲它們是獨立的實體,想象一下你正在做一個獨立的數字 A /B  測試,這樣你將很快得到一些結果,但是如果存在有交叉特徵的相關性,你將會錯過它們,你的解決方案並不是最佳的。二是使用遺傳算法。有一些公司就這樣做了——比如 Sentient Ascend。從他們的宣傳材料來看,他們似乎使用了某種遺傳算法。三是運用多臂老虎機理論。解決多臂老虎機問題的方法之一是利用強化學習和神經網絡。

讓我們從概要開始。


遺傳算法

遺傳算法是模擬自然選擇的過程。把不同的網頁變化看作是一種生物的不同特徵——有些特徵利於生存,有些不產生影響,有些則有負面影響。遺傳算法的基本工作流程如下:

  •  生成一個數字 (假設是 100),不同的後代具有隨機的特徵集 (100 個登錄網頁具有各種各樣的特徵)。

  •  讓流量流入它們並測量轉化率(進化生存)。

  •  計算適應值大小——每一個網頁的表現。

  • 選取 20 個表現最好的頁面,提取它們的特性,以重新將它們混合。然後在混合頁面中添加 20 個性能較差的頁面特性並添加一些。這可能有一些罕見的「突變」隱藏在其他性狀中,但是有利於多樣性。基於這些特性生成新 100 個新的網頁。

  • 重複 n 次。

當這個系統看起來不錯的時候,我發現了一些確切存在我不想要的東西。

  • 它仍然需要大量的流量

  • 當用戶配置文件/屬性在測試期間發生變化時變化很慢 (例如出現新的獲取通道)

  • 它沒有考慮用戶配置文件 (一天中的時間、瀏覽器、設備等)

  • 它沒有用到神經網絡

所以,我決定構造神經網絡驅動的一些東西。我和一些市場營銷的人做了交易:我將建立一個系統,他們會給我流量來測試它。這是個雙贏的過程,CPA 是這種系統的一個完美的應用案例。


研究階段

我需要做的是使用神經網絡來解決所謂的「多臂老虎機」問題。在強化學習方面,我還學過一些其他的好方法,你可以在下面找到一些聯繫。我把這個項目簡化爲幾個階段,就像多臂老虎機問題的演變一樣。

  • 第一階段 :一個擁有幾個拉桿的老虎機。一個多臂老虎機,每個拉桿(網站的不同功能)有稍微不同的收益概率 (CTR 率)。你需要構建一個系統,在最少的嘗試中找到性能最好的拉桿,然後始終堅持使用這個拉桿 (顯示網站的這個版本)。請記住,由於這個問題的隨機性,總會存在解決辦法錯誤的情況。

  • 第二階段 : 用戶。賭場裏有許多多臂老虎機,不同的用戶會玩不同的老虎機,系統必須找到什麼用戶應該玩什麼樣的老虎機。這意味着不同的用戶對你的登陸頁面有不同的反應,所以你必須根據用戶的特點爲每位用戶顯示不同的頁面。

  • 第三階段 : 定時。這裏有很多帶有多臂老虎機的房間,你必須經過每個房間裏的老虎機,你的收益概率取決於你在每個房間的表現。當你有多步銷售過程——例如預登錄,登錄,電子郵件營銷,這是問題的完整版本。

我將分享我對實現階段 0 中問題的見解。

爲什麼只是第一階段呢?

我內心深處對解決每個步驟所需要的流量數量持非常樂觀的態度。我的 CPA 的小夥伴們贊成用 10k-20k 的流量去測試我的觀點。並且我覺得測試階段 0 和階段 1 已經足夠,但數學對我來說不利。階段 1 將需要更大數量級的流量,當系統調試並學習完畢後所需要的流量會減少。


最新運行結果

在這裏,我將描述系統在運行中的最新運行結果以及我收穫的一些見解。下面你會發現爲精通技術的讀者準備的一些代碼和實現細節。

所以,我們進行了 50/50 的分割測試。50% 是靜態登錄頁面,另外 50% 是神經引擎驅動的動態登錄頁面。在最初的 3-4 天之後,我注意到我的神經系統解決方案已經達到了它確定的變化 (局部最小值),並且不會改變 (基於損失和權重)。這大約出現在 3-4k 的流量之後。

我開始好奇,想看看我是否能基於單純統計數據得出同樣的變化。我計算了每一種變化的平均 CTR 值,選擇了其中表現最好的,並與 ML 得到的變化進行了比較。讓我十分驚訝的是,它們中 80% 都不相同。神經網絡表現出完全不同的結果。真有趣…

那麼,我想神經網絡應該比簡單的線性代數和我都更聰明。爲了進一步驗證我的發現,我停止了學習神經網絡,對 3 個版本進行了正面比較:

  • 100% 的隨機化;

  • 提出對特徵性能進行簡單比較的靜態版本 (爲每個特性獲得最佳性能並將它們合併到登錄頁);

  • 由神經網絡得到的靜態版本。

用神經網絡對頁面登錄進行多參數優化的小妙招

正如你看到的那樣,我一直等到隨機和非隨機選擇之間的差異變得具有統計學意義。所以以下是主要的結論:

  • 基於神經網絡的系統與簡單的基於概率統計學的版本表現相同。

  • 統計學和神經網絡系統兩個版本的表現差異爲 80%。這可能意味着我沒有收集足夠的數據對兩者進行獨立操作。

  • 有一種可能性是,性能最好的登錄頁不僅僅是表現最好的特性總和,而且存在二階相關性。

  • 我們需要更多的數據。


系統建立

經過一些挖掘,我認爲我的問題符合典型的「人工智能」強化學習。這裏有一個很好的我經常用到的速成課程,我將在文末提到它。我希望我的代碼在生產環境中運行,而 Tensorflow 是一個可以選擇的框架。在我的日常工作中,我更喜歡 MXNet,它已步入量產階段。


神經網絡

我使用了一個簡單的兩層全連通網絡,有一個靜態變量作爲輸入,並將每個頁面的每個特性生成概率作爲輸出。如果輸入不是靜態的,而是隨着用戶特性 (時間、地理位置、語言等) 的不同,那麼對於第一階段的系統來說,修改它是非常容易的。

用神經網絡對頁面登錄進行多參數優化的小妙招

這是我使用的網絡。規模變量表示經測試的特性數量和每個特性的一些變體。


 產品運行

爲了在產品中運行系統,我使用了 Sanic 後端、Postgres 作爲 SQL 存儲,而 Tensorflow 作爲推理引擎。在服務器上執行了系統的學習。

對於每個網站訪問,我們要求後臺系統把推理結果和頁面的變量顯示給這個用戶,它大約有 30 毫秒的延遲。在轉換之後,它與用戶的頁面訪問之間有 15 分鐘延遲(其中五分鐘是經典窗口轉換)來決定訪問是否成功,然後使用這次訪問來進行神經網絡訓練。在測試期間,隨機頁面生成與神經網絡動態頁面比例在逐步減少。最初的登陸頁面是 100% 隨機生成的,隨機頁面生成與神經網絡動態頁面比例在 10 天內衰減到 0。


 一些技巧

爲了構建系統,我需要某種虛擬測試環境,所以我構建了一個簡單的腳本來模擬訪問網站和轉換。這個過程的基礎是爲每個登錄頁面的變化生成一個「隱藏」的轉化率概率。最初,我假設每個特性的獨特組合都有自己的 CTR,並且所有的特性都完全依賴於彼此。這是一種失敗的方法,網絡常常無法找到具有大量流量的最佳解決方案。正如我所理解的,這並不是一個真實的情況,標題文本和下面 3 個卷軸的顏色之間並沒有太大的相關性。

用神經網絡對頁面登錄進行多參數優化的小妙招

然後我決定簡化環境,假設特性都是線性無關的。這是一個過於簡化的過程,但是對超參數進行優化並確保系統找到正確的解決方案就足夠了。

用神經網絡對頁面登錄進行多參數優化的小妙招

在這裏創建正確的「隱藏」環境是一個關鍵的系統微調,需要一些額外的步驟。


部分代碼

我正在分享我一般用來尋找超參數和測試神經網絡部分的腳本。

感謝你的關注,歡迎提出問題並與我溝通交流,我的郵箱是: savsunenko.sasha@gmail.com

用神經網絡對頁面登錄進行多參數優化的小妙招

原文鏈接:https://hackernoon.com/neural-networks-for-landing-page-optimization-564153b4d12

用神經網絡對頁面登錄進行多參數優化的小妙招號外號外~

一個專注於

AI技術發展和AI工程師成長的求知求職社區

誕生啦!

歡迎大家訪問以下鏈接或者掃碼體驗

https://club.leiphone.com/page/home


用神經網絡對頁面登錄進行多參數優化的小妙招

雷鋒網雷鋒網(公衆號:雷鋒網)

用神經網絡對頁面登錄進行多參數優化的小妙招

文章來源:雷鋒網