小叽導讀:今天我們來探讨一個嚴肅又甜蜜的重要問題,一個你可能正在關注、或者終要關注的人生課題:如何用機器學習方法,為你生命裡的另一半,挑選最适宜的母嬰産品,提升幸福滿意指數。
▌背景介紹
生命階段在消費行為中的重要作用已經在營銷和社會學中被研究了幾十年。雖然這些研究并沒有關注消費者的行為,但是他們研究了各種人和事件的生命周期,這為研究所學生命階段對消費者行為的影響提供了堅實的基礎。在電子商務中,比起使用者的生命階段轉變,更多的研究側重于根據消費者的曆史行為進行商品推薦。

例如,電商公司會挖掘具有相似偏好的使用者,并根據其他相似使用者的偏好對目前使用者進行推薦。而對于消費者生命階段與消費者行為之間關系的研究才剛剛開始,在這些研究的驅動下,我們提出了一種可用于電子商務中生命階段推斷的動态融合算法。
我們使用多元邏輯回歸模型對嬰兒的生命階段進行分類預測、産生相應的機率分布。此外我們還開發了動态融合方法以不斷提高預測精度,并且可以有效地提高計算效率。每次有新的機率分布生成後,我們會更新然後維護多個機率分布。這樣做可以識别消費者的短期興趣,而且對于多個孩子的生命階段預測也是非常有幫助的。
為了評估算法的有效性,我們進行了大量離線和線上的數值實驗,這些實驗表明我們的方法可以顯着提高消費者生命階段推斷的準确性。
本文的主要貢獻有:
- 我們為生命階段推斷提供了工業級别的解決方案。
- 我們開發了一種動态融合方法,可以在大幅節省計算資源的基礎上不斷提高預測精度,并且可以友善地維護對多個孩子年齡階段的預測。
- 我們通過實際資料驗證了我們的解決方案對生命階段推斷的有效性。
母嬰使用者生命階段劃分
使用者行為會随着生命階段而改變,消費行為的轉變通常與生命階段的轉變一緻,這種現象在母嬰這樣的垂直行業中更為顯著。例如,媽媽們會在嬰兒剛出生時購買尿布;而在2到3年後,當嬰兒要上幼稚園的時候,媽媽們會購買更多的衣服和鞋子。消費者行為随着生命階段改變的現象不僅僅存在與母嬰行業,在其他行業例如家裝和汽車也有相同的現象。在本文中,我們将重點關注母嬰行業,即基于父母的消費行為推斷嬰兒的生命階段。
根據我們的行業認知,一個孩子的生命階段發展是一個與年齡密切相關的連續過程。是以我們将母嬰使用者的生命階段根據孩子的年齡分為以下幾個階段:出生前(媽媽的孕期);0-6個月(新生兒);6-1個月;2-3歲(事先串通的人所);3-7歲(幼稚園)。不同年齡段孩子的父母會對不同的商品感興趣,如果我們可以準确預測他們孩子的年齡段并推薦合适的商品,就可以大幅提高轉化率。
動态融合方法
為了推斷一個孩子的生命階段,我們開發了一種不斷預測并且不斷改進推論的算法。與使用複雜模型進行一次性預測的方法不同,我們的算法每次會根據目前的資料産生一個較好的預測結果,然後不斷地更新我們的推論,這就是所謂的動态融合過程。下面将會具體介紹動态融合過程的細節。
與單個預測結果相比,對孩子生命階段預測的機率分布包含了更多的資訊。比如說當分布中有兩個生命階段的機率都較高時,這表明消費者可能有兩個孩子,或者消費者的孩子正處于兩個生命階段的交界處,但我們不能從單個預測結果中得到這些資訊。保留這些機率分布可以推斷使用者孩子的生命階段,并且可以讓我們在合适的時候更新推論。然而消費者在不同月份的行為很可能導緻不同分布中機率最高的生命階段是不同的,如何維護和更新這些分布成了我們解決方案的關鍵。是以我們設計了動态融合算法來解決這個問題。
以特征向量X作為輸入,我們可以通過模型預測單月機率分布,我們将在下一節中介紹模型的訓練細節。現在假設我們已經有
的機率分布,并且當下個月結束時,模型會産生另一個機率分布
。有了這兩個分布後,為了将它們進行融合,首先需要将之前的分布進行平移,平移方式由下式給出:
其中∆ 是之前分布産出時間與目前月份的時間差。平移機率分布的方法有好幾種,在Algorithm 1中對我們使用的方法進行了詳細介紹。
然後我們會比較平移後的分布,如果兩個分布具有最高機率的生命階段是相同的,也就是說:
這樣的話我們就可以将這兩個分布融合在一起:
(2)
其中
用于對新分布進行歸一化。如果多個分布機率最高的生命階段不同,那多個分布都會被保留以便将來可能的融合。我們會記錄每個分布融合的次數,推斷的生命階段由融合次數最多的分布決定。當新的單月分布生成時,将按照相同的邏輯進行算法的下一次疊代。
▌特征工程
在電商場景中,所有的特征都來自消費者的五大類行為:搜尋、點選、收藏、加購和購買。我們使用的特征分為以下幾類:
1.類目特征
在淘寶的類目體系中存在多級類目結構,其中一級類目包括衣服、鞋子等主要的大類;類目級别最多可達到4個或5個,沒有子類目的最低級别類目稱為葉子類目。理論上我們可以使用商品ID作為特征,但是這會導緻特征矩陣過于稀疏,隻有極少量的樣本會包含某些特征。為了避免這種情況,同時仍然能捕捉到使用者不同的消費興趣,我們使用商品對應的一級類目和葉子類目作為特征。
2.類目屬性特征
相同類目下的商品會共享一些屬性:例如商品的品牌屬性可能是IBM、New Balance等具體品牌,商品的尺寸屬性可以是“S”、“M”或“L”。類目屬性特征是指商品類目和屬性的組合特征,我們把母嬰行業中所有的類目屬性特征作為模型的輸入。
3.商品屬性特征
除了類目屬性特征,我們還将商品本身的屬性作為輸入特征。
4.搜尋詞特征
搜尋詞是指使用者用于搜尋的關鍵詞,可能會直接對應孩子的年齡段,例如“3歲寶寶的衣服”、“3段奶粉”等,我們會選取一些特定的關鍵詞作為輸入特征。
5.商品标題特征
商品标題包含了豐富的資訊,其中可能也包括年齡段或者生命階段相關的資訊。我們整理了大約200個年齡段相關的關鍵詞,對标題進行相關處理後作為輸入特征加入模型。
6.時序特征
消費者在不同日期購買相同的商品也有不同的含義,一個媽媽在6個月前購買尿布和在1周前購買尿布的含義是不同的。是以不同月份的行為也被歸為不同的特征,為了減少模型訓練時的計算負擔,我們使用了使用者最近一個月的所有行為和去年同月的購買行為作為輸入特征。
▌數值實驗
為了證明我們設計的方法是有效的,我們利用半年的taobao.com的資料做了多組實驗(從2016年9月到2017年2月)。圖一和圖二分别簡要說明了訓練數集和測試數集中嬰兒生命階段的分布。
值得注意的是,随着時間的推移,嬰兒會逐漸長大,是以生命階段的分布會沿着時間軸向右移動。實驗中,我們先使用2016年9月份的資料進行預測。得到的生命階段會和下一個月的生命階段的預測根據公式(2)融合在一起。融合之後的結論會作為10月份關于生命階段的最後結論。而這個結論會繼續和下一個月單月資料預測的結論(利用2016年11月的特征資料得到的生命階段的結論)融合。相應的,利用單月特征得到的預測結論作為對照組實驗的結果。我們将對照組實驗使用的方法稱為無記憶方法。也即是說這種方法僅僅使用最近一個月的特征資料來進行推斷。
表2,3,4展示了從2016年9月份到2017年2月份的實驗結果。值得注意的是因為2016年9月份作為起始點,是以兩種方法的結果是一樣的。正如表2和表3所展示的,基于動态融合的方法超越了。
表2,3,4展示了從2016年9月份到2017年2月份的實驗結果。值得注意的是因為2016年9月份作為起始點,是以兩種方法的結果是一樣的。正如表2和表3所展示的,基于動态融合的方法幾乎比無記憶方法好10%。表4展示了不同月份的比較結果。5個月(2016年9月份不包含在比較結果中)中有2個月動态融合方法在準确度顯著超越了無記憶方法(最高達15%),在另外的3個月中無記憶方法比動态融合方法預測的更準确(不超過10%)。動态融合方法在召回率上超越了無記憶方法。5個月中,動态融合方法在3個月中超越了無記憶方法,最高記錄高達21.76%,而在另外2個月中隻比無記憶方法稍微遜色,最壞記錄不超過-1%。
這背後的原因在于消費者的行為強度在一年中的旺季和淡季變化劇烈。對于任何一個擁有豐富的消費者行為資料的月份,兩種方法的準确度十分相似。然後,對于任何一個消費者行為資料十分稀疏的月份,無記憶方法的準确度會明顯下降,然後動态融合方法可以通過融合消費者行為豐富的月份中得到的結論這樣的方式巧妙的克服上述缺點。
實驗的月份越多,關于生命階段的結論會因為越來越多的消費者行為被隐性地考慮在模型中而變得越穩定。這個方法的另外一個優勢在于,對于任何一個錯誤的推斷可以在接下來的月份中得到修正。這一點可以被實驗中2016年11月、12月,2017年的1月和2月份的結果說明。11月份中錯誤的結論在接下來的月份中被逐漸修正。讀者會質疑正确的結論也可能被改為錯誤的結論,但是我們的實驗表明總體上,動态融合方法不會差于無記憶方法。
▌結論
在本篇論文中,我們介紹了一種叫做動态融合的創新的方法用來基于家長的消費行為推斷幼兒的生命階段。我們詳細介紹了特征工程,以及算法的細節。我們還進行了計算實驗用于證明這個算法的優勢。
對于消費者行為資料豐富的月份,該方法沒有比對照組差,然而在消費者行為資料稀疏的月份,該方法可以超越對照組方法。在未來的工作中,我們可以探索其他的機器學習模型用于預測單月的行為,或者多層級的模型來繼續提高表現(例如一種機器學習模型用于預測某些特殊的生命階段而另外一種機器學習模型用于預測其他生命階段)。此外,該生命階段的預測還可以被其他應用場景(如推薦系統)使用。
團隊:新零售供應鍊平台事業部—技術部—資料決策