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