章 振 增
(上海大學 上海 210000)
?
基于時間序列模型商品搜索排序
章 振 增
(上海大學 上海 210000)
電商商品搜索引擎目前大多都是基于用戶瀏覽行為與購買行為來建立搜索因子,通過這些因子計算出商品分地區的排序分值進行排序。然而這些行為數據都是屬于歷史數據。搜索的結果都是基于歷史數據的分值計算沒有前瞻性。特別對于換季商品使用該方式計算出來的搜索結果不佳,轉化率不高。提出一種基于時間序列的分析方法,對部分的搜索因子采用預測數據來計算分值,以滿足商品搜索中某些具有周期性季節性商品的合適排序。
商品搜索排序 時間序列分析
電商行業網站中搜索操作代表了用戶較為明確的購買意圖,搜索引導帶來的成交量在一個電商平臺中始終具有舉足輕重的地位。搜索是用戶的主要商品入口,電商網站80%的流量貢獻都是來源于此,因此提高搜索轉化率尤其重要。搜索引擎中召回率與查準率是檢索系統中性能最重要的衡量參數,而電商領域還有一個非常重要的參數,就是轉化率。轉化率這個評價指標的好壞對搜索而言主要是依賴于商品的排序,也就是說排序的最終目標要把用戶的需要商品優先往前排。一般用戶在商品搜索結果頁瀏覽上不會超過3頁,因此排序要解決的問題是把質量優秀且符合用戶需求的商品盡量集中到這前3頁結果頁面中,讓用戶在第一時間就可以看到所需商品從而提高搜索的轉化率和用戶體驗。
電商搜索引擎中由于大部分電商搜索規則都是基于歷史數據直接計算商品的權值實現,如點擊、購買、收藏、評論數據等用戶歷史行為來計算商品的綜合分數。一般情況下這些分值算出來的排序都是優良有效的,但是如果在節日與季節切換時間點上,這些排序算法就會出現排序滯后問題。換季的時候往往用戶搜索時還有大量過季商品排在前面。由于這些算法的排序數據是基于用戶歷史行為,排序結果反應的是用戶的歷史需求而不是用戶的當前需求,排序結果不具有前瞻性。
本文將對上面所述問題提出一種基于時間序列分析[1]結合DTW動態時間規整[2]的方法對商品的分數進行預測,以實現商品的排序結果滿足用戶的搜索需求。
時間序列分析是一種動態數據處理的統計方法,通過歷史數據的變化的規律建立模型分析預測變量值。時間序列是按時間順序的一組數字序列。時間序列分析就是利用這組數列,應用數理統計方法加以處理,以預測未來事物的發展。[1]時間序列預測分析的方法主要有:簡單序時平均數法、加權序時平均數法、移動平均法、加權移動平均法、趨勢預測法、指數平滑法、季節性趨勢預測法、市場壽命周期預測法、ARMA[8]等。
由于商品數據分析中數據量龐大,采用的算法需要簡單高效,因此采用一次指數平滑法可以保證高效的計算分析。一次指數平滑法是指以最后的一個第一次指數平滑。它根據前期的實測數和預測數,以加權因子為權數,進行加權平均,來預測未來時間趨勢的方法,具體公式如下[4]:
Ft+1=αYt+(1-α)Ft
(1)
式中,Ft+1為t+1期的指數平滑趨勢預測值;Ft為t期的指數平滑趨勢預測值;Yt為t期實際觀察值;α為權重系數。
可以對式(1)進行整理成如下通用公式形式:
Ft+1=αYt+(1-α)αYt-1+…+(1-α)nαYt-
α+…+(1-α)tF1
(2)
對于式(2),由于數據項的值并不是很大,因此在第四項以后值已經很小對預測影響不大。為了使程序計算更簡單更快速,本文采用前4項的值來預測,所以預測公式可以簡化如下:
Ft+1=αYt+α(1-α)Yt-1+α(1-α)(1-α)Yt-
2+(1-α)(1-α)(1-α)Ft-3
(3)
對于式(3)最后一項Ft-3是屬于預測值,這里使用加權移動平均來進行估值作為預測值[7]。假設第n期的點權值為n,n-1點的權值為n-1,如此類推,一直到0,預測值公式如下:
(4)
因為目前只使用前四項的數據,所以最終可以轉換成如下公式:
(5)
結合式(3)和式(5)對商品因子進行Ft+1期數據預測。
上述公式中權重系數α還未確定,根據圖1、圖2所示,商品銷量因子有明顯的季節性變動趨勢,對α在0.6~0.9區間取5個點,進行實算對比[4]。這里取玉米油上海地區銷量數據,用實際值與預測值的方差s2來衡量。通過取較小s2的α值作為合適值。當α=0.6時,s2值39;當α=0.65時,s2值43;當α=0.7時,s2值45;當α=0.75時,s2值42;當α=0.8時,s2值49;在排序中為了照顧近期熱賣品因此指數平滑中的權重系數α取值為0.65。

