章 振 增
(上海大學(xué) 上海 210000)
?
基于時(shí)間序列模型商品搜索排序
章 振 增
(上海大學(xué) 上海 210000)
電商商品搜索引擎目前大多都是基于用戶瀏覽行為與購(gòu)買行為來(lái)建立搜索因子,通過(guò)這些因子計(jì)算出商品分地區(qū)的排序分值進(jìn)行排序。然而這些行為數(shù)據(jù)都是屬于歷史數(shù)據(jù)。搜索的結(jié)果都是基于歷史數(shù)據(jù)的分值計(jì)算沒(méi)有前瞻性。特別對(duì)于換季商品使用該方式計(jì)算出來(lái)的搜索結(jié)果不佳,轉(zhuǎn)化率不高。提出一種基于時(shí)間序列的分析方法,對(duì)部分的搜索因子采用預(yù)測(cè)數(shù)據(jù)來(lái)計(jì)算分值,以滿足商品搜索中某些具有周期性季節(jié)性商品的合適排序。
商品搜索排序 時(shí)間序列分析
電商行業(yè)網(wǎng)站中搜索操作代表了用戶較為明確的購(gòu)買意圖,搜索引導(dǎo)帶來(lái)的成交量在一個(gè)電商平臺(tái)中始終具有舉足輕重的地位。搜索是用戶的主要商品入口,電商網(wǎng)站80%的流量貢獻(xiàn)都是來(lái)源于此,因此提高搜索轉(zhuǎn)化率尤其重要。搜索引擎中召回率與查準(zhǔn)率是檢索系統(tǒng)中性能最重要的衡量參數(shù),而電商領(lǐng)域還有一個(gè)非常重要的參數(shù),就是轉(zhuǎn)化率。轉(zhuǎn)化率這個(gè)評(píng)價(jià)指標(biāo)的好壞對(duì)搜索而言主要是依賴于商品的排序,也就是說(shuō)排序的最終目標(biāo)要把用戶的需要商品優(yōu)先往前排。一般用戶在商品搜索結(jié)果頁(yè)瀏覽上不會(huì)超過(guò)3頁(yè),因此排序要解決的問(wèn)題是把質(zhì)量?jī)?yōu)秀且符合用戶需求的商品盡量集中到這前3頁(yè)結(jié)果頁(yè)面中,讓用戶在第一時(shí)間就可以看到所需商品從而提高搜索的轉(zhuǎn)化率和用戶體驗(yàn)。
電商搜索引擎中由于大部分電商搜索規(guī)則都是基于歷史數(shù)據(jù)直接計(jì)算商品的權(quán)值實(shí)現(xiàn),如點(diǎn)擊、購(gòu)買、收藏、評(píng)論數(shù)據(jù)等用戶歷史行為來(lái)計(jì)算商品的綜合分?jǐn)?shù)。一般情況下這些分值算出來(lái)的排序都是優(yōu)良有效的,但是如果在節(jié)日與季節(jié)切換時(shí)間點(diǎn)上,這些排序算法就會(huì)出現(xiàn)排序滯后問(wèn)題。換季的時(shí)候往往用戶搜索時(shí)還有大量過(guò)季商品排在前面。由于這些算法的排序數(shù)據(jù)是基于用戶歷史行為,排序結(jié)果反應(yīng)的是用戶的歷史需求而不是用戶的當(dāng)前需求,排序結(jié)果不具有前瞻性。
本文將對(duì)上面所述問(wèn)題提出一種基于時(shí)間序列分析[1]結(jié)合DTW動(dòng)態(tài)時(shí)間規(guī)整[2]的方法對(duì)商品的分?jǐn)?shù)進(jìn)行預(yù)測(cè),以實(shí)現(xiàn)商品的排序結(jié)果滿足用戶的搜索需求。
時(shí)間序列分析是一種動(dòng)態(tài)數(shù)據(jù)處理的統(tǒng)計(jì)方法,通過(guò)歷史數(shù)據(jù)的變化的規(guī)律建立模型分析預(yù)測(cè)變量值。時(shí)間序列是按時(shí)間順序的一組數(shù)字序列。時(shí)間序列分析就是利用這組數(shù)列,應(yīng)用數(shù)理統(tǒng)計(jì)方法加以處理,以預(yù)測(cè)未來(lái)事物的發(fā)展。[1]時(shí)間序列預(yù)測(cè)分析的方法主要有:簡(jiǎn)單序時(shí)平均數(shù)法、加權(quán)序時(shí)平均數(shù)法、移動(dòng)平均法、加權(quán)移動(dòng)平均法、趨勢(shì)預(yù)測(cè)法、指數(shù)平滑法、季節(jié)性趨勢(shì)預(yù)測(cè)法、市場(chǎng)壽命周期預(yù)測(cè)法、ARMA[8]等。
由于商品數(shù)據(jù)分析中數(shù)據(jù)量龐大,采用的算法需要簡(jiǎn)單高效,因此采用一次指數(shù)平滑法可以保證高效的計(jì)算分析。一次指數(shù)平滑法是指以最后的一個(gè)第一次指數(shù)平滑。它根據(jù)前期的實(shí)測(cè)數(shù)和預(yù)測(cè)數(shù),以加權(quán)因子為權(quán)數(shù),進(jìn)行加權(quán)平均,來(lái)預(yù)測(cè)未來(lái)時(shí)間趨勢(shì)的方法,具體公式如下[4]:
Ft+1=αYt+(1-α)Ft
(1)
式中,F(xiàn)t+1為t+1期的指數(shù)平滑趨勢(shì)預(yù)測(cè)值;Ft為t期的指數(shù)平滑趨勢(shì)預(yù)測(cè)值;Yt為t期實(shí)際觀察值;α為權(quán)重系數(shù)。
可以對(duì)式(1)進(jìn)行整理成如下通用公式形式:
Ft+1=αYt+(1-α)αYt-1+…+(1-α)nαYt-
α+…+(1-α)tF1
(2)
對(duì)于式(2),由于數(shù)據(jù)項(xiàng)的值并不是很大,因此在第四項(xiàng)以后值已經(jīng)很小對(duì)預(yù)測(cè)影響不大。為了使程序計(jì)算更簡(jiǎn)單更快速,本文采用前4項(xiàng)的值來(lái)預(yù)測(cè),所以預(yù)測(cè)公式可以簡(jiǎn)化如下:
Ft+1=αYt+α(1-α)Yt-1+α(1-α)(1-α)Yt-
2+(1-α)(1-α)(1-α)Ft-3
(3)
對(duì)于式(3)最后一項(xiàng)Ft-3是屬于預(yù)測(cè)值,這里使用加權(quán)移動(dòng)平均來(lái)進(jìn)行估值作為預(yù)測(cè)值[7]。假設(shè)第n期的點(diǎn)權(quán)值為n,n-1點(diǎn)的權(quán)值為n-1,如此類推,一直到0,預(yù)測(cè)值公式如下:
(4)
因?yàn)槟壳爸皇褂们八捻?xiàng)的數(shù)據(jù),所以最終可以轉(zhuǎn)換成如下公式:
(5)
結(jié)合式(3)和式(5)對(duì)商品因子進(jìn)行Ft+1期數(shù)據(jù)預(yù)測(cè)。
上述公式中權(quán)重系數(shù)α還未確定,根據(jù)圖1、圖2所示,商品銷量因子有明顯的季節(jié)性變動(dòng)趨勢(shì),對(duì)α在0.6~0.9區(qū)間取5個(gè)點(diǎn),進(jìn)行實(shí)算對(duì)比[4]。這里取玉米油上海地區(qū)銷量數(shù)據(jù),用實(shí)際值與預(yù)測(cè)值的方差s2來(lái)衡量。通過(guò)取較小s2的α值作為合適值。當(dāng)α=0.6時(shí),s2值39;當(dāng)α=0.65時(shí),s2值43;當(dāng)α=0.7時(shí),s2值45;當(dāng)α=0.75時(shí),s2值42;當(dāng)α=0.8時(shí),s2值49;在排序中為了照顧近期熱賣品因此指數(shù)平滑中的權(quán)重系數(shù)α取值為0.65。
圖1 食用油
圖2 春秋被
1.1 商品預(yù)測(cè)分?jǐn)?shù)因子計(jì)算
商品因子數(shù)據(jù)預(yù)測(cè)如果僅僅使用當(dāng)前時(shí)間的數(shù)據(jù)預(yù)測(cè)具有一定的滯后性,而且對(duì)于換季商品預(yù)測(cè)不夠準(zhǔn)確。為了提高預(yù)測(cè)準(zhǔn)確性,在預(yù)測(cè)時(shí)間窗口上不能僅僅限于橫向維度還需要增加一個(gè)預(yù)測(cè)因子使用歷史每年當(dāng)期該時(shí)間Ty(t+1)內(nèi)的數(shù)據(jù)來(lái)進(jìn)行縱向預(yù)測(cè),最后對(duì)兩個(gè)因子的計(jì)算結(jié)果加權(quán)平均。
具體算法描述如下:
1) 時(shí)間序列窗口大小設(shè)為7天,使用當(dāng)前28天內(nèi)的數(shù)據(jù)對(duì)未來(lái)7天Ft+1的數(shù)據(jù)進(jìn)行預(yù)測(cè),使用式(3)和式(5)可以得到Ft+1期數(shù)據(jù)。
2) 對(duì)Ft+1期數(shù)據(jù)進(jìn)行歸一化處理獲得分?jǐn)?shù)值St+1。
3) 時(shí)間序列窗口大小設(shè)為7天,使用每年同期的數(shù)據(jù)取4年的數(shù)據(jù)點(diǎn),再對(duì)當(dāng)前未來(lái)7天數(shù)據(jù)Fy(t+1)的數(shù)據(jù)進(jìn)行預(yù)測(cè)。
4) 對(duì)Fy(t+1)數(shù)據(jù)進(jìn)行歸一化處理獲得分?jǐn)?shù)值Sy(t+1)。
5) 對(duì)不同維度預(yù)測(cè)分值加權(quán)平均作為最后的預(yù)測(cè)值S=λSt+1+(1-λ)Sy(t+1)。
1.2 商品分?jǐn)?shù)算法
如圖1、圖2所示,如果僅僅對(duì)單個(gè)SKU[10]來(lái)預(yù)測(cè),由于商品上下架頻繁導(dǎo)致數(shù)據(jù)稀疏波動(dòng)較大預(yù)測(cè)效果不佳。另外對(duì)于新品上架時(shí)間過(guò)短而導(dǎo)致數(shù)據(jù)缺少往往無(wú)法進(jìn)行有效的預(yù)測(cè)。對(duì)此,商品的最終預(yù)測(cè)分?jǐn)?shù)值文中采用分類預(yù)測(cè)與商品預(yù)測(cè)兩個(gè)維度分別進(jìn)行預(yù)測(cè),然后進(jìn)行加權(quán)平均作為預(yù)測(cè)分?jǐn)?shù)值。
具體算法描述如下:
1) 商品所處的最后一級(jí)分類進(jìn)行銷量等因子進(jìn)行預(yù)測(cè)分?jǐn)?shù)計(jì)算,得到的每個(gè)葉子節(jié)點(diǎn)分類值為ScoreC。
2) 對(duì)單個(gè)的SKU分別進(jìn)行分值預(yù)測(cè)計(jì)算ScoreSKU。
3) 把分類預(yù)測(cè)值和SKU預(yù)測(cè)值加權(quán)平均作為該SKU的分值Ssku=λScoreC+(1-λ)ScoreSKU。
對(duì)于大部分的數(shù)據(jù),上述預(yù)測(cè)方法可以有效地進(jìn)行數(shù)據(jù)預(yù)測(cè),但是商品預(yù)測(cè)中還有其他一些重要的影響因子,如農(nóng)歷節(jié)日尤其是春節(jié)、端午、中秋這些節(jié)日對(duì)特定種類商品搜索因子影響巨大。每一年的農(nóng)歷節(jié)日在陽(yáng)歷時(shí)間上都是上下浮動(dòng)的,為了修正在節(jié)日點(diǎn)對(duì)預(yù)測(cè)數(shù)據(jù)的影響這里引進(jìn)DTW算法[2]來(lái)對(duì)商品因節(jié)日效應(yīng)導(dǎo)致預(yù)測(cè)偏差太大的問(wèn)題進(jìn)行處理。
DTW[2]是一種衡量?jī)蓚€(gè)時(shí)間序列之間的相似度的方法,主要應(yīng)用在語(yǔ)音識(shí)別領(lǐng)域來(lái)識(shí)別兩段語(yǔ)音是否表示同一個(gè)單詞。DTW通過(guò)把時(shí)間序列進(jìn)行延伸和縮短,來(lái)計(jì)算兩個(gè)時(shí)間序列性之間的相似性。
如圖3所示,上下兩條實(shí)線代表兩個(gè)時(shí)間序列,時(shí)間序列之間的虛線代表兩個(gè)時(shí)間序列之間的相似的點(diǎn)。DTW使用所有這些相似點(diǎn)之間的距離的和,稱之為歸整路徑距離來(lái)衡量?jī)蓚€(gè)時(shí)間序列之間的相似性。
圖3 動(dòng)態(tài)時(shí)間規(guī)整[2]
這里借鑒DTW其對(duì)時(shí)間序列匹配特性來(lái)實(shí)現(xiàn)對(duì)時(shí)間序列中的時(shí)間重對(duì)齊。
假設(shè)我們有兩個(gè)時(shí)間序列P和C,基于每年的農(nóng)歷節(jié)日對(duì)應(yīng)的陽(yáng)歷時(shí)間差不會(huì)超過(guò)30天,需要對(duì)齊的時(shí)間點(diǎn)為i有如下式子:
P=pi-30,pi-29,…,pi,…,pi+30C=ci-30,ci-29,…,ci
(6)
時(shí)間序列P和C,DTW實(shí)現(xiàn)修正在節(jié)日點(diǎn)預(yù)測(cè)數(shù)據(jù)不準(zhǔn)確的算法描述如下:
1) 使用DTW算法尋找ci在序列P上的對(duì)齊點(diǎn)pk,F(xiàn)t+1對(duì)應(yīng)的時(shí)間點(diǎn)數(shù)據(jù)為Fp(k)。
2) 使用對(duì)齊后的數(shù)據(jù)點(diǎn)利用上述的時(shí)間序列預(yù)測(cè)算法進(jìn)行數(shù)據(jù)預(yù)測(cè)。
DTW動(dòng)態(tài)時(shí)間規(guī)整算法描述如下:
兩個(gè)序列對(duì)齊點(diǎn)的規(guī)整路徑W[9]:
W=w1,w2,…,wkmax(|P|,|C|)≤K<|P|+|C|
(7)
規(guī)整路徑W的距離[9]:
(8)
Dist(W)采用歐式距離來(lái)獲取,即:
Dist(W)=(pi-ci)2
(9)
最終需要的是尋找一條通過(guò)此網(wǎng)格中即兩個(gè)序列對(duì)齊點(diǎn)的最短規(guī)整路徑W,滿足如下公式:
D(i,j)=Dist(i,j)+min[D(i-1,j),D(i,j-1),
D(i-1,j-1)]
(10)
式中,D(i,j)是所有可能路徑中的最短路徑。
兩個(gè)時(shí)間序列之間的歸整路徑距離如圖4所示。
圖4 兩個(gè)時(shí)間序列之間的歸整路徑距離[9]
最短路徑D(i,j)尋找算法描述:
1) 構(gòu)造一個(gè)61×30的矩陣網(wǎng)格,矩陣元素(i,j)表示pi和cj兩個(gè)序列上點(diǎn)的距離Dist(Wij)。
2) 從一個(gè)方格((i-1,j-1)或者(i-1,j)或者(i,j-1)中到下一個(gè)方格(i,j),橫向與縱向距離為Dist(Wij),如果是斜著對(duì)角線距離則是2Dist(Wij),具體公式如下:
(11)
默認(rèn)D(0,0)=0,D(i,j)表示2個(gè)模板都從起始分量逐次匹配,并且都是在前一次匹配的結(jié)果上加Dist(Wij)或者2Dist(Wij),然后取最小值。
3) 起始點(diǎn)設(shè)為(61,30)通過(guò)回溯找到最短距離的路徑,路徑上的點(diǎn)即為最終時(shí)間序列P、C的對(duì)齊點(diǎn),這樣就可以找到時(shí)間序列ci對(duì)齊的點(diǎn)。
通過(guò)DTW算法可以找到當(dāng)期與往年農(nóng)歷節(jié)日的同期效應(yīng)點(diǎn),但是由于它需要計(jì)算到每一個(gè)點(diǎn),因此它對(duì)噪聲比較敏感。而且該算法要求對(duì)齊的數(shù)據(jù)在節(jié)日點(diǎn)的數(shù)據(jù)波形有明顯特征變化才可以有效的對(duì)齊。因此該算法只是對(duì)時(shí)間序列上特殊點(diǎn)和特殊類目的縱向預(yù)測(cè)上的必要修正,并不是在時(shí)間序列預(yù)測(cè)的任何時(shí)間點(diǎn)的任何數(shù)據(jù)上都是需要的。
3.1 季節(jié)預(yù)測(cè)數(shù)據(jù)對(duì)比分析
這里對(duì)9月份上海地區(qū)羽絨服與T恤分類的銷量數(shù)據(jù)因子進(jìn)行對(duì)比實(shí)驗(yàn)如表1所示。
表1 季節(jié)預(yù)測(cè)實(shí)驗(yàn)結(jié)果對(duì)比
從表1可以看出,使用時(shí)間序列后的預(yù)測(cè)值數(shù)據(jù)對(duì)未來(lái)的趨勢(shì)變化能進(jìn)行有效的評(píng)估。這樣使用下期預(yù)測(cè)值作為搜索排序的因子數(shù)據(jù)進(jìn)行計(jì)算就可以對(duì)商品在季節(jié)交替中按趨勢(shì)對(duì)商品排序權(quán)重調(diào)整,實(shí)現(xiàn)商品搜索顯示位置的按季節(jié)趨勢(shì)調(diào)整變化。
3.2 節(jié)日對(duì)齊實(shí)驗(yàn)分析
農(nóng)歷節(jié)日點(diǎn)引起的銷量等數(shù)據(jù)波峰變化一般都不是在節(jié)日當(dāng)天,因此這里Pi取值點(diǎn)為2015年6月8日,Ci取值點(diǎn)為2016年6月8日,然后對(duì)月餅分類數(shù)據(jù)進(jìn)行節(jié)日對(duì)齊實(shí)驗(yàn)結(jié)果如表2所示。
表2 節(jié)日對(duì)齊實(shí)驗(yàn)結(jié)果對(duì)比
從表2可以看出,使用了DTW對(duì)齊后在節(jié)日點(diǎn)的預(yù)測(cè)結(jié)果上更為可靠有效。
3.3 搜索結(jié)果對(duì)比分析
對(duì)于搜索結(jié)果的優(yōu)劣常見的評(píng)價(jià)方法有召回率和準(zhǔn)確率,召回率不是本文的研究?jī)?nèi)容,準(zhǔn)確率會(huì)影響實(shí)驗(yàn)結(jié)果但是也無(wú)法準(zhǔn)確地衡量排序算法的優(yōu)劣。因此這里我們對(duì)搜索結(jié)果分析采用轉(zhuǎn)化率,轉(zhuǎn)化率評(píng)價(jià)指標(biāo)的意義表示用戶需要通過(guò)幾次搜索才能找到需要的商品,搜索次數(shù)越少表示該排序越有效,因而這是電商領(lǐng)域比較關(guān)注的一項(xiàng)指標(biāo)。
具體公式如下:
(12)
(13)
通過(guò)式(12)和式(13)可以得到搜索轉(zhuǎn)化率,實(shí)驗(yàn)對(duì)比分析結(jié)果如表3所示。
表3 搜索結(jié)果對(duì)比
從表3中可以看出,使用了預(yù)測(cè)算法后搜索轉(zhuǎn)化率效果明顯增加有0.7%的增長(zhǎng)率,說(shuō)明該算法是有效符合用戶搜索需求的。
本文主要針對(duì)電商搜索中因季節(jié)切換中排序滯后的問(wèn)題以及搜索排序中轉(zhuǎn)化率低下問(wèn)題進(jìn)行研究分析。提出了基于時(shí)間序列預(yù)測(cè)分析結(jié)合DTW進(jìn)行時(shí)間重對(duì)齊修正的方法,對(duì)排序因子進(jìn)行預(yù)測(cè)計(jì)算分值,以實(shí)現(xiàn)對(duì)商品的排序是基于未來(lái)的預(yù)測(cè)排序。實(shí)驗(yàn)證明該方法是有效的,可以一定程度提高搜索的轉(zhuǎn)化率。當(dāng)然商品排序是個(gè)復(fù)雜的系統(tǒng),這些只是商品排序的眾多考慮因子中的一個(gè)重要分?jǐn)?shù)影響因子。最終的排序結(jié)果還需要根據(jù)Zipf 分布[5],商品搜索結(jié)果在靠近每頁(yè)搜索結(jié)果頁(yè)底部的位置的奇異點(diǎn)點(diǎn)擊規(guī)律[6],以及一些實(shí)際的特殊需求如打散等需要還需對(duì)搜索結(jié)果進(jìn)行最后綜合的ReRank排序操作。
本文提出的算法雖然一定程度提升了轉(zhuǎn)化率,但是從表3中可以看出轉(zhuǎn)化率還是非常低的。轉(zhuǎn)化率低下雖然不只是單一受排序影響還有其他眾多因素,但是目前來(lái)看搜索排序?qū)τ谵D(zhuǎn)化率的提升仍然存在著很大的優(yōu)化空間,未來(lái)還需要對(duì)排序做進(jìn)一步研究。
[1] 百度百科.時(shí)間序列分析[EB/OL].[2016-07-10].http://baike.baidu.com/view/479624.htm.
[2] Wikipedia.Dynamic time warping[EB/OL].[2016-07-10].https://en.wikipedia.org/wiki/Dynamic_time_warping.
[3] 陳乾,胡谷雨.一種新的DTW最佳彎曲窗口學(xué)習(xí)方法[J].計(jì)算機(jī)科學(xué),2012,39(8):191-195.
[4] Mbalib.一次指數(shù)平滑法[EB/OL].[2016-07-10].http://wiki.mbalib.com/wiki/一次指數(shù)平滑法.
[5] Wikipedia.Autoregressive-moving-average model[EB/OL].[2016-07-15].https://en.wikipedia.org/wiki/Autoregressive%E2%80%93moving-average_model.
[6] 王祥志.商品搜索中的點(diǎn)擊分析與預(yù)測(cè)[D].上海交通大學(xué),2007.
[7] Wikipedia.移動(dòng)平均[EB/OL].[2016-07-10].https://zh.wikipedia.org/wiki/移動(dòng)平均.
[8] Wikipedia.Autoregressive-moving-average model[EB/OL].[2016-07-26].https://en.wikipedia.org/wiki/Autoregressive%E2%80%93moving-average_model.
[9] Salvador S,Chan P.Toward accurate dynamic time warping in linear time and space[J].Intelligent Data Analysis,2007,11(5):561-580.
[10] 百度百科.SKU[EB/OL].[2016-07-10].http://baike.baidu.com/view/276922.htm.
SORTING OF COMMODITY SEARCH BASED ON TIME SERIES MODEL
Zhang Zhenzeng
(ShanghaiUniversity,Shanghai210000,China)
Commercial search engine which establishes search factors are mostly based on the current user browsing behavior and buying behavior, and through these factors to calculate the goods sorted by region sorting scores. However, these behavioral data belong to historical data. The search results based on the historical data of the score calculation is not forward-looking. Especially for the seasonal goods, the method of calculation of the search results are poor, the conversion rate is not high. In this paper, a method based on analysis of time series is proposed to calculate the scores of partial search factors by using prediction data, which can satisfy with the proper ordering of some periodic seasonal goods in the commodity search.
Commodity search ranking Time series analysis
2016-08-18。章振增,碩士,主研領(lǐng)域:人工智能。
TP391
A
10.3969/j.issn.1000-386x.2017.07.052