吳文李 范小朋 周庚申 黃 羿 曹 旸 林桂嬋
1.中國(guó)長(zhǎng)城科技集團(tuán)股份有限公司,深圳,5180002.中國(guó)科學(xué)院深圳先進(jìn)技術(shù)研究院,深圳,518000
在互聯(lián)網(wǎng)上,一個(gè)新產(chǎn)品從概念到成品的過程中,必然從周邊獲取大量的信息以支撐其具體的設(shè)計(jì),而且獲取信息的耗時(shí)越短就越有機(jī)會(huì)跑贏市場(chǎng)、獲得商機(jī)。這一原則在工業(yè)制造領(lǐng)域內(nèi)仍然成立。有研究表明,制造系統(tǒng)內(nèi)部物品檢索所花費(fèi)的時(shí)長(zhǎng)占據(jù)產(chǎn)品設(shè)計(jì)周期的一半[1],但在現(xiàn)有條件下,產(chǎn)品研發(fā)廠商都不得不忍受這一過程。同時(shí),隨著工業(yè)4.0的推進(jìn),系統(tǒng)集成度越來越高,數(shù)據(jù)呈現(xiàn)出爆炸性增長(zhǎng),物品信息檢索耗時(shí)過長(zhǎng)與盡可能縮短產(chǎn)品設(shè)計(jì)時(shí)長(zhǎng)之間的矛盾更加突出。由此,面向制造業(yè)物品檢索的推薦系統(tǒng)[1-4]應(yīng)運(yùn)而生。
目前,大部分產(chǎn)品在設(shè)計(jì)階段使用的信息系統(tǒng)內(nèi)部用于定義知識(shí)主題(分類)的基礎(chǔ)均來源于物料清單(bill of materials,BOM)[1]。基于此,推薦系統(tǒng)的實(shí)現(xiàn)方式包含四類:基于協(xié)同過濾推薦[2,5],基于內(nèi)容推薦[6],基于知識(shí)推薦[3-4],基于組合推薦[1]?;趨f(xié)同過濾推薦假設(shè)如果用戶行為相似,那么他們興趣也相仿。在推薦過程中,用戶個(gè)人興趣扮演著最重要的角色,這與“物品為主,人員為輔”的生產(chǎn)系統(tǒng)存在一定的沖突,僅僅考慮用戶行為容易忽略物品本身所包含的關(guān)聯(lián)信息,同時(shí),它無(wú)法解決冷啟動(dòng)[7-9]問題?;趦?nèi)容推薦的系統(tǒng)僅僅衡量物品與物品之間的相似度,割裂了物品與用戶之間的關(guān)聯(lián)?;谥R(shí)推薦的方法從理論上更偏智能化。文獻(xiàn)[3-4]利用本體知識(shí)完成了舊產(chǎn)品到新產(chǎn)品的推演。但是,本體集對(duì)于整個(gè)制造行業(yè)來說是個(gè)很大的數(shù)據(jù)集,需要經(jīng)過大量專家共同構(gòu)建,而目前制造行業(yè)中大量的定制化需求致使其品種繁多,難以形成通用的本體集。因此,組合推薦經(jīng)常作為一種取長(zhǎng)補(bǔ)短的折中方案。然而,現(xiàn)有組合推薦模型[1]僅以公式的形式描繪了推薦的關(guān)鍵步驟,并非從實(shí)踐系統(tǒng)的角度出發(fā),在不考慮推薦項(xiàng)具體形態(tài)的情況下還忽略了推薦系統(tǒng)冷啟動(dòng)等問題,不能直接應(yīng)用于工業(yè)信息系統(tǒng)。
針對(duì)此,本文遵循以物品為主、用戶為輔的原則,考慮推薦物品具體形態(tài)(生產(chǎn)制造基礎(chǔ)信息BOM),在提出“物品-用戶”組合推薦模型的基礎(chǔ)上,以系統(tǒng)套件的方式實(shí)現(xiàn)了包括零部件、半成品、產(chǎn)品等多個(gè)維度的推薦系統(tǒng)。
(1)零部件tm。零部件是生產(chǎn)所需的原材料,是構(gòu)成任意產(chǎn)品的最小單元,通常由工廠購(gòu)買而來。
(2)半成品th。半成品由n個(gè)零部件和m個(gè)半成品組成(某一半成品可由多個(gè)半成品組成)(n>0,m≥0,且n、m為自然數(shù)),由工廠通過購(gòu)買或生產(chǎn)而來,但不是賣給客戶的產(chǎn)品。
(3)成品tp。成品是由工廠生產(chǎn)且賣給客戶的最終產(chǎn)品,與th類似,是一個(gè)包含n個(gè)tm和m個(gè)th元素的集合。
(4)BOM。BOM是生產(chǎn)所使用的物料清單,其中,每個(gè)BOM對(duì)應(yīng)一個(gè)tp或th。BOM的每一行表示一個(gè)物料,即th或tm。當(dāng)th對(duì)應(yīng)的BOM包含在tp的BOM中時(shí),稱之為該成品BOM的子BOM。因此,BOM的文本清單中隱含成品、半成品和零件之間的包含關(guān)系。例如,假設(shè)產(chǎn)品A由半成品B和C組成,B由半成品D和諸多零部件組成,半成品C和D中只包含零部件,那么產(chǎn)品A對(duì)應(yīng)的BOM如表1所示,表1包含子BOM表2、表3和表4,表2包含子BOM表4。
(5)BOM詞w。BOM詞是BOM中任意一個(gè)以空格作為分詞標(biāo)志的詞,不一定是自然語(yǔ)言中的單詞,但刻畫了BOM所包含的特征。比如,表1“描述”列的第一行“主板機(jī)插組件OCZ-ZT550W-2 REV:001 A T26”包含“主板機(jī)插組件”、“OCZ-ZT550W-2”、“REV:001”、“A”、“T26”5個(gè)BOM詞。若用“|*|”表示基數(shù),有tm={w1,w2,…,w|tm|},th={w1,w2,…,w|th|},tm={w1,w2,…,w|tp|}。
(6)BOM樹。用樹葉子節(jié)點(diǎn)N表示BOM中為tm的行,中間節(jié)點(diǎn)N表示BOM中為th的行,無(wú)向邊E表示BOM和子BOM的直接關(guān)聯(lián),那么BOM是一棵由節(jié)點(diǎn)N和邊E組成的無(wú)序樹BT={N,E}。譬如,表1對(duì)應(yīng)的BOM樹如圖1所示。若將樹用相鄰矩陣進(jìn)行存儲(chǔ),那么表5是產(chǎn)品A的矩陣表示。
(7)候選集。候選集T={t1,t2,…,t|t|},是推薦系統(tǒng)中推薦候選項(xiàng)的集合。t是tm、th和tp的統(tǒng)稱。
(8)候選項(xiàng)向量。候選項(xiàng)向量表示為V,Vt=(f(w1),f(w2),…,f(w|w|))是t= {w1,w2,…,w|t|}通過函數(shù)y=f(x)變換后形成的向量。
(9)物品類別(主題)。物品類別表示為C,C={c1,c2,…,c|C|},在封閉系統(tǒng)中C是一個(gè)有限的集合,|C|為該集合的基數(shù)。
(10)用戶集。用戶集表示為U,U={u1,u2,…,u|U|},其中,ui(i=1,2,…,|U|)表示單個(gè)用戶,|U|為用戶集的基數(shù)。
(11)發(fā)生概率(得分)。發(fā)生概率表示為R,并以下標(biāo)區(qū)分不同事件的發(fā)生概率。
(12)用戶標(biāo)簽集。用戶標(biāo)簽集表示為L(zhǎng),L={l1,l2,…,l|L|}。|L|為該集合的基數(shù),li(i=1,2,…,|L|)為單個(gè)用戶的某一特征標(biāo)簽。
表1 產(chǎn)品A的BOMTab.1 The BOM of product A
說明:標(biāo)簽列僅為了方便標(biāo)注樹節(jié)點(diǎn)而添加標(biāo)簽,不屬于BOM的內(nèi)容。標(biāo)簽標(biāo)注規(guī)則見文獻(xiàn)[10]。
表2 半成品B的BOMTab.2 The BOM of semifinished product B
表3 半成品C的BOMTab.3 The BOM of semifinished produet C
表4 半成品D的BOMTab.4 The BOM of semifinished product D
圖1 產(chǎn)品A的BOM樹Fig.1 BOM tree of product A
表5 產(chǎn)品A的相鄰矩陣Tab.5 The adjacent matrix of product A
(13)興趣標(biāo)簽。興趣標(biāo)簽表示為L(zhǎng)(u),是用戶u標(biāo)簽集L中滿足一定條件的子集。
(14)問題定義。給定物品候選集T和用戶標(biāo)簽集L,如果用戶滿意程度為s(臨界值為α),目標(biāo)函數(shù)為s=f(L,T),假設(shè)當(dāng)目標(biāo)函數(shù)值s不小于臨界值α?xí)r滿足用戶需求,那么本文的問題是求解ST={ti∈T∶s=f(L,T)∩s≥α},返回用戶的推薦集合ST。
首先針對(duì)推薦內(nèi)容維度,提出根據(jù)內(nèi)容相似和結(jié)構(gòu)相似來定義物品的距離并以此為基礎(chǔ)劃分其類別(主題) 。然后對(duì)另一個(gè)用戶標(biāo)簽維度定義計(jì)算用戶近似度的公式,并給出量化用戶興趣的方法。最后,在不忽略系統(tǒng)冷啟動(dòng)問題的基礎(chǔ)上,介紹本文所使用的推薦算法。
2.1.1基于內(nèi)容相似的距離
假設(shè)空間中有2個(gè)分別包含n維詞匯信息的候選項(xiàng)向量V1(xw11,xw12, …,xw1n)和V2(xw21,xw22,…,xw2n),那么引入向量空間余弦相似度[11]后,它們的相似距離被定義為
(1)
其中,dc的取值范圍為[-1,1],dc取值越大,表示V1和V2相似度越高。xwi為wi經(jīng)過函數(shù)f(wi)變換后的數(shù)值。由于tm所包含的w數(shù)量不多且結(jié)構(gòu)單一,而th和tp包含數(shù)目過多的w且結(jié)構(gòu)復(fù)雜,因此,本節(jié)針對(duì)兩種情況分別定義相應(yīng)的f(w)函數(shù)。
(1)零部件內(nèi)容文本向量化。零部件內(nèi)容近似采用了詞頻向量法。詞頻向量法把BOM詞出現(xiàn)的頻率作為表征一句話或者一段文本的主要信息,并針對(duì)重要的詞語(yǔ)進(jìn)行頻數(shù)統(tǒng)計(jì),形成數(shù)學(xué)向量,從而實(shí)現(xiàn)文本到數(shù)學(xué)符號(hào)的轉(zhuǎn)換,即
ftm(w)=q(wi;tm)
(2)
式中,q(wi;tm)表示BOM詞wi在tm={w1,w2,…,w|w|}中的發(fā)生頻率。
例如,表1中的零部件tmJ和零部件tmK,通過詞頻變換后的向量如表6所示,分別為VtJ=(1,1,1,1,1,0,0,0,0)和VtK=(1,0,0,0,0,1,1,1,1)。
表6 詞頻轉(zhuǎn)化為向量Tab.6 From word frequency to vector
(2)半成品與成品內(nèi)容文本向量化。此處采用了“詞頻-逆向文件頻率”法即BOM詞頻-逆向文件頻率法[12],公式如下:
fth|tp(w)=TFIDF(w,dBOM,D)=
TF(w,dBOM)·IDF(w,D)
(3)
(4)
式中,TF(w,dBOM)為BOM詞w在文檔dBOM中的出現(xiàn)次數(shù);IDF(w,D)表示詞w在物料清單語(yǔ)料庫(kù)中的獨(dú)特性;DF(w)為包含了詞匯w的物料清單數(shù);|D|為語(yǔ)料庫(kù)中的文檔總數(shù)。
2.1.2基于結(jié)構(gòu)相似的距離
本節(jié)將計(jì)算半成品與成品BOM樹之間的近似程度轉(zhuǎn)換成計(jì)算樹相鄰矩陣之間的相似距離。其中,根據(jù)文獻(xiàn)[4]中的正交普氏分析過程,兩個(gè)相鄰矩陣MX和MY的相似距離被定義為
(5)
ds的取值范圍為[0,1]。當(dāng)且僅當(dāng)ds取值為1時(shí),MY與MX相同或者其中一個(gè)矩陣是另一個(gè)矩陣的真子集。trace{A}表示矩陣A的對(duì)角線元素之和,矩陣P來自于MX和MY的正交普氏分析的結(jié)果。其中,對(duì)于正交普氏分析而言,MX為基準(zhǔn)矩陣,MY為用于匹配的矩陣,P為自轉(zhuǎn)正交矩陣[13]。
2.1.3基于集成相似的距離
集成模型在統(tǒng)計(jì)、計(jì)算和表示上都比單一模型更有優(yōu)勢(shì)[14],因此,本文在計(jì)算tp、th之間的相似距離時(shí),集成了BOM結(jié)構(gòu)相似距離和內(nèi)容相似距離的辦法。具體定義為:給定某兩個(gè)tp(th)的結(jié)構(gòu)相似距離ds和內(nèi)容相似距離dc,集成模型的距離計(jì)算公式為
dens=weq1ds+weq2dc
(6)
weq1=weq2=1/2
如文獻(xiàn)[11]所述,等權(quán)重集成雖然較為簡(jiǎn)單,但簡(jiǎn)單的方案可能在實(shí)際應(yīng)用中效果很好。尤其是在面對(duì)依賴權(quán)重估計(jì)來做預(yù)測(cè)的模型時(shí),等權(quán)重的辦法往往能避免模型性能的不穩(wěn)定及估計(jì)錯(cuò)誤帶來的風(fēng)險(xiǎn)。
2.1.4基于相似距離分類
物品的主題或分類是推薦系統(tǒng)的重要依據(jù)?;谇拔膶?duì)距離的定義,本節(jié)實(shí)現(xiàn)了機(jī)器學(xué)習(xí)領(lǐng)域中的K-Means聚類算法[12]。它將3個(gè)模型所提供的距離作為K-Means的輸入,每個(gè)物品都是K-Means的“點(diǎn)”,近似值是“點(diǎn)”與“點(diǎn)”之間的距離。當(dāng)算法1的輸入?yún)?shù)dDF為tm時(shí),距離為式(1)的輸出。同理,當(dāng)輸入?yún)?shù)為tp或th時(shí),距離來自式(6)。算法1的復(fù)雜度為O(n)。
算法 1 frm-ModelCapability (distDF,k)
輸入:近似集dDF,可能存在的類別數(shù)k
輸出:K種分類
開始
1.for alld∈dDFdo∥d是dDF中的列
2. 初始化常數(shù)k
3. 隨機(jī)選取初始點(diǎn)為質(zhì)心
4. while質(zhì)心不再改變 do
5. 以d作為距離,掃描樣本與每個(gè)
質(zhì)心之間的數(shù)值,將樣本歸類到
最相似的類中
6. 重新計(jì)算質(zhì)心
7. end while
8.end for all
9.ReturnK種分類 ∥Score中包含模型的F1 Recall和Precision值
2.2.1用戶興趣量化
本節(jié)采用標(biāo)簽來量化用戶的興趣,即以一種主動(dòng)學(xué)習(xí)的方式為用戶打上相應(yīng)的標(biāo)簽,并形成針對(duì)每個(gè)用戶的興趣標(biāo)簽描述矩陣(向量)。假設(shè)用戶u包含的標(biāo)簽集合為L(zhǎng),那么u的興趣量化函數(shù)L(u)的定義為
L(u)={l∈L∶LP(u,l)≥θ}
(7)
其中,LP(u,l)表示標(biāo)簽l相對(duì)用戶u的正樣本發(fā)生概率,θ為一個(gè)臨界值,可以判別標(biāo)簽l是否達(dá)到用戶u的興趣水平。因此,如果假設(shè)發(fā)生概率過低的標(biāo)簽均為興趣集的噪聲,θ的實(shí)際作用是去噪。例如某一標(biāo)簽li在用戶ui的眾多標(biāo)簽集中的發(fā)生概率僅為0.000 1,遠(yuǎn)低于平均發(fā)生概率,那么它很可能是用戶偶然的點(diǎn)擊,尚未形成“興趣”。
這里包含兩個(gè)需要解決的問題,一是用戶標(biāo)簽的來源,二是如何準(zhǔn)確判別該標(biāo)簽是否屬于當(dāng)前用戶興趣范圍。解決問題的數(shù)據(jù)基礎(chǔ)是用戶的瀏覽歷史記錄和用戶自身屬性,如年齡、性別、所屬工廠等。
(1)類別和主題標(biāo)簽。用戶的類別或主題標(biāo)簽主要來源于搜索內(nèi)容的類別(主題)劃分。2.1.4節(jié)對(duì)物品的歸類是本節(jié)類別標(biāo)簽的來源。假設(shè)用戶u的瀏覽內(nèi)容中包含物品分類集C={c1,c2,…,cn},并用下標(biāo)區(qū)分不同用戶的標(biāo)簽集,那么其對(duì)應(yīng)的標(biāo)簽為L(zhǎng)u? {lc1,lc2,…,lcn},興趣標(biāo)簽的判斷條件為L(zhǎng)P(u,lci)≥θ。
(2)關(guān)鍵字標(biāo)簽。當(dāng)用戶u標(biāo)簽集中大部分LP(u,lci)<θ且lci∈Lu,那么僅按照瀏覽主題和標(biāo)簽標(biāo)注用戶的策略基本失效。為彌補(bǔ)此不足,本文中引入關(guān)鍵字標(biāo)簽。這里的關(guān)鍵字全樣本集來源于BOM中的w,興趣標(biāo)簽的判斷條件為L(zhǎng)P(u,lwi)≥θ,關(guān)鍵字全樣本集的獲取如算法2所示。
算法 2 frm-KeyWrd(Boms)
輸入:BOM文本集
輸出:返回得分位于0.652 6之上的集合
開始
1. for allBom∈Bomsdo∥d是dDF中的列
2.Bom→{w1,w2,…,wn}
3. for allwrd∈{w1,w2,…,wn}Bomsdo
4.Scoring.add(TFIDF(w))
5. end for
6.end for all
7.Returntop-65.26%w∥返回65.26%的關(guān)鍵字集合
算法2采用了遞向詞頻法TFIDF。首先對(duì)過去兩年的BOM文本做預(yù)處理,預(yù)處理步驟包含分詞切割和計(jì)算TFIDF得分。在假設(shè)TFIDF得分服從正態(tài)分布的基礎(chǔ)上,將正態(tài)分布在σ內(nèi)的w視為關(guān)鍵字樣本集。TFIDF法主要對(duì)文本進(jìn)行處理,速度較快,算法的復(fù)雜度為O(n)。
(3)物品來源標(biāo)簽。物品的來源標(biāo)簽包含三種ltm、ltp、lth(零部件、成品和半成品)。該標(biāo)簽的計(jì)算和統(tǒng)計(jì)方法與類別標(biāo)簽相似。
(4)身份特征標(biāo)簽。物料采購(gòu)員、電路設(shè)計(jì)工程師、產(chǎn)品工程師等因個(gè)人偏好、身份特征、年齡等諸多因素導(dǎo)致其對(duì)信息的需求均不相同,因此,本文引入身份特征這一標(biāo)簽,主要包含用戶個(gè)人的崗位ltitle、所屬工廠lfactory、年齡lage、性別lgen。同時(shí),為將這些特征標(biāo)簽融入興趣量化的公式中,我們?cè)谟?jì)算這些標(biāo)簽是否滿足LP(u,l)≥θ條件時(shí)將LP(u,l)設(shè)定為1。
2.2.2用戶相似定義
協(xié)同推薦的基本假設(shè)為具有相同興趣的用戶具有相似的信息檢索需求,因此,度量?jī)蓚€(gè)用戶的相似程度是開展推薦任務(wù)的基礎(chǔ)。假設(shè)用戶集里包含3個(gè)用戶u1、u2和u3,已知u1和u2的共同興趣標(biāo)簽有8個(gè),用戶u1和u3的共同興趣標(biāo)簽數(shù)是2,那么u1和u2的近似程度要高于u1和u3的近似程度?;诖?,本文度量用戶相似度的公式定義如下:
(8)
其中,L(ux)指的是用戶ux的標(biāo)簽集,L(ux)∩L(uy)是所有用戶ux和uy的興趣標(biāo)簽交集,L(ux)的計(jì)算方法見式(7)。
2.2.3用戶鄰域計(jì)算
用戶的鄰域計(jì)算是協(xié)同推薦的關(guān)鍵步驟,其中,鄰域用戶數(shù)的實(shí)現(xiàn)方式有靜態(tài)和動(dòng)態(tài)之分。靜態(tài)辦法就是對(duì)所有當(dāng)前用戶均選擇k個(gè)最近似的用戶作為其鄰域,而動(dòng)態(tài)指的是利用臨界值來動(dòng)態(tài)獲取近似度超過臨界值的鄰域。本文在系統(tǒng)實(shí)現(xiàn)中采用了預(yù)處理的靜態(tài)辦法,依據(jù)式(8),返回?cái)?shù)據(jù)庫(kù)中與當(dāng)前用戶最相似的k個(gè)用戶,具體如算法3所示。
算法 3 K-NearestUsers(ui,users)
輸入:當(dāng)前用戶ui, 包含近似關(guān)系的用戶集users∥users之間的近似關(guān)系由預(yù)處理完成
輸出:top-k個(gè)最近的u集合
開始
1.userSet=users.containUi(ui)∥獲取與ui有du關(guān)系的所有用戶
2.userSet.sortByDu() ∥按du大小排序
3.ReturngetTopk(userSert)∥返回top-k個(gè)鄰域用戶
算法3包含了一個(gè)預(yù)處理的集合users,即預(yù)處理部分將用戶的近似關(guān)系持久化于數(shù)據(jù)庫(kù)中,僅在用戶有了新的標(biāo)簽才對(duì)其作更新操作。
2.3.1基于內(nèi)容推薦(CB)
本節(jié)在2.1節(jié)的基礎(chǔ)上為用戶提供基于內(nèi)容近似的物品推薦。假設(shè)Ci是用戶ux瀏覽物品ti(i=m、h、p)的類別,T(Ci)函數(shù)表示獲取類別Ci的t集合,∧表示條件與,Tux為用戶ux的推薦候選集合,那么內(nèi)容推薦則是從候選集Tux={t1,t2,…,t|t||ti∈T(Ci)∧Ci∈{C1,C2,C3,…,Cn}}中決策出top-kCB個(gè)與ti同分類且dens1距離最短的推薦項(xiàng)列表,如算法4所示。
算法 4 CB-RecommendationItems(ti,C,dens1)
輸入:物品類別矩陣C和ti距離列表dens1
輸出:top-kCB個(gè)最近的ti集合
開始
1.Ci=getC(ti) ∥獲取ti的類別
2.Tux=getItems(Ci)∥滿足{t1,t2,…,tn|ti∈T(Ci)∧Ci∈{C1,C2,C3,…,Cn}}
3.CBSets=TuxjoingetItemsWithDistance(dens1)∥為候選集添加距離屬性
4.ReturnSCB= {ti∈CBSets:0<=i 算法4與第1節(jié)中的推薦結(jié)果ST={ti∈T:s=f(L,T)∩s≥α}在形式上不是一一對(duì)應(yīng)的。這里,我們將標(biāo)簽L和類別C等同,那么目標(biāo)函數(shù)為s=f(C,T),而目標(biāo)達(dá)成的判斷依據(jù)s≥α在算法4中被轉(zhuǎn)換成三個(gè)條件:①返回的結(jié)果集的元素?cái)?shù)量為top-kCB;②屬于Ci分類;③離ti的距離是top-kCB最短。 2.3.2協(xié)同過濾推薦(CF) 假設(shè)T(L(uy))函數(shù)表示用戶uy興趣標(biāo)簽集所包含的物品集合,uy∈{u1,u2,…,uk}為ux的top-kCF個(gè)相似用戶,那么ux的推薦候選集為Tux={t1,t2,…,t|t||ti∈{T(L(u1)) ∪T(L(u2))∪…∪T(L(uy))∪…∪T(L(uk))}}。本節(jié)的任務(wù)是從候選集Tux中決策出top-kCF個(gè)當(dāng)前用戶最感興趣的物品列表。為此,本節(jié)引入Resnick’s算法的評(píng)分公式[15]: (9) 算法5 CF-RecommendationItems(u,Tux) 輸入:用戶近似度矩陣u和物品列表矩陣Tux 輸出:top-kCF個(gè)評(píng)分最高的ti集合 開始 1.for alluy∈udo 2. 初始化常數(shù)kCF 4.end for all 5.ReturnSCF= {t1,t2,t3,…,tkCF} ∥返回top-kCF最高分的t集合 算法5對(duì)于問題定義ST={ti∈T:s=f(L,T)∩s≥α}而言,目標(biāo)函數(shù)為s=f(L,T),條件s≥α的解釋為:①返回結(jié)果集的元素?cái)?shù)量為top-kCF;②物品ti得分滿足式(9);③屬于top-kCF最高分的t集合。 2.3.3組合推薦 協(xié)同推薦基本上解決了基于內(nèi)容推薦的品種單一問題,并易獲得較好的推薦質(zhì)量,但正如前文所說,它無(wú)法解決系統(tǒng)的冷啟動(dòng)或用戶信息量過少時(shí)的推薦問題[16],因此,本節(jié)以協(xié)同推薦為基礎(chǔ),結(jié)合2.3.1節(jié)內(nèi)容,定義組合推薦的公式如下: (10) 其中,當(dāng)且僅當(dāng)當(dāng)前用戶有瀏覽歷史記錄但與其他用戶的標(biāo)簽交集只有身份屬性時(shí),采用基于內(nèi)容推薦(content based,CB)即根據(jù)現(xiàn)有用戶的興趣標(biāo)簽推薦同類型的物品。相反,如果當(dāng)前用戶有瀏覽歷史記錄并與其他用戶有除身份標(biāo)簽以外的共同興趣標(biāo)簽時(shí),采用2.3.2節(jié)的協(xié)同推薦方法。但是,如果用戶沒有物品瀏覽記錄,本文引入產(chǎn)品的停留時(shí)間作為生命力因子,區(qū)別對(duì)待在tm、th和tp的基礎(chǔ)上修訂并集成的頻繁集挖掘算法[17],為用戶推薦當(dāng)前被頻繁使用的物品集合。 (1)成品的頻繁集合。由第1節(jié)的實(shí)體描述中可見,成品tp是一棵BOM樹。本節(jié)在提取tp頻繁集的時(shí)候,將其看成獨(dú)立的個(gè)體(每個(gè)BOM就是一個(gè)獨(dú)立的頻繁項(xiàng))并以點(diǎn)擊率作為頻次的度量。因此,BOM集和頻度q如表7所示。 表7 BOM的頻度Tab.7 The click frequency of BOM 對(duì)頻次的頻率化處理公式如下: (11) RBOM,i表示頻繁集中第i個(gè)BOM的得分。推薦集FRE(BOM)={BOMi|BOMi∈{BOM1,BOM2,…,BOMn}}的獲取必須滿足3個(gè)條件:①屬于最近一段時(shí)間被點(diǎn)擊的物品集;②BOMi的停留時(shí)間不低于超參數(shù)κ;③RBOM,i得分不低于0.3。 (2)零部件和半成品的頻繁集。tm和th分別為BOM樹的葉子節(jié)點(diǎn)和子樹,因此,本節(jié)引入文獻(xiàn)[17]的辦法,對(duì)任意一個(gè)包含子節(jié)點(diǎn)Nc的父節(jié)點(diǎn)Np進(jìn)行頻度計(jì)算,公式如下: qBTNp= (12) (13) 其中,B為BOM樹,h(B,N)表示節(jié)點(diǎn)N在樹中的高度,Q為樹節(jié)點(diǎn)中的零部件個(gè)數(shù)。式(13)是對(duì)頻次的頻率化處理。BNi表示以Ni為根節(jié)點(diǎn)的子樹,RBTNi,i表示數(shù)據(jù)庫(kù)中第i個(gè)子樹的得分,那么推薦集為SFRE(B) ={Ni|Ni∈{N1,N2,…,Nn}}。 實(shí)驗(yàn)設(shè)置的第一個(gè)參數(shù)是實(shí)驗(yàn)環(huán)境。實(shí)驗(yàn)運(yùn)行在64bit的Ubuntu上。該系統(tǒng)擁有一個(gè)2.4GHz第三代英特爾酷睿四核CPU、16GB的RAM內(nèi)存、一個(gè)64GB SSD固態(tài)硬盤和一塊750GB硬盤。 實(shí)驗(yàn)設(shè)置的第二個(gè)參數(shù)是實(shí)驗(yàn)數(shù)據(jù)。本節(jié)實(shí)驗(yàn)所用數(shù)據(jù)來自于真實(shí)的生產(chǎn)環(huán)境,約包含1154份BOM,350 000個(gè)物品的數(shù)據(jù)集。實(shí)驗(yàn)所用數(shù)據(jù)集均從這份數(shù)據(jù)抽樣形成。 實(shí)驗(yàn)設(shè)置的第三個(gè)參數(shù)是實(shí)驗(yàn)對(duì)象。前三組實(shí)驗(yàn)對(duì)象基本一致,分別是原始的信息搜索系統(tǒng)InfoSystem和本文的系統(tǒng)RecoSystem。第四組實(shí)驗(yàn)分為三個(gè)部分,第一部分測(cè)試對(duì)象是系統(tǒng)參數(shù)k和θ,第二部分測(cè)試對(duì)象是結(jié)構(gòu)近似度量Struct、內(nèi)容近似度量Content和本文度量辦法Reco,第三部分是基于內(nèi)容推薦(CB)、協(xié)同過濾推薦(CF)和本文的組合推薦模型RecoModel。其中,RecoSystem是本文推薦系統(tǒng)的實(shí)現(xiàn),InfoSystem表示集成推薦系統(tǒng)前的生產(chǎn)信息系統(tǒng),RecoModel是推薦引擎。RecoSystem和RecoModel屬于自主開發(fā),InfoSystem是商用系統(tǒng)。三者的關(guān)系為RecoSystem包含RecoModel,RecoSystem將集成到InfoSystem中去。 實(shí)驗(yàn)設(shè)置的第四個(gè)參數(shù)是評(píng)價(jià)指標(biāo)。第三組實(shí)驗(yàn)的評(píng)價(jià)指標(biāo)是響應(yīng)時(shí)間,第二、第四組的評(píng)價(jià)指標(biāo)是平均絕對(duì)誤差(mean absolute error,MAE)。假設(shè)R表示推薦項(xiàng)的得分集,|R|為推薦集大小,Rij表示元素Rij的真實(shí)得分,PRij為推薦系統(tǒng)的預(yù)測(cè)得分,MAE的計(jì)算公式如下: (14) 本文推薦系統(tǒng)RecoSystem涵蓋物料近似搜索、我的關(guān)注及能解決冷啟動(dòng)問題的熱門產(chǎn)品推薦功能。InfoSystem主要查詢功能是物料的精確查詢,InfoSystem要求使用者精確記住每種物料的所有具體參數(shù),當(dāng)數(shù)據(jù)量逐步增大時(shí),在InfoSystem中進(jìn)行搜索將成為一種挑戰(zhàn)。同時(shí),InfoSystem無(wú)法解決工廠業(yè)務(wù)上的需求,如拋開市場(chǎng)品牌標(biāo)簽后查找近似零部件或用料非常接近的半成品和成品。然而,這些問題都將在推薦系統(tǒng)中得到解決,在RecoSystem中,用戶可通過關(guān)注收藏操作自定義個(gè)人興趣,由推薦系統(tǒng)綜合考慮用戶主被動(dòng)兩種情況進(jìn)行相應(yīng)的推薦,用戶只需被動(dòng)接收滿足需求的信息,另外,用戶亦可主動(dòng)發(fā)起對(duì)物品近似搜索,所以既能夠提升信息獲取的效率,又能夠解決手工進(jìn)行近似匹配的麻煩,因此,RecoSystem是現(xiàn)有信息系統(tǒng)的重要補(bǔ)充。 分別在不同的數(shù)據(jù)集上測(cè)試統(tǒng)計(jì)推薦引擎RecoModel推薦結(jié)果的MAE,測(cè)試結(jié)果如圖2所示。由圖2可見,本文推薦系統(tǒng)的MAE在隨機(jī)形成的數(shù)據(jù)集上基本恒定在85%的水平。一方面,由經(jīng)驗(yàn)可判斷85%的滿意程度屬于推薦系統(tǒng)中較好的水準(zhǔn),另一方面系統(tǒng)的MAE隨數(shù)據(jù)集的不同而呈現(xiàn)較為平穩(wěn)的波動(dòng),符合預(yù)期。 分別在不同的數(shù)據(jù)集上測(cè)試系統(tǒng)搜索功能集成前后推薦模型的響應(yīng)時(shí)間,測(cè)試結(jié)果如圖3所示。圖3顯示RecoSystem與InfoSysttem的響應(yīng)時(shí)間較為接近,并不因?yàn)槎嗉闪送扑]模型帶來多余的系統(tǒng)開銷。本文在InfoSystem的基礎(chǔ)上集成推薦模型時(shí),推薦模型所使用的數(shù)據(jù)如推薦項(xiàng)距離、主題分類、部分標(biāo)簽等通過系統(tǒng)預(yù)處理任務(wù)來完成,不占用系統(tǒng)響應(yīng)開銷。同時(shí),部分需要實(shí)時(shí)計(jì)算部分如用戶標(biāo)簽、興趣標(biāo)簽、鄰域等每次只更新變動(dòng)過的部分。假設(shè)這部分的計(jì)算與搜索同時(shí)并發(fā)執(zhí)行,那么RecoSystem的響應(yīng)時(shí)間為max{執(zhí)行時(shí)間, InfoSystem的響應(yīng)時(shí)間},在推薦模型線上開銷盡可能小的前提下,InfoSystem并不因?yàn)槎嗉梢粋€(gè)模型而使系統(tǒng)響應(yīng)驟然變慢。 模型性能測(cè)試包含四個(gè)實(shí)驗(yàn),前三個(gè)實(shí)驗(yàn)分別測(cè)試參數(shù)k、θ和相似距離定義策略的變化對(duì)系統(tǒng)性能的影響,最后一個(gè)實(shí)驗(yàn)是本文與現(xiàn)有流行推薦系統(tǒng)的對(duì)比實(shí)驗(yàn)。所有實(shí)驗(yàn)結(jié)果均來自于多次(超過5次)執(zhí)行后的平均值。 (1)用戶鄰域數(shù)k取值對(duì)系統(tǒng)性能的影響。抽出式(10)中的協(xié)同推薦部分單獨(dú)測(cè)試用戶鄰域大小對(duì)其性能的影響。圖4測(cè)試結(jié)果顯示,當(dāng)k=1時(shí)模型的性能最好,k取值從1~4的過程中模型MAE的波動(dòng)不大,但k=4是模型的MAE從90%以上下降到83%的臨界點(diǎn)。考慮到不給k取過小的值,本文系統(tǒng)的用戶鄰域k取值為4。 圖4 鄰域數(shù)k取值的影響Fig.4 The effect of the neighborhood number k (2)θ取值對(duì)系統(tǒng)性能的影響。θ是本文用來判別當(dāng)前標(biāo)簽是否能成為用戶興趣標(biāo)簽的依據(jù)。圖5的測(cè)試數(shù)據(jù)是包含35萬(wàn)個(gè)物品記錄的數(shù)據(jù)集。測(cè)試結(jié)果顯示,θ以0.1的步長(zhǎng)不斷遞增,模型MAE值隨其增大,當(dāng)θ取到0.4時(shí),模型MAE值達(dá)到峰值,因此,本文系統(tǒng)的超參數(shù)θ取0.4。 圖5 θ對(duì)系統(tǒng)性能影響Fig.5 The effect of θ on system performance (3)距離定義方法對(duì)系統(tǒng)性能的影響。Reco是Struct、Content和Ens(集成模型)的綜合,對(duì)tm采用Content辦法,對(duì)th和tp采用Ens方法。圖6的測(cè)試結(jié)果顯示,系統(tǒng)采用Reco時(shí)性能最好,隨著數(shù)據(jù)量增大,MAE波動(dòng)平穩(wěn)。Struct和Content結(jié)果較為接近,Content的效果略優(yōu),尤其是在數(shù)據(jù)集全為tm時(shí)(數(shù)據(jù)集為50 000),Content優(yōu)勢(shì)凸顯,因?yàn)?0 000數(shù)據(jù)集的物品全為tm,tm的結(jié)構(gòu)是一個(gè)葉子節(jié)點(diǎn),沒辦法通過結(jié)構(gòu)度量tm與tm之間的相似程度,此時(shí),系統(tǒng)處于隨機(jī)狀態(tài)。 圖6 距離度量方法對(duì)系統(tǒng)性能影響Fig.6 The effect of distance measure method on system performance (4)推薦系統(tǒng)性能對(duì)比實(shí)驗(yàn)。圖7的實(shí)驗(yàn)結(jié)果顯示,本文模型RecoModel較純CB模型有約10%的MAE優(yōu)勢(shì),同時(shí),在數(shù)據(jù)量小于70 000前純CF模型的MAE高于RecoModel的MAE,但當(dāng)數(shù)據(jù)量大于70 000后,CF模型的MAE小于RecoModel的MAE并迅速下降。在穩(wěn)定性方面,RecoModel的MAE基本在83%~85%之間變化,且波動(dòng)率不大,較純CB模型和純CF模型更穩(wěn)定。 圖7 推薦算法對(duì)比實(shí)驗(yàn)Fig.7 The comparison experiment on Recommended algorithms 本文遵循以物品為主、用戶為輔的原則,在考慮推薦物品具體形態(tài)的基礎(chǔ)上,針對(duì)生產(chǎn)制造基礎(chǔ)信息BOM,實(shí)現(xiàn)可集成到現(xiàn)有生產(chǎn)制造系統(tǒng)的推薦系統(tǒng)。系統(tǒng)涵蓋三個(gè)模塊:用戶主動(dòng)定制自身偏好模塊、推薦引擎、包含數(shù)據(jù)存儲(chǔ)和處理部分的用戶興趣挖掘模塊。自下而上看,系統(tǒng)在數(shù)據(jù)存儲(chǔ)和處理時(shí),全面分析BOM中物品、半成品、成品等所包含的特征,提出基于內(nèi)容相似、BOM結(jié)構(gòu)相似及兩者集成的相似距離定義辦法,根據(jù)物品特征選擇合適的相似距離定義公式,并以距離為基準(zhǔn)劃分物品的主題或分類。同時(shí),基于用戶瀏覽產(chǎn)生的歷史記錄或用戶自行定義的自身偏好量化用戶興趣、定義用戶近似公式。最后由推薦引擎結(jié)合物品與用戶,實(shí)現(xiàn)包括基于內(nèi)容推薦和基于協(xié)同過濾在內(nèi)的組合推薦,決策出用戶所需的推薦列表。處理冷啟動(dòng)時(shí),引入頻繁集搜索算法,并結(jié)合生命周期的概念,在篩除過時(shí)集的基礎(chǔ)上再形成頻繁集合以提高推薦命中率。實(shí)驗(yàn)表明,本文推薦模型能為用戶提供有效的近似搜索功能,是現(xiàn)有生產(chǎn)集成信息系統(tǒng)的補(bǔ)充,同時(shí)能有效推薦用戶所需信息,有效降低其主動(dòng)搜索信息所耗費(fèi)的精力。3 推薦系統(tǒng)評(píng)價(jià)
3.1 參數(shù)設(shè)置
3.2 系統(tǒng)功能
3.3 推薦效果評(píng)價(jià)
3.4 系統(tǒng)性能測(cè)試
3.5 模型性能測(cè)試
4 結(jié)論