圖1 食用油

圖2 春秋被
1.1 商品預測分數因子計算
商品因子數據預測如果僅僅使用當前時間的數據預測具有一定的滯后性,而且對于換季商品預測不夠準確。為了提高預測準確性,在預測時間窗口上不能僅僅限于橫向維度還需要增加一個預測因子使用歷史每年當期該時間Ty(t+1)內的數據來進行縱向預測,最后對兩個因子的計算結果加權平均。
具體算法描述如下:
1) 時間序列窗口大小設為7天,使用當前28天內的數據對未來7天Ft+1的數據進行預測,使用式(3)和式(5)可以得到Ft+1期數據。
2) 對Ft+1期數據進行歸一化處理獲得分數值St+1。
3) 時間序列窗口大小設為7天,使用每年同期的數據取4年的數據點,再對當前未來7天數據Fy(t+1)的數據進行預測。
4) 對Fy(t+1)數據進行歸一化處理獲得分數值Sy(t+1)。
5) 對不同維度預測分值加權平均作為最后的預測值S=λSt+1+(1-λ)Sy(t+1)。

1.2 商品分數算法
如圖1、圖2所示,如果僅僅對單個SKU[10]來預測,由于商品上下架頻繁導致數據稀疏波動較大預測效果不佳。另外對于新品上架時間過短而導致數據缺少往往無法進行有效的預測。對此,商品的最終預測分數值文中采用分類預測與商品預測兩個維度分別進行預測,然后進行加權平均作為預測分數值。
具體算法描述如下:
1) 商品所處的最后一級分類進行銷量等因子進行預測分數計算,得到的每個葉子節點分類值為ScoreC。
2) 對單個的SKU分別進行分值預測計算ScoreSKU。
3) 把分類預測值和SKU預測值加權平均作為該SKU的分值Ssku=λScoreC+(1-λ)ScoreSKU。
對于大部分的數據,上述預測方法可以有效地進行數據預測,但是商品預測中還有其他一些重要的影響因子,如農歷節日尤其是春節、端午、中秋這些節日對特定種類商品搜索因子影響巨大。每一年的農歷節日在陽歷時間上都是上下浮動的,為了修正在節日點對預測數據的影響這里引進DTW算法[2]來對商品因節日效應導致預測偏差太大的問題進行處理。
DTW[2]是一種衡量兩個時間序列之間的相似度的方法,主要應用在語音識別領域來識別兩段語音是否表示同一個單詞。DTW通過把時間序列進行延伸和縮短,來計算兩個時間序列性之間的相似性。
如圖3所示,上下兩條實線代表兩個時間序列,時間序列之間的虛線代表兩個時間序列之間的相似的點。DTW使用所有這些相似點之間的距離的和,稱之為歸整路徑距離來衡量兩個時間序列之間的相似性。

圖3 動態時間規整[2]
這里借鑒DTW其對時間序列匹配特性來實現對時間序列中的時間重對齊。
假設我們有兩個時間序列P和C,基于每年的農歷節日對應的陽歷時間差不會超過30天,需要對齊的時間點為i有如下式子:
P=pi-30,pi-29,…,pi,…,pi+30C=ci-30,ci-29,…,ci
(6)
時間序列P和C,DTW實現修正在節日點預測數據不準確的算法描述如下:
1) 使用DTW算法尋找ci在序列P上的對齊點pk,Ft+1對應的時間點數據為Fp(k)。
2) 使用對齊后的數據點利用上述的時間序列預測算法進行數據預測。
DTW動態時間規整算法描述如下:
兩個序列對齊點的規整路徑W[9]:
W=w1,w2,…,wkmax(|P|,|C|)≤K<|P|+|C|
(7)
規整路徑W的距離[9]:
(8)
Dist(W)采用歐式距離來獲取,即:
Dist(W)=(pi-ci)2
(9)
最終需要的是尋找一條通過此網格中即兩個序列對齊點的最短規整路徑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)是所有可能路徑中的最短路徑。
兩個時間序列之間的歸整路徑距離如圖4所示。

