文/萬玉龍 顧峰 柏小穎 邱曉茜
本文設計了冷鏈物流智能配載推薦算法,本系統最主要的功能就是系統能夠自動給用戶推薦信息,能夠大幅減少冷鏈物流管理成本,有效增加冷鏈物流經濟績效,助力國家雙碳達峰目標任務完成。
基于用戶的協同過濾推薦就是把用戶當做一維向量,將用戶對物品的偏好作為向量的項,將一維向量的距離用來表示用戶的相似度。該推薦算法原理如表1.1所示,假設有三個用戶,1用戶愛好1物品、3物品,2用戶愛好2物品,3用戶愛好1物品和3物品以及4物品。綜上所述,在這三個用戶的偏好文檔中,用戶1和用戶3擁有相同的喜好物品1和物品3,可以判斷他們的偏好比較相似,因此我們可以推測用戶1也很有可能喜歡物品4,將其推薦給用戶1。

表1.1 基于用戶的協同過濾推薦原理
a)建立用戶模型
協同過濾算法的輸入數據通常表示為一個m*n的用戶—評價矩陣R,用戶數用m來表示,項目數用n來表示,第i用戶關于第j項目之評價數值用rij來表示。

圖1.1 評價數值的矩陣公式
b)尋找最近鄰居。通過計算目標用戶與其他用戶之間的相似度,算出與目標用戶最相似的“最近鄰居”集。即:對目標用戶i產生一個以相似度sim(i,j)遞減排列的“鄰居”集合。該過程分兩步完成,即求解用戶間相似的程度,可以執行皮爾森系數、余弦相似性以及修正的余弦相似性等等計算法。求解相似程度一般用以下三個方法:
(1)余弦相似性
每一個用戶的評分都可以看作為維項目空間上的向量,用戶沒有對項目進行評價數值,那么該用戶關于相關項目評價數值就是0。向量之間余弦的夾角能夠度量相關用戶間相似的程度。假設i向 量與向量各表示i用戶與j用戶第n相關項目的評價數值,則用戶和用戶之間的相似性sim(i,j)為:

注釋說明,兩用戶的向量模之積就是分母,兩用戶的評價數值向量之內積就是分子。
(2)相關相似性
設用戶i和用戶j共同評分過的項目集合用Iij表示,Iij=Ii∩Ij,則用戶i和用戶j之間的相似性sim(i,j)通過Pearson相關系數度量:

說明,Ri,d表示用戶i對項目d的評分,i用戶與j用戶關于相關項目打分之平均評價數值分別用來進行表示。
(3)關于余弦的相似性修正
在余弦相似性度量方法中,沒有考慮不同用戶的評分尺度問題,修正的余弦相似性度量方法通過減去用戶對項目的平均評分改善這一缺陷。假設以Iij來表示i用戶與j用戶一起評價數值后的項目之集合,Iij=Ii∩Ij,i用戶與j用戶評價數值后的項目之集合可以用來表達,那么sim(i,j)可以表示為i用戶與j用戶間相似的程度,具體表達公式如下:

其中,Ri,d表示i用戶對d項目的評價數值,i用戶與j用戶關于相關評價項目的平均評價數值各用和來進行表示。
根據大數據求解系統中全部用戶相似的程度,幫助目標的相關用戶求解出最靠近的K數量的鄰居。鄰居產生的方法和原則一般包含兩個大類,具體情況如下:
2.2 不同b值下的診斷指標 對不同b值下肺部結節良惡性的相關診斷指標進行統計,結果顯示,b值為400 s/mm2時特異度、準確度、陽性預測值、陰性預測值均為最高,而b值為400或800 s/mm2時,其敏感度均為91.28%,不同b值間敏感度相比較差異均有統計學意義(P<0.05),見表2。

圖1.2 最近鄰居的產生過程示意圖
基于物品的協同過濾原理與基于用戶的協同過濾原理基本相似,但它只需要計算物品相似度,其基本思想是通過計算物品與物品之間的相似度,對這些物品之間的相似度進行分析,挖掘出數據中與目標物品距離最近的集合,然后根據集合中的物品的評分對目標物品的評分進行預估,選擇評分最高的前N項推薦給用戶。
該推薦原理如表2.2所示,假設有三個用戶,1用戶愛好1物品和3物品,2用戶愛好1物品、2物品和3物品,3用戶愛好1物品。由于用戶1和用戶2同時喜歡物品1和物品3,可以推斷喜歡物品1的用戶可能會喜歡物品3,那么認為對于物品1,和其相似的物品是物品3,而根據3用戶愛好1物品,能夠推理出用戶3很可能喜歡物品3,所以將物品3推薦給用戶3。
其中建立用戶模型與基于用戶的協同過濾推薦算法一致,接下來主要說明最近鄰居集的形成和預測評分,已經產生推薦結果。

