蔡琨 閆宇 謝致達(dá) 葉秀泳 劉松勁
引言:
和生活,是中國移動全力打造的一站式信息服務(wù)平臺,以滿足用戶便捷生活為目標(biāo),為用戶提供政務(wù)民生精品應(yīng)用和豐富的商家優(yōu)惠服務(wù),其服務(wù)覆蓋了餐飲、汽車等多個數(shù)字生活領(lǐng)域。本次研究旨在運(yùn)用機(jī)器學(xué)習(xí)的算法框架,挖掘用戶的使用行為數(shù)據(jù),在用戶使用和生活的搜索等場景中,為用戶推薦關(guān)聯(lián)度更高的應(yīng)用,提升用戶在和生活的使用體驗,提高產(chǎn)品的訂購或曝光轉(zhuǎn)化率。
本文運(yùn)用Embedding的方式,基于深度學(xué)習(xí)的模型框架,對數(shù)字生活平臺中用戶搜索行為數(shù)據(jù)、用戶點(diǎn)擊數(shù)據(jù)、用戶訂購數(shù)據(jù)進(jìn)行整合和建模,將搜索詞和數(shù)字生活服務(wù)商品構(gòu)建成高維特征的向量,通過建模構(gòu)建形成的向量攜帶的數(shù)字信息,反映出被向量化實體自身的特征和實體間的關(guān)系,我們可以方便地使用各種機(jī)器學(xué)習(xí)算法以及基于神經(jīng)網(wǎng)絡(luò)的算法開展數(shù)字生活服務(wù)商品的推薦。
一、模型介紹
通過對和生活用戶數(shù)據(jù)的分析和向量化模型的遷移應(yīng)用,本研究通過用戶搜索詞和實際搜索的商品間的關(guān)聯(lián)關(guān)系,訓(xùn)練輸出搜索詞和商品兩者的向量,從而計算搜索詞向量與商品向量的余弦相似度,給用戶推薦相似性高的數(shù)字生活商品。針對和生活的搜索場景,本文提出一種word&lifeproduct2vec模型,能夠把搜索詞和數(shù)字生活商品向量化,然后依據(jù)搜索詞和商品的相似度排序搜索結(jié)果,使得搜索結(jié)果更合理word& lifeproduct 2vec的模型結(jié)構(gòu)和上下文只有一個詞的CBOW模型(圖1)類似。
用戶登錄后搜索lifeproduct的場景,某個用戶輸入一個搜索詞w1,和生活平臺會展示一列相關(guān)的數(shù)字生活內(nèi)容,然后用戶從系列的展示結(jié)果中選擇使用或購買了a1這個商品。這就在搜索詞w1和a1之間建立了一個聯(lián)系,說明a1可能是用戶搜w1這個詞想要找的商品,即w1與a1存在著關(guān)系。用戶的每一次搜索后使用,就為我們提供了這樣的一對對word與lifeproduct關(guān)系的樣本。如果要把word和lifeproduct都embedding,那我們可以定義與圖1類似的結(jié)構(gòu)。把word作為輸入,lifeproduct作為輸出。模型的邏輯是:給定搜索詞,預(yù)測要使用的lifeproduct。
我們運(yùn)用用戶的搜索日志和數(shù)字生活商品使用、訂購日志,構(gòu)造一個U×N矩陣W,和一個N×V矩陣W,其中U是不同的搜索詞的數(shù)量,V是不同的lifeproduct數(shù)量。W與W是兩個完全不同的矩陣。W的第i行記作,表示搜索詞wi的向量。W的第j列記作,表示數(shù)字生活商品aj的向量。模型的輸入x是搜索詞的one-hot編碼。隱藏層計算如下
(1)
可以看出h就是W矩陣中的第k行向量做了轉(zhuǎn)置,wk是搜索詞。然后給lifeproduct列表中的每個lifeproduct計算一個分?jǐn)?shù):
(2)
然后就可以通過softmax歸一化成概率分布了:
(3)
和一般的神經(jīng)網(wǎng)絡(luò)一樣,用反向傳播去更新模型中的參數(shù)。給定搜索詞wI,真實的中心詞是aj*,訓(xùn)練的目標(biāo)是最大化通過式(3)計算得到的aj*的條件概率,令目標(biāo)函數(shù)為:
使用梯度下降法,把目標(biāo)函數(shù)的參數(shù)求導(dǎo)。
(4)
其中當(dāng)j=j*時tj=1,即當(dāng)?shù)趈個lifeproduct是真實下載的應(yīng)用時,tj為1,其余情況tj為0。ej可以理解為第j個lifeproduct的預(yù)測誤差,即模型計算出的第j個lifeproduct為使用的lifeproduct的概率與它的實際概率的差。
接下來對求導(dǎo),由:
根據(jù)鏈?zhǔn)椒▌t,得:
(5)
得到輸出層的參數(shù)更新公式:
(6)
其中η是學(xué)習(xí)率,上式可改寫為:
(7)
觀察式(7),因為ej=yj-tj,當(dāng)yj>tj,更新參數(shù)時,就會減去向量h(也就是)的一部分,這樣會讓和的點(diǎn)積變小,即讓遠(yuǎn)離;當(dāng)yj 每次迭代,相關(guān)的搜索詞和數(shù)字生活商品向量會相互加上對方,而不為相關(guān)的搜索詞和數(shù)字生活商品的向量會相互減去對方。模型會讓互為相關(guān)的搜索詞與商品的內(nèi)積越來越大,而不相關(guān)的搜索詞和商品的向量內(nèi)積越來越小。 模型訓(xùn)練完,每個word和lifeproduct都會得到一個能夠反映它們之間隱含關(guān)系的向量表示。相關(guān)的word和lifeproduct會有更接近的向量表示,而不相關(guān)的則會有截然不同的向量表示。這種接近和遠(yuǎn)離的關(guān)系會通過搜索詞與下載應(yīng)用的聯(lián)系傳遞開。 圖2所示是一些搜索詞和數(shù)字生活商品的關(guān)系,綠色線連接的搜索詞和商品表示搜索前者后下載了后者,而沒有綠色線連接表示搜索前者后沒有下載后者。把綠色的線想象成一根有拉力的繩子,在訓(xùn)練的過程中,路徑連通的部分會靠攏到一起。最終,綠色的節(jié)點(diǎn)兩兩之間的向量都會更接近,黃色的節(jié)點(diǎn)兩兩之間的向量都會更接近。黃色的部分和綠色的部分沒有路徑連通,這兩部分會相互遠(yuǎn)離,黃色節(jié)點(diǎn)和綠色節(jié)點(diǎn)的向量會截然不同。 二、模型訓(xùn)練 在實際生產(chǎn)中, lifeproduct的數(shù)量V都會比較大,在計算式(3)時,需要對數(shù)以萬計的lifeproduct都計算一個分值,而且在每次迭代都需要更新W矩陣的數(shù)以萬計的行,這個計算量是很大的。為了加速訓(xùn)練過程,一般會使用負(fù)采樣。即在每次更新中,不去更新每個lifeproduct的向量,而只更新其中一部分。 目標(biāo)函數(shù)如下: (8) 其中wneg={aj|j=1,2,…,K}是抽樣得到的負(fù)樣本集合,aO是真實的數(shù)字生活商品,σ是sigmoid函數(shù)。只需要使用梯度下降法去最小化這個目標(biāo)函數(shù)即可。
使用負(fù)采樣后,模型訓(xùn)練的計算量變小了。但每次訓(xùn)練,只有wneg中的負(fù)樣本的向量才會與搜索詞的向量遠(yuǎn)離。
三、模型的應(yīng)用
通過以上模型,運(yùn)用用戶的搜索和使用、訂購行為數(shù)據(jù)后,可以計算出搜索詞和商品的向量,將模型應(yīng)用到以下兩種推薦場景中:
一種是在用戶搜索結(jié)果欄目中,當(dāng)用戶輸入搜索詞w時,計算每個商品a與w的相似度,篩選出相似度最高的top n個商品展示給用戶。這里的相似度有多種度量方式,可以根據(jù)具體效果而定,這里采用內(nèi)積作為搜索詞和商品的相似度度量,因為word& lifeproduct 2vec模型中,訓(xùn)練的目標(biāo)是讓搜索詞與相關(guān)商品的向量內(nèi)積最大化。相似度定義如下:
(9)
另一種是在用戶下載后推薦的欄目中,當(dāng)用戶使用了某商品ai,則尋找與ai相似的top n個商品展示給用戶。這里的相似度使用余弦相似度做度量。
(10)
結(jié)合和生活業(yè)務(wù)數(shù)據(jù),采用本文模型進(jìn)行訓(xùn)練,輸出的APP向量、搜索詞向量以及實體間的關(guān)聯(lián)關(guān)系度量值如下:
1.構(gòu)建了1萬款應(yīng)用的250維度的商品向量庫,包含主要頭部商品和長尾商品。例如圖3。
2.通過商品向量和詞向量,計算出相互之間的關(guān)聯(lián)度數(shù)據(jù),部分關(guān)聯(lián)度如下:
與美團(tuán)關(guān)聯(lián)的商品和相互之間的關(guān)聯(lián)度數(shù)值
{
(餓了么 ? ?掌上生活 ? ?大眾點(diǎn)評 ? ?口碑 ? ?盒馬 ? ?京東到家 ? ?本來生活 ? ?滴滴出行 ? ?12306 ? ?家常菜),
(0.6778 ? ?0.5542 ? ?0.4036 ? ?0.3705 ? ?0.3611 ? ?0.3463 ? ?0.3328 ? ?0.3286 ? ?0.3275 ? ?0.3214)
}
四、結(jié)束語
本文通過挖掘數(shù)字生活服務(wù)中用戶的搜索、點(diǎn)擊行為和訂購行為數(shù)據(jù),通過機(jī)器學(xué)習(xí)的模型訓(xùn)練大規(guī)模用戶行為數(shù)據(jù),構(gòu)建lifeproduct向量和搜索詞向量庫,向量中包含了兩種實體間的特征信息和關(guān)系信息,從而在數(shù)字生活服務(wù)的業(yè)務(wù)場景中為用戶提供搜索和推薦的精準(zhǔn)內(nèi)容。