圖4 兩個時間序列之間的歸整路徑距離[9]
最短路徑D(i,j)尋找算法描述:
1) 構造一個61×30的矩陣網格,矩陣元素(i,j)表示pi和cj兩個序列上點的距離Dist(Wij)。
2) 從一個方格((i-1,j-1)或者(i-1,j)或者(i,j-1)中到下一個方格(i,j),橫向與縱向距離為Dist(Wij),如果是斜著對角線距離則是2Dist(Wij),具體公式如下:
(11)
默認D(0,0)=0,D(i,j)表示2個模板都從起始分量逐次匹配,并且都是在前一次匹配的結果上加Dist(Wij)或者2Dist(Wij),然后取最小值。
3) 起始點設為(61,30)通過回溯找到最短距離的路徑,路徑上的點即為最終時間序列P、C的對齊點,這樣就可以找到時間序列ci對齊的點。
通過DTW算法可以找到當期與往年農歷節日的同期效應點,但是由于它需要計算到每一個點,因此它對噪聲比較敏感。而且該算法要求對齊的數據在節日點的數據波形有明顯特征變化才可以有效的對齊。因此該算法只是對時間序列上特殊點和特殊類目的縱向預測上的必要修正,并不是在時間序列預測的任何時間點的任何數據上都是需要的。
3.1 季節預測數據對比分析
這里對9月份上海地區羽絨服與T恤分類的銷量數據因子進行對比實驗如表1所示。

表1 季節預測實驗結果對比
從表1可以看出,使用時間序列后的預測值數據對未來的趨勢變化能進行有效的評估。這樣使用下期預測值作為搜索排序的因子數據進行計算就可以對商品在季節交替中按趨勢對商品排序權重調整,實現商品搜索顯示位置的按季節趨勢調整變化。
3.2 節日對齊實驗分析
農歷節日點引起的銷量等數據波峰變化一般都不是在節日當天,因此這里Pi取值點為2015年6月8日,Ci取值點為2016年6月8日,然后對月餅分類數據進行節日對齊實驗結果如表2所示。

表2 節日對齊實驗結果對比
從表2可以看出,使用了DTW對齊后在節日點的預測結果上更為可靠有效。
3.3 搜索結果對比分析
對于搜索結果的優劣常見的評價方法有召回率和準確率,召回率不是本文的研究內容,準確率會影響實驗結果但是也無法準確地衡量排序算法的優劣。因此這里我們對搜索結果分析采用轉化率,轉化率評價指標的意義表示用戶需要通過幾次搜索才能找到需要的商品,搜索次數越少表示該排序越有效,因而這是電商領域比較關注的一項指標。
具體公式如下:
(12)
(13)

通過式(12)和式(13)可以得到搜索轉化率,實驗對比分析結果如表3所示。

表3 搜索結果對比
從表3中可以看出,使用了預測算法后搜索轉化率效果明顯增加有0.7%的增長率,說明該算法是有效符合用戶搜索需求的。
本文主要針對電商搜索中因季節切換中排序滯后的問題以及搜索排序中轉化率低下問題進行研究分析。提出了基于時間序列預測分析結合DTW進行時間重對齊修正的方法,對排序因子進行預測計算分值,以實現對商品的排序是基于未來的預測排序。實驗證明該方法是有效的,可以一定程度提高搜索的轉化率。當然商品排序是個復雜的系統,這些只是商品排序的眾多考慮因子中的一個重要分數影響因子。最終的排序結果還需要根據Zipf 分布[5],商品搜索結果在靠近每頁搜索結果頁底部的位置的奇異點點擊規律[6],以及一些實際的特殊需求如打散等需要還需對搜索結果進行最后綜合的ReRank排序操作。
本文提出的算法雖然一定程度提升了轉化率,但是從表3中可以看出轉化率還是非常低的。轉化率低下雖然不只是單一受排序影響還有其他眾多因素,但是目前來看搜索排序對于轉化率的提升仍然存在著很大的優化空間,未來還需要對排序做進一步研究。
[1] 百度百科.時間序列分析[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最佳彎曲窗口學習方法[J].計算機科學,2012,39(8):191-195.
[4] Mbalib.一次指數平滑法[EB/OL].[2016-07-10].http://wiki.mbalib.com/wiki/一次指數平滑法.
[5] Wikipedia.Autoregressive-moving-average model[EB/OL].[2016-07-15].https://en.wikipedia.org/wiki/Autoregressive%E2%80%93moving-average_model.
[6] 王祥志.商品搜索中的點擊分析與預測[D].上海交通大學,2007.
[7] Wikipedia.移動平均[EB/OL].[2016-07-10].https://zh.wikipedia.org/wiki/移動平均.
[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。章振增,碩士,主研領域:人工智能。
TP391
A
10.3969/j.issn.1000-386x.2017.07.052