肖宏宇,曾文驅(qū),王淑營(yíng)
(西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,四川 成都 610000)
在使用BIM技術(shù)設(shè)計(jì)的地鐵工程中,專業(yè)間的聯(lián)系相對(duì)于傳統(tǒng)方式更加緊密,對(duì)各專業(yè)設(shè)計(jì)成果交付有了更加嚴(yán)格的時(shí)間要求以及更高的質(zhì)量要求,因此設(shè)計(jì)單位利用BIM云平臺(tái)管理BIM協(xié)同設(shè)計(jì)工作[1]。隨著時(shí)間推移,云平臺(tái)的資源庫中會(huì)累積大量設(shè)計(jì)成熟的BIM模型實(shí)例。為了充分利用已有資源提高專業(yè)設(shè)計(jì)效率,保障BIM協(xié)同設(shè)計(jì)流程的順利進(jìn)行,用戶會(huì)根據(jù)新工程的設(shè)計(jì)需求從資源庫中挑選合適的設(shè)計(jì)參考模型。但是僅通過基本的工程信息進(jìn)行人工查找需要花費(fèi)大量的時(shí)間,因此輔助設(shè)計(jì)人員快速?gòu)馁Y源庫中獲取匹配當(dāng)前設(shè)計(jì)需求的參考模型是BIM云平臺(tái)必須提供的功能,這就為BIM模型推薦算法研究提供了一個(gè)契機(jī)。
重用以往設(shè)計(jì)成熟的BIM模型實(shí)例是提高當(dāng)前設(shè)計(jì)效率的重要手段,但是目前缺少針對(duì)BIM模型的推薦算法研究。推薦系統(tǒng)所采用的推薦算法主要分為基于內(nèi)容的推薦、協(xié)同過濾推薦以及混合推薦算法[2-4]。
雖然協(xié)同過濾算法被廣泛應(yīng)用,但是協(xié)同過濾算法適用于個(gè)性化推薦,并面臨著數(shù)據(jù)稀疏以及冷啟動(dòng)的問題[5-6]。雖然影響設(shè)計(jì)人員挑選參考模型的因素大致相同,但是不同的工程項(xiàng)目有不同的設(shè)計(jì)需求。因此,設(shè)計(jì)人員在參與新任務(wù)時(shí)只能被看作一個(gè)“新用戶”,協(xié)同過濾算法的冷啟動(dòng)問題更加突出。而基于內(nèi)容的推薦算法是通過分析用戶歷史行為數(shù)據(jù)并結(jié)合項(xiàng)目特征計(jì)算用戶與項(xiàng)目之間的相關(guān)性,僅依賴用戶偏好和項(xiàng)目特征信息,能夠有效避免冷啟動(dòng)問題[7]。文獻(xiàn)[8]基于用戶與項(xiàng)目的交互記錄,利用貝葉斯Ranking優(yōu)化算法實(shí)現(xiàn)了用戶對(duì)項(xiàng)目的偏好預(yù)測(cè)。文獻(xiàn)[9]利用邏輯回歸模型整合了影響用戶行為的多個(gè)因素,預(yù)測(cè)推薦概率。文獻(xiàn)[10]通過用戶語言描述信息建立了目標(biāo)規(guī)劃模型求解項(xiàng)目屬性權(quán)重,然后通過距離公式計(jì)算推薦度。但是基于內(nèi)容的推薦方式在缺乏用戶行為數(shù)據(jù)情況下,推薦結(jié)果精度并不理想[11]。混合推薦算法將多種推薦方法相結(jié)合進(jìn)行組合,能夠充分發(fā)揮各個(gè)算法的優(yōu)勢(shì)[12-13]。文獻(xiàn)[14]使用Boosting集合模型整合了多種推薦算法從而提高推薦質(zhì)量。文獻(xiàn)[15]將項(xiàng)目相似度和用戶相似度相結(jié)合,解決了算法冷啟動(dòng)問題。
本文考慮到平臺(tái)運(yùn)營(yíng)初期缺乏用戶交互數(shù)據(jù)的情況,并結(jié)合上述文獻(xiàn)中的研究成果,提出采用熵權(quán)灰色關(guān)聯(lián)模型與GBDT+LR模型結(jié)合的混合推薦算法。通過Revit二次開發(fā)從BIM模型中獲取特征數(shù)據(jù),使用模型特征向量對(duì)BIM模型實(shí)例進(jìn)行描述;針對(duì)在平臺(tái)運(yùn)營(yíng)初期缺乏用戶行為數(shù)據(jù)的情況,利用熵權(quán)法計(jì)算特征屬性權(quán)重,并結(jié)合灰色關(guān)聯(lián)模型計(jì)算模型實(shí)例的推薦度;將用戶瀏覽模型實(shí)例詳情、下載文件等交互數(shù)據(jù)進(jìn)行處理得到二分類數(shù)據(jù),將設(shè)計(jì)需求與模型實(shí)例的每項(xiàng)特征的差異視為影響用戶選擇的因素,利用GBDT+LR模型預(yù)測(cè)模型實(shí)例的點(diǎn)擊概率;最后基于用戶的行為數(shù)據(jù)規(guī)模,將2種算法的結(jié)果動(dòng)態(tài)組合得到最終推薦結(jié)果。
地鐵車站按專業(yè)劃分設(shè)計(jì)活動(dòng),是一個(gè)龐大、復(fù)雜的工程體,在設(shè)計(jì)工作開始之前需要針對(duì)各專業(yè)的設(shè)計(jì)內(nèi)容進(jìn)行大量的需求調(diào)研和論證,保證工程的建設(shè)能夠滿足預(yù)期建設(shè)要求。這些需求會(huì)被轉(zhuǎn)換成模型中的設(shè)計(jì)參數(shù),其中重要的特征參數(shù)不僅包含了屬性信息,還包含了豐富的工程語義。因此,可以使用這些重要特征參數(shù)對(duì)專業(yè)模型進(jìn)行整體描述。部分專業(yè)重要特征參數(shù)如表1所示。
表1 專業(yè)模型重要特征參數(shù)
Revit是當(dāng)前主流的BIM建模軟件,程序可以通過Revit提供的API訪問模型中的詳細(xì)設(shè)計(jì)參數(shù)[16]。為了保障BIM模型的共享與重用,為后續(xù)推薦計(jì)算提供數(shù)據(jù)基礎(chǔ),利用Revit API開發(fā)Revit插件,實(shí)現(xiàn)BIM云平臺(tái)與建模軟件的銜接。用戶在建模軟件中完成模型設(shè)計(jì)后會(huì)通過插件將模型數(shù)據(jù)上傳至BIM云平臺(tái)。平臺(tái)通過FastDFS文件管理系統(tǒng)和MySQL數(shù)據(jù)庫分別存儲(chǔ)BIM模型文件以及相應(yīng)的特征參數(shù)數(shù)據(jù),BIM模型云儲(chǔ)存結(jié)構(gòu)如圖1所示。
圖1 BIM數(shù)據(jù)云儲(chǔ)存
因?yàn)樘卣鲄?shù)無法完整地描述BIM模型內(nèi)部的結(jié)構(gòu)、屬性,具有一定的局限性,所以可以將工程看作一個(gè)灰色系統(tǒng),使用灰色關(guān)聯(lián)度模型計(jì)算設(shè)計(jì)需求與BIM模型實(shí)例的關(guān)聯(lián)度。但是灰色關(guān)聯(lián)模型中每一個(gè)子因素各點(diǎn)關(guān)聯(lián)系數(shù)的權(quán)重會(huì)直接影響最終的分析結(jié)果,所以合理確定各指標(biāo)權(quán)重是確保算法精準(zhǔn)度的關(guān)鍵[17-18]。熵權(quán)法可以利用特征的熵值客觀地進(jìn)行權(quán)重計(jì)算,能夠充分利用數(shù)據(jù)本身的信息[19]。
設(shè)模型實(shí)例庫中某一專業(yè)有n個(gè)候選實(shí)例,每個(gè)實(shí)例由m個(gè)主要特征進(jìn)行描述,模型實(shí)例i用特征向量Ai=(ai1,ai2,…,aij,…,aim)表示,其中i=1,2,…,n,j=1,2,…,m。對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理后,計(jì)算第j項(xiàng)特征參數(shù)下第i個(gè)模型實(shí)例特征值在n個(gè)候選實(shí)例中的比重,公式如下:
(1)
隨后計(jì)算第j項(xiàng)特征的熵值。
(2)
根據(jù)第j項(xiàng)特征的熵值Hj計(jì)算差異系數(shù),公式如下:
αj=1-Hj
(3)
設(shè)特征權(quán)值向量W=(w1,w2,…,wm),則第j項(xiàng)特征的權(quán)重為:
(4)
設(shè)模型需求向量用T=(t1,t2,…,tm)表示,則模型需求與模型實(shí)例i的某一特征j的相似度ξi(j)可以表示為:
(5)
式中,ρ為分辨系數(shù),引入它是為了避免計(jì)算受極值影響,通常ρ∈[0,1],一般取ρ≤0.5。
將得到的工程特征的權(quán)重wj代入灰色關(guān)聯(lián)度模型中進(jìn)行推薦度計(jì)算。最終得到模型實(shí)例與設(shè)計(jì)需求的匹配度為:
(6)
1)交互數(shù)據(jù)處理。
用戶通過在平臺(tái)中輸入需求模型的特征參數(shù)作為參考模型的推薦依據(jù)。設(shè)當(dāng)前需求模型與推薦列表中某一模型實(shí)例的差異向量為D=(d1,d2,…,dm)。對(duì)于類型參數(shù),為設(shè)計(jì)需求與候選模型的特征值的每種組合分配固定序號(hào),在計(jì)算類型特征差異時(shí)取對(duì)應(yīng)組合的序號(hào)。對(duì)于數(shù)值類參數(shù)其計(jì)算公式如下:
di=|ai-ti|
(7)
如果第i項(xiàng)特征越重要,則di對(duì)用戶的決策影響越大。如果模型實(shí)例未被采納,則說明D表示的差異較大,是用戶不選擇的;如果模型實(shí)例被瀏覽時(shí)間較長(zhǎng)或者被采納為參考模型,意味著D代表的差異是用戶選擇的。而D的選擇概率即為相應(yīng)模型實(shí)例的點(diǎn)擊率,可以作為該實(shí)例的推薦度輸出。根據(jù)設(shè)定的時(shí)間閾值及用戶的交互行為,計(jì)算得到差異向量,并標(biāo)記成正負(fù)樣本。
2)GBDT算法。
GBDT算法是一種集成學(xué)習(xí)算法,使用多個(gè)CART回歸樹作為基學(xué)習(xí)器,線性地對(duì)預(yù)測(cè)結(jié)果殘差進(jìn)行優(yōu)化,該算法在發(fā)現(xiàn)有區(qū)分的特征方面具有明顯的優(yōu)勢(shì)[20]。
將準(zhǔn)備的二分類數(shù)據(jù)作為訓(xùn)練集,設(shè)為{(d1,y1),(d2,y2),…,(dn,yn)};模型損失函數(shù)為L(zhǎng)(y,f(x))。
設(shè)γ為一個(gè)常數(shù),模型初始化為:
(8)
迭代訓(xùn)練模型的過程如下:
對(duì)k=1,2,…,K(其中K代表迭代次數(shù)),然后循環(huán)執(zhí)行以下4步:
①對(duì)i=1,2,…,n,負(fù)梯度誤差為rki:
(9)
②針對(duì)rki擬合一棵CART樹Tk,其葉子節(jié)點(diǎn)區(qū)域?yàn)镽kj。
③對(duì)回歸樹Tk的葉子節(jié)點(diǎn)j=1,2,…,J,計(jì)算最佳擬合值:
γkj=arg min∑di∈RkjL(yi,fk-1(di)+γ)
(10)
④更新f(xi)的值:
(11)
得到最終的回歸樹,即:
f(d)=fK(d)
(12)
3)LR算法。
LR是一種廣義的線性回歸分析模型,使用sigmoid函數(shù)使得模型輸出結(jié)果映射到(0,1)區(qū)間,能夠預(yù)測(cè)模型實(shí)例被采納的概率。設(shè)回歸系數(shù)為θ(θ0,θ1,…,θn),則:
y=θTd=θ0+θ1d1+θ2d2+…+θndn
(13)
構(gòu)造預(yù)測(cè)函數(shù)為:
(14)
取極大似然函數(shù)為:
(15)
極大似然函數(shù)取對(duì)數(shù)得到函數(shù)l(θ),極大似然估計(jì)是求使得l(θ)值最大的θ,因此設(shè)LR的損失函數(shù)為:
(16)
通過系數(shù)-1/n使得J(θ)為最小值時(shí)的θ為所需的最優(yōu)值。最后,使用梯度下降算法完成參數(shù)求解。
4)GBDT融合模型。
在大量的用戶交互數(shù)據(jù)支撐下,LR算法可以對(duì)模型實(shí)例的采納概率進(jìn)行預(yù)測(cè)[21]。但是地鐵工程中各專業(yè)模型的特征參數(shù)數(shù)目較多,而LR算法的學(xué)習(xí)能力有限,受特征選取的影響較大,因此需要利用GBDT算法先行挖掘有區(qū)分度的特征及特征組合,進(jìn)一步提高LR算法的精準(zhǔn)度。
GBDT模型訓(xùn)練完成后,并不以分類概率作為輸出,而是將每棵CART樹中樣本輸出所屬的葉子節(jié)點(diǎn)的位置標(biāo)記為1,其他節(jié)點(diǎn)為0,從而組成一個(gè)新的向量并輸出。將所有的樣本的新向量作為L(zhǎng)R模型的訓(xùn)練集,由訓(xùn)練完成的LR模型輸出模型實(shí)例的推薦度。模型訓(xùn)練全過程如圖2所示。
圖2 GBDT-LR融合模型訓(xùn)練過程
在平臺(tái)運(yùn)行初期,訓(xùn)練數(shù)據(jù)較為缺乏,GDBT-LR融合模型對(duì)用戶行為的擬合效果并不理想,此時(shí)以熵權(quán)灰色關(guān)聯(lián)模型的輸出結(jié)果為主。但是隨著訓(xùn)練數(shù)據(jù)的不斷增多,GDBT-LR融合模型對(duì)用戶的行為預(yù)測(cè)的精準(zhǔn)度不斷提高,此時(shí)應(yīng)該把算法計(jì)算依據(jù)從利用特征參數(shù)本身信息不斷過度到利用用戶交互數(shù)據(jù)。本文將訓(xùn)練集數(shù)量與實(shí)例數(shù)量和其特征參數(shù)乘積的比值作為動(dòng)態(tài)權(quán)重平衡因子,即依據(jù)訓(xùn)練集規(guī)模動(dòng)態(tài)調(diào)整組合權(quán)重,公式如下:
si=(1-a)×gi+a×Pi
(17)
(18)
其中Iu代表用戶交互行為的集合。混合推薦度計(jì)算的步驟如表2所示。
表2 混合推薦度計(jì)算
本實(shí)驗(yàn)采用的數(shù)據(jù)來源于城市軌道交通BIM協(xié)同平臺(tái)。首先,從平臺(tái)數(shù)據(jù)庫中獲取了263個(gè)建筑專業(yè)BIM模型實(shí)例,其中建筑專業(yè)模型的特征參數(shù)共13個(gè),分別為車站類型、車站層數(shù)、車站總面積、頂板覆土厚度、設(shè)計(jì)客流量、站臺(tái)類型、換乘形式、站臺(tái)寬度、站臺(tái)計(jì)算長(zhǎng)度、橫向柱數(shù)、自動(dòng)扶梯數(shù)量、風(fēng)亭數(shù)量、出入口數(shù)量。
從平臺(tái)日志文件中獲取建筑專業(yè)用戶交互日志數(shù)據(jù)6725條,包含了用戶產(chǎn)生交互行為的時(shí)間戳、被瀏覽模型的ID、用戶當(dāng)前項(xiàng)目的ID、瀏覽時(shí)長(zhǎng)、候選模型是否被采納。先將獲取的用戶交互數(shù)據(jù)集按照3.2節(jié)中描述的方法進(jìn)行處理,得到二分類訓(xùn)練集。隨后,使用One-Hot編碼處理類型特征參數(shù),為預(yù)測(cè)模型的訓(xùn)練做準(zhǔn)備。使用五折交叉驗(yàn)證法進(jìn)行模型評(píng)估,取各次實(shí)驗(yàn)的評(píng)估結(jié)果的平均值。
本文使用AUC(Area Under Curve)和對(duì)數(shù)損失(Logloss)2個(gè)指標(biāo)來衡量預(yù)測(cè)模型在本文應(yīng)用場(chǎng)景的表現(xiàn)。AUC是ROC(Receiver Operating Characteristic)曲線所覆蓋的區(qū)域面積,AUC值越大,則說明模型預(yù)測(cè)效果越好,其計(jì)算公式如下:
(19)
其中,ranki代表輸入樣本的序號(hào),M表示正類樣本個(gè)數(shù),N為負(fù)類樣本個(gè)數(shù)。
對(duì)數(shù)損失(Logloss)通過懲罰錯(cuò)誤的分類,實(shí)現(xiàn)對(duì)分類器的準(zhǔn)確度的量化,是對(duì)預(yù)測(cè)概率的似然估計(jì),所以使用Logloss可以衡量模型輸出的概率意義,其值為:
(20)
其中,yi為某輸入樣本的真實(shí)標(biāo)簽,Pi為預(yù)測(cè)該樣本是正類樣本的概率。Logloss可以衡量預(yù)測(cè)結(jié)果和真實(shí)結(jié)果的差異,取值越小則說明模型的預(yù)測(cè)效果越好。
在推薦系統(tǒng)的評(píng)價(jià)中,準(zhǔn)確率是常用的測(cè)試指標(biāo),本文采用該指標(biāo)對(duì)算法的表現(xiàn)進(jìn)行評(píng)估。其計(jì)算方式為:
(21)
其中,Nrs表示推薦列表中用戶訪問的模型實(shí)例數(shù)量,Ns表示推薦列表的模型數(shù)量。
本文算法是由熵權(quán)灰色關(guān)聯(lián)模型和GBDT-LR融合模型線性組合而成,其目的是發(fā)揮各模型的優(yōu)勢(shì),分別用于在初期解決系統(tǒng)冷啟動(dòng)以及在后期提高算法推薦質(zhì)量。因此,為了驗(yàn)證本文方法的有效性,需要驗(yàn)證該方法在2種不同階段下的推薦效果。
預(yù)測(cè)模型負(fù)責(zé)在系統(tǒng)收集到足夠用戶交互數(shù)據(jù)后的推薦度計(jì)算,因此需要檢驗(yàn)本文采用的預(yù)測(cè)模型在應(yīng)用場(chǎng)景下的推薦質(zhì)量。除了LR模型和GBDT模型,因子分解機(jī)模型(FM)[22]、隨機(jī)森林模型(RF)[23]也是目前常用的CTR預(yù)測(cè)模型。為了對(duì)比各預(yù)測(cè)模型的表現(xiàn),使用各模型的AUC值及Logloss值進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如表3所示。
表3 模型預(yù)測(cè)對(duì)比試驗(yàn)
從表3可看出,單獨(dú)的LR模型表現(xiàn)最差,F(xiàn)M模型通過學(xué)習(xí)特征兩兩之間的隱含信息,表現(xiàn)優(yōu)于LR模型。基于集成學(xué)習(xí)的GBDT、RF表現(xiàn)更好,但是GBDT-LR融合模型利用GBDT增強(qiáng)了LR的非線性學(xué)習(xí)能力,其AUC值及Logloss值的表現(xiàn)在所有模型中表現(xiàn)最好。
GBDT-LR融合模型屬于有監(jiān)督學(xué)習(xí),缺乏足夠的訓(xùn)練集時(shí)無法用于推薦度計(jì)算。因此,本文基于預(yù)測(cè)模型構(gòu)建混合推薦算法,避免系統(tǒng)冷啟動(dòng)問題。隨機(jī)抽取20%、40%、60%、80%的訓(xùn)練集,模擬算法在平臺(tái)中的應(yīng)用,從缺乏用戶交互數(shù)據(jù)的初期到收集到足夠訓(xùn)練數(shù)據(jù)的后期,觀察混合推薦算法在準(zhǔn)確率上的表現(xiàn),實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 算法應(yīng)用效果
在訓(xùn)練集規(guī)模為0~20%期間,推薦度計(jì)算以熵權(quán)灰色關(guān)聯(lián)模型為主,從圖3中可看出該算法具有一定的推薦精準(zhǔn)度,避免了系統(tǒng)冷啟動(dòng)問題,當(dāng)然僅依據(jù)模型特征參數(shù)等基本信息進(jìn)行計(jì)算,具有一定的局限性。當(dāng)訓(xùn)練集增長(zhǎng)到40%時(shí),GBDT-LR融合模型能夠較為準(zhǔn)確地預(yù)測(cè)用戶的交互行為,通過動(dòng)態(tài)平衡因子的調(diào)整,GBDT-LR融合模型的輸出結(jié)果不斷占據(jù)主導(dǎo)地位,推薦的準(zhǔn)確率不斷提高。
本文提出了一種基于模型特征的BIM模型混合推薦算法。該算法使用BIM模型中重要的特征參數(shù)BIM模型進(jìn)行整體描述,通過訓(xùn)練數(shù)據(jù)集的規(guī)模動(dòng)態(tài)地將熵權(quán)灰色關(guān)聯(lián)法與GBDT-LR融合模型相結(jié)合,有效地避免了預(yù)測(cè)模型在平臺(tái)初期應(yīng)用時(shí)由于缺乏訓(xùn)練集導(dǎo)致精準(zhǔn)度不高的問題,在此基礎(chǔ)上利用GBDT-LR融合模型進(jìn)一步提高了BIM模型實(shí)例的推薦精度。