表2.2 協同過濾關于物品的推薦算法原理
a)形成目標用戶鄰居
實現基于物品的協同過濾推薦算法重點在于實現物品之間的相似度的計算。根據用戶—評價矩陣R,計算目標物品與其他物品之間的相似度,獲得目標物品的最近鄰居。先分離出共同評過分物品i和物品j的用戶,接著執行相似性求解。相似針對用戶的協同過濾推薦算法之中求解相似性用戶辦法,算法過程中主要涉及到上文提到的余弦相似度、皮爾森相似系數和修正的余弦相似性系數等。
b)余弦的相似程度
把兩個物品看作空間中的兩個向量,通過計算兩個向量的夾角余弦值來得到相似度。假設物品i和物品j的評分向量分別用向量i和向量j表示,則物品i和物品j之間的相似性可以用如下公式進行計算:

c)修正的余弦相似性
相比基于用戶的協同過濾,修正的預先相似性算法與其相似的方面為修正的余相似性度量方法考慮到了不同用戶的評價尺度的問題,假設i物品與j物品全被評價過數值的用戶之集合用Iij來進行表示,i物品與j物品評價過數值的用戶集可以用Ii和Ij分別進行表達,那么i物品與j物品間相似的程度可以表示為:

d)相關相似性
相似于基于用戶的協同過濾,相關相似性一般通過皮爾森相關系數進行計算,用Iij表示物品i和物品j都評過分的用戶集合,則物品i和物品j之間的相似性sim(i,j)通過Pearson相關系數度量:
其中,Ri,d表示用戶i對項目d的評分分別是指用戶關于i物品與j物品平均的評價數值。
e)推薦的產生
目標用戶對物品的評分的預測通過根據鄰居對物品的評分來計算,選擇最高的Top-N項推薦給目標用戶。考慮到評分尺度不同的問題,采用平均加權策略進行推薦,公式如下:

注釋說明,i用戶同j用戶間相似的程度用sim(i,j)來進行表示,最靠近的鄰居j用戶關于d物品評價的數值用來Ri,d進行表示,i用戶與j用戶關于物品平均的評價數值分別用Rˉi和Rˉj來進行表示。
上述兩種算法在處理大數據時會存在一定的缺陷,因為在處理海量數據時需要通過兩種方法產生推薦這樣計算量會很大,在運算上花費大量時間且效率低。而Slope One推薦算法執行效率較高,結果相對更加準確,其基本原理與基于物品的協同過濾基本相同,是一種輕量級的協同過濾推薦。Slope One推薦是通過用戶對物品的評分,需要計算物品間的差值,通過f(x)=ax+b函數得到,其中a=1,即斜率為一。Slope One算法原理如表3.3和表3.4所示。

表3.3 用戶評價分值表

表3.4 推出評價分值表
由表3.3表示所得,假設用戶1對物品1打分為3,用戶2對物品1打分為1,對物品3打分為3。系統計算出所有用戶對1物品、2物品、3物品平均評價數值分別是2、3和3。根據平均打分推理出結論:對物品2的評分=對物品1的評分+1;對物品2的評分=對物品3的評分。用戶1根據結論可以推算出對物品2,物品3的評分都是4。用戶2根據前半個結論推算對物品2的評分是2,根據后半個結論推算的評分是3,遇到這種情況時需要取兩者平均值即2.5。
該協同過濾推薦算法的系統把相似程度相對最高的三種用戶當做最近的鄰居。文章在原系統中綜合運用了皮爾森相關性求解的用戶和物品相似度,計算得出其最近的鄰居三個。
冷鏈物流智能配載推薦算法是一項繁瑣、復雜的工作。以冷鏈物流智能配載推薦算法為對象,實現冷鏈物流車源、貨源、庫源的信息智能配載推薦功能。根據冷鏈物流智能配載推薦的實際開發需求,借助開源框架Mahout,調用其中的API接口設計一個簡單的冷鏈物流推薦引擎原型系統,然后通過Myelipse、MySQL和Tomcat等開源工具實現一個Java Web系統。冷鏈物流智能配載推薦系統能夠大幅減少冷鏈物流管理成本,有效增加冷鏈物流經濟績效,助力國家雙碳達峰目標任務完成。由于團隊成員能力水平有限,本推薦算法的設計還存在一些不足,今后團隊成員將進一步研究與完善。
引用出處