基于動態混合高斯模型的商品價格模型算法
來自: http://yq.aliyun.com/articles/3216
1. 背景
作為電子商務網站,淘寶網上的每個商品都有一個價格,該價格從一個很重要的維度上反應出一個商品的品質。但是由于該價格是由第三方賣家自己確定的,因此存在一定的隨機性。一個價格過低的商品,其假貨的可能性往往較大,比如500元的勞力士手表,或者商品的質量存在問題;同時一個價格過高的商品,可能會失去一個潛在的購買者,也可能會是賣家故意設置高價,以便用戶按價格排序時展現在靠前的位置。
因此對一個商品當前價格的合理性進行判斷,并根據該商品的屬性給出其合理的價格區間,對于規范淘寶網的商品運營以及搜索結果展現方面都具有重要的作用。
2. 應用場景
本算法目前主要用于三個場景:
- 在搜索排序中,對于商品價格合理性極低的商品進行降權;
- 商品假貨識別中,針對超低價商品判斷其是否為假貨;
- 商品品質項目中,根據商品的價格合理性作為商品品質分析的一個維度,從劣質、性價比等方面刻畫一個商品的品質。
3. 技術方案
3.1 概述
本算法提出三個優化點來判斷一個商品的價格合理性并給出一個合理的價格區間:
- 根據商品的屬性對商品進行同款聚合,以同款商品為單位,對同款中商品的價格合理性進行判斷;
- 使用近30天商品的成交價,同時以天貓、KA賣家等可信商家的商品價格作為訓練數據;
- 基于訓練樣本動態地選擇單高斯模型或雙高斯模型,同時解決奇異值與過擬合問題,以提高準確率。
整體流程圖如下所示:
3.2 詳細流程
3.2.1. 獲得同款數據
第一步是獲取商品的同款信息,只有基于同款的情況下,才能利用大數據對商品的合理價格進行預測。目前使用到的同款數據主要有以下三個:
- 部分標類商品有spuid節點,spuid相同的商品為同一類
- 當前淘寶網上的找同款的數據
- 圖像團隊產出的同款數據
除此之外,我們還有基于商品重點屬性的同款聚合的通用方法,以增加對商品的覆蓋量。該方法通過設置類目下的重點屬性,自動地根據這些屬性對商品進行聚合成同款進行后續的計算。
3.2.2 訓練樣本集獲取
獲取了同款數據之后,需要從里面找到價格有問題的樣本,首先需要獲取其中可信任的樣本,當前從三個維度獲取可信樣本:
- 以商品成交價作為訓練樣本,因此需要以同款為粒度獲取該同款下過去30天內成交的商品的成交價,同時為了保證成交價的合理性,需要去掉其中識別出來的炒信、作弊等銷量
- 取同款中天貓賣家的商品價格作為訓練樣本
- 取同款中KA賣家的商品價格作為訓練樣本
3.2.3 基于動態高斯模型的商品價格模型
在獲取了同款下商品的訓練樣本之后,使用高斯模型獲得其分布的均值、方差等信息。在本方法中對傳統的高斯模型進行了兩處優化:
- 根據樣本分布情況去除奇異點;
- 根據數據樣本情況動態選擇單高斯或雙高斯模型進行訓練;
具體算法流程如下圖所示:
本算法中會首先使用雙高斯模型計算出當前訓練樣本的分布情況,同時會根據具體的樣本信息決定使用雙高斯模型還是單高斯模型。
判斷雙高斯是否合適的方法:
判斷是否使用單高斯模型的邏輯有兩個
- 判斷兩個高斯模型的均值是否較為接近,若其比值大于某個閾值,比如均值分別為100與130的情況,則可以使用單高斯模型。同時還要判斷其均值是否過于接近,如果過于接近,則合并為單高斯之后會造成數據過擬合的情況。因此需要對它們的均值之比設置一個上限與下限;
- 同時再設置兩個高斯模型中樣本點的數量之差的限制
去除奇異點方法:
去除奇異點的目的主要是為了解決當前同款數據中本身存在的噪聲問題,讓訓練的樣本更加收斂。主要方法是在雙高斯模型情況下,若其中一個模型中的樣本量過少,而另一個模型中的樣本量很多,那么樣本量少的可以作為奇異值進行去除。比如在同一款中,大量的價格聚集在100元,只有少量的價格聚集在20元,那么20元周圍的樣本可以作為奇異值進行去除。具體的閾值等信息根據情況進行設置。
通過該方法計算出每個同款下商品價格的分布情況,在預測時,可以直接通過查表的方式找到該同款下每個商品價格的合理性概率值。
4. 效果與后續計劃
4.1 當前識別效果
當前價格模型的數據分別在 假貨識別、商品品質、超低價商品降權 中得到應用。
- 具體在假貨識別中,應用到了運動鞋類目、手表類目以及門票等類目下,目前已經通過價格的方式識別到有問題的商品X個,經過評測準確率達到98%。
- 在商品品質模型中,價格模型也應用于找到性價比更好的商品以及同款商品中價格不合理的商品,作為商品品質模型的一個特征。
4.2 后續計劃
在價格模型后續的工作中,會從以下幾個方面進行開展:
- 對當前價格模型的不斷優化
- 假貨識別中,從當前的幾個類目擴展到更多的類目進行嘗試
- 商品品質模型中,更好地利用好價格這一因素,開發出更多的模型,如商品性價比模型等
該文章來自于阿里巴巴技術協會( ATA )