李亞鵬,李敬花,張子祥,周青驊
1.哈爾濱工程大學(xué) 機電工程學(xué)院,黑龍江 哈爾濱 150001
2.哈爾濱工程大學(xué) 船舶工程學(xué)院,黑龍江 哈爾濱 150001
隨著海上生活服務(wù)平臺、旅游平臺、大型郵輪等具有高密集度人群的船海類產(chǎn)品不斷發(fā)展,船上服務(wù)行業(yè)的重要性日趨突出,越來越多的遠洋客船開始利用智能化、網(wǎng)絡(luò)化的手段開發(fā)網(wǎng)絡(luò)化服務(wù)系統(tǒng),為船上乘員提供服務(wù)。同時,乘員在船上生活中的個性化服務(wù)需求日益增加,如何結(jié)合乘員自身特征為其提供個性化的服務(wù)成為船上網(wǎng)絡(luò)化服務(wù)系統(tǒng)亟需解決的問題。推薦系統(tǒng)的概念提出后,在電子商務(wù)、菜品、音樂推薦等方面得到了廣泛的應(yīng)用,但結(jié)合船上服務(wù)的特殊環(huán)境,存在以下問題:
1)對首次登船乘員產(chǎn)生的服務(wù)推薦困難問題。由于遠洋客船服務(wù)環(huán)境的特殊性,多數(shù)遠洋客船在近幾年逐漸應(yīng)用網(wǎng)絡(luò)化服務(wù)軟件為乘員提供服務(wù)。多數(shù)乘員均為首次登船,且對于船上網(wǎng)絡(luò)化服務(wù)軟件的使用同樣尚屬首次。網(wǎng)絡(luò)化服務(wù)軟件無法獲取這些乘員的服務(wù)偏好,無法為乘員提供個性化服務(wù)。
2)服務(wù)資源使用率問題。船上各類服務(wù)項目存在流行度差異,部分熱門服務(wù)可能因為船上乘員過多存在排隊時間長、人員擁堵等現(xiàn)象。如果按照傳統(tǒng)的推薦方式向乘員推薦船上服務(wù)項目,許多冷門的服務(wù)項目可能會因為流行度較低而不被人關(guān)注。面向擁有小眾愛好的乘員,無法真正為其進行個性化推薦。
船上乘員首次登船產(chǎn)生的服務(wù)推薦困難問題是典型的新用戶冷啟動問題。針對冷啟動問題國內(nèi)外已經(jīng)進行了大量研究,并且在我們?nèi)粘J褂玫挠啿图百徫锏绕脚_上已經(jīng)應(yīng)用,部分依然存在過擬合的問題,不能很好地滿足用戶的需求。關(guān)于冷啟動模式研究還在不斷發(fā)展,其中包括基于項目流行度、項目評分、用戶參與、輔助數(shù)據(jù)、多媒體信息推薦、跨領(lǐng)域推薦等傳統(tǒng)方式[1-2];也包含有融合用戶偏好屬性、熱門物品懲罰因子、項目流行度的改進冷啟動推薦模型[3-4],通過融合推薦項目屬性信息、反向信息[5]或統(tǒng)計學(xué)信息[6]來進一步提高推薦準確程度。隨著冷啟動問題的深入研究,研究人員通過對基本的策略方法整合改進,建立了針對用戶獲得推薦信息前后場景動態(tài)變化的模型[7],包括考慮動態(tài)情景和動態(tài)時間的推薦策略方法[8];另一方面也有通過融合條件構(gòu)建主體進行主體建模的方法[9-10],對不同以及新進用戶進行高效推薦,更好地解決冷啟動問題。為使船上乘員能夠更好地享受船上服務(wù),充分利用船上各類服務(wù)項目資源,提高船上網(wǎng)絡(luò)化服務(wù)系統(tǒng)推薦質(zhì)量[11],本文將結(jié)合某國產(chǎn)大型客船船上服務(wù)智慧社區(qū)系統(tǒng)研發(fā)項目,針對面向乘員的船上服務(wù)冷啟動個性化推薦系統(tǒng)部分進行研究。通過將人口統(tǒng)計學(xué)方法和乘員初始標簽與傳統(tǒng)協(xié)同過濾推薦算法相結(jié)合的方式,進行乘員群體的預(yù)處理,同時根據(jù)項目的流行度和客容量對推薦內(nèi)容進行實時調(diào)整,以達到對乘員的個性化推薦效果。
對于冷啟動推薦系統(tǒng),除了通過利用注冊用戶提交的基本信息,還可以結(jié)合用戶對初始采集時特定項目的評分和瀏覽記錄來引導(dǎo)乘員進行興趣顯示,設(shè)置初始化界面。目前,多數(shù)用戶為獲得軟件或網(wǎng)站提供的個性化推薦信息,不介意提供個人的性別、年齡、職業(yè)、教育背景和興趣愛好等相對不敏感的信息;更多的軟件通過QQ、微信等社交軟件進行登陸,這種方式能夠獲得更加完善的用戶信息?;谌丝诮y(tǒng)計學(xué)的推薦算法是將用戶的性別、年齡、職業(yè)、地區(qū)等信息構(gòu)建用戶特征模型,并根據(jù)特征模型來計算用戶之間的相似性,從而找到相似用戶,獲得推薦信息,其基本流程圖1 所示。
圖1 基于人口統(tǒng)計學(xué)算法基本
基于人口統(tǒng)計學(xué)的推薦算法不需要歷史數(shù)據(jù),沒有用戶冷啟動問題,也不依賴于物品屬性。但由于算法采樣信息比較局限,獲取信息精確度不夠,不能夠保證提供準確且根據(jù)用戶習(xí)慣調(diào)整的推薦模型。因此本文設(shè)計的推薦系統(tǒng)在初始時刻考慮用戶地區(qū)、年齡、職業(yè)等信息進行層次聚類以確定相似群體作為用戶首次使用的推薦依據(jù)[12],并且通過初始興趣愛好標簽采集作為推薦打分的一部分,而后用戶的個性化需求還需要與其他推薦算法結(jié)合使用,從而得到更加準確的推薦結(jié)果。
協(xié)同過濾算法通??梢苑譃榛谟脩舻膮f(xié)同過濾算法(user-based collaborative filtering,UBCF)(如圖2)和基于物品的協(xié)同過濾算法(item-based collaborative filtering,IBCF)[13]2 種類型。結(jié)合船上服務(wù)特點,本文將采用基于用戶的協(xié)同過濾算法,以用戶偏好的信息作為輸入數(shù)據(jù)集,通過選擇相似度計算方式對相似度進行量化計算得到最近鄰用戶集,以此為用戶推薦個性化的服務(wù)項目。
圖2 基于用戶的協(xié)同過濾算法
相似度計算需要找到目標用戶的最近鄰用戶集,最終為目標用戶生成一組推薦。通常包括以下3 個步驟。
1)用戶數(shù)據(jù)表示。使用m×n階矩陣來表示用戶的評分信息,如表1 所示。評分分為5 個等級,其中一般是以1~5 的整數(shù)取值,用以表示用戶對偏好的喜愛程度。
2)相似性計算。計算用戶間相似性的目的是為目標用戶找到最鄰近的用戶集,相似度一般用sim(s,t)來表示,在進行相似度計算時有歐式距離、余弦相似度和Pearson 相關(guān)系數(shù)等方法[14]。
歐式距離法。歐氏距離法通過計算2 點間的絕對距離來衡量相似性,用一行n列的行向量Au來表示用戶u對所有項目的評分,其計算公式如下
式中:Au和Av表示用戶u、v的特征向量;sim(u,v)值越大,說明用戶間相似性越高。
余弦相似度法。通過2 個用戶向量的夾角余弦值大小來量化用戶之間的相似度,通過計算可得其余弦角越大相似度越高。余弦相似性的計算公式為
Pearson 相關(guān)系數(shù)法。設(shè)用戶u、v進行過相同評分的集合為I,則用戶u、v之間的 sim(u,v)可通過Pearson 系數(shù)進行計算。其計算公式為
式中:Ru,i、Rv,i分別表示用戶u、v對偏好項目i的評分,和分別表示用戶u、v對所有項目的平均評分。
3)生成推薦序列。選擇一種相似度計算方式計算用戶之間的相似度得到最近鄰用戶集,用Pu,i表示用戶u對偏好項目i的預(yù)測評分,可通過用戶u對最近鄰集合U中用戶的評分加權(quán)相似度的值得到。其計算公式為
根據(jù)項目需求情況采用單個項目的相似度或者平均相似度作為依據(jù)標準,選擇評分最高的個偏好項目推薦給目標用戶。
為緩解乘員首次登船時產(chǎn)生的冷啟動問題,對基于人口統(tǒng)計學(xué)的推薦算法進行改進。在考慮用戶屬性對相似度的影響時,會存在如用戶a和用戶b在用戶性別、年齡等基礎(chǔ)屬性上差異較大,但興趣愛好類似的情況。由此考慮在推薦船上服務(wù)項目時,興趣愛好這一屬性的權(quán)值應(yīng)大于乘員基本屬性。因此,在乘員首次登船使用船上網(wǎng)絡(luò)化服務(wù)軟件或系統(tǒng)時,提供愛好標簽供乘員進行選擇,記錄乘員的興趣愛好標簽信息。
乘員在登船時,通過乘員注冊信息可以獲取到的用戶基本屬性包括年齡、性別、職業(yè),如表2所示。原始的乘員人口統(tǒng)計學(xué)信息需要處理后使用。
表2 乘員人口統(tǒng)計學(xué)信息
乘員年齡。首先根據(jù)年齡段對乘員年齡信息進行處理,將乘員年齡劃分為7 組數(shù)據(jù)(用數(shù)值1—7 表示):年齡小于18 歲、年齡18~25 歲、年齡26~33 歲、年齡34~41 歲、年齡42~49 歲、年齡50~57歲以及年齡58 歲及以上。
乘員性別。性別男(M)、女(F)分別用1、0表示。
乘員職業(yè)。原有乘員表中有X個分類,根據(jù)《中華人民共和國職業(yè)分類大典》,將所有乘員職業(yè)分為7 類,使用數(shù)字1—7 表示。
用戶屬性差異度值越大,說明用戶間相似性越高。
乘員在首次使用船上網(wǎng)絡(luò)化服務(wù)軟件或系統(tǒng)時,選擇個人的愛好屬性標簽,即通過字段來描述這一屬性。通過用戶標簽與已有用戶選擇標簽的情況進行對比分析得到之間的相似度情況,并將得到的相似度情況作為首次使用的推薦情況,計算公式為
式中:n為可供選擇的所有標簽數(shù),k為目標用戶s與已有用戶t之間共有標簽的數(shù)量。
在進行用戶間相似度計算時,引入權(quán)重系數(shù)W,用來調(diào)節(jié)不同屬性在進行相似度計算時各自所占的權(quán)重[15]。為保證算法在目標用戶產(chǎn)生評分信息后仍然能夠持續(xù)地進行推薦,將上述根據(jù)用戶屬性的相似度計算方法與Pearson 相關(guān)系數(shù)法結(jié)合,形成的用戶s和t之間的相似度計算方法為
式中w1+w2+w3=1。
目標用戶項目評分預(yù)測:在完成目標用戶與現(xiàn)有用戶相似度計算后,按照相似度從高到低選取K個用戶作為目標用戶的近鄰用戶集,記為Ni=(N1,N2,···,NK),同時,合并所有近鄰用戶Ni的評分項目集合為C。
對所有船上項目x屬于集合C,計算目標用戶的預(yù)測評分,計算公式為
式中:Pi,x為目標用戶i對項目x的預(yù)測評分,Rx為用戶i的近鄰集,Rj,x為用戶j對項目x的評分,sim(i,j)為用戶i與用戶j之間的相似性。
將目標用戶對其近鄰項目集合C中所有項目的預(yù)測評分按照按降序進行排序,選取前N個項目作為目標用戶的推薦序列。
前述研究中,基于船上新乘員的人口統(tǒng)計學(xué)數(shù)據(jù)以及喜好標簽信息,初始化其與其他乘客的相似度列表,得到最近鄰用戶集,以此來預(yù)測新乘客的偏好信息。但是,在整個過程中,船上不同偏好項目的權(quán)重始終保持為一種狀態(tài)是不合理的。因為從社會學(xué)角度來看,所有事物都遵循著“馬太效應(yīng)”。比如在電商網(wǎng)站中,流行的商品容易被更多人購買,同時冷門的商品則會變得愈加不被人們發(fā)現(xiàn)與了解,顯然這并不符合個性化推薦的初衷。船上各類服務(wù)項目預(yù)設(shè)有每日客容量屬性,但由于存在流行度差異,部分熱門服務(wù)可能因為船上乘員過多前往而導(dǎo)致出現(xiàn)排隊時間長、人員擁堵等現(xiàn)象。以此在進行推薦模型建立的過程中也需要避免產(chǎn)生過擬合的情況,即為所有用戶都推薦最熱門的項目的同時需要考慮船上服務(wù)項目容量屬性,并進行均衡??紤]到一些用戶的個性化需求的特點,冷門項目的推薦則更能體現(xiàn)系統(tǒng)針對用戶的細微特點偏好提供的優(yōu)質(zhì)服務(wù)特性,同時避免了過量用戶非個性化興趣的數(shù)據(jù)所占權(quán)重過大情況。
在船上各類服務(wù)項目使用過程中,船上網(wǎng)絡(luò)化服務(wù)系統(tǒng)能夠采集到所有項目每日使用情況,結(jié)合項目預(yù)設(shè)每日客容量,在目標用戶項目評分預(yù)測公式中引入考慮項目流行度和客容量的權(quán)重因子。船上項目x預(yù)設(shè)每日客容量為m,實際每日接待乘員數(shù)量為n,權(quán)重因子計算僅統(tǒng)計最近30 d乘員使用數(shù)據(jù)。將每個項目的平均使用率作為項目流行度,則Qx=n/m為每日項目使用率,Qˉx為近30 d 內(nèi)該項目的每日平均使用率,即該項目在近30 d 內(nèi)的流行度。用Qmin表示最不流行項目的流行度,Qmax表示最流行項目的流行度,則項目流行度和客容量的權(quán)重因子為
因此,將考慮項目流行度和客容量的權(quán)重因子添加到目標用戶評分預(yù)測公式中進行修正,得到新的評分預(yù)測公式:
通過加入項目流行度作為約束條件對模型進行改進得到新的最近鄰項目集合,將目標用戶對其近鄰項目集合C中所有項目的預(yù)測評分按照降序進行排序,取前N個項目作為目標用戶的推薦序列。
本文所介紹船上推薦服務(wù)系統(tǒng)通過與某國產(chǎn)大型客船船上服務(wù)智慧社區(qū)系統(tǒng)研發(fā)項目相結(jié)合,并與船上訂餐系統(tǒng)和船上導(dǎo)航系統(tǒng)實現(xiàn)集成兼容,作為系統(tǒng)子環(huán)節(jié)進行乘客服務(wù),面向大型郵輪、客船人員密集、對服務(wù)質(zhì)量要求高的特點,進行針對性的冷啟動服務(wù),以提供更好的用戶體驗。系統(tǒng)主要功能界面如圖3 所示。
圖3 高技術(shù)客船網(wǎng)絡(luò)化服務(wù)平臺主功能界面
本文驗證設(shè)備及環(huán)境參數(shù)如下:操作系統(tǒng)為windows10-64 bits,環(huán)境配置為Anaconda3、Python3.8.8,處理器為intel i7-8550U,內(nèi)存為 8 GB。
在對所設(shè)計推薦算法的具體驗證中結(jié)合船舶智能化推薦服務(wù)中需求,本文將以菜品推薦為例進行面向冷啟動乘員的船上服務(wù)個性化推薦方法驗證分析,其中測試數(shù)據(jù)集選擇來自大眾點評,數(shù)據(jù)信息說明如表3 所示,用戶評分數(shù)據(jù)格式如表4 所示。
表3 數(shù)據(jù)信息說明
表4 用戶評分數(shù)據(jù)格式
測試數(shù)據(jù)集由restaurants、ratings 和links 這3 個部分數(shù)據(jù)構(gòu)成,其中rating 部分包含口味評分rating_flavor、環(huán)境評分rating_env 和服務(wù)評分rating_service。本文只選擇利用口味評分作為打分依據(jù),通過對數(shù)據(jù)(其中包括缺失數(shù)據(jù)及異常數(shù)據(jù)清理)預(yù)處理,針對餐廳評分數(shù)據(jù)進行匹配推薦,將推薦結(jié)果通過映射關(guān)系為特色菜品評分,從而滿足本文實驗驗證分析需要。
1)進行人口統(tǒng)計學(xué)分類處理。如表2 所示,通過在系統(tǒng)初始冷啟動階段對乘員人口統(tǒng)計學(xué)信息的收集,對其中包括年齡、性別、職業(yè)、地區(qū)及與菜品口味的關(guān)聯(lián)情況進行聚類分析。此處針對菜品推薦,選擇將國內(nèi)地區(qū)作為主要因素進行差異性層次系統(tǒng)服務(wù)進行層次聚類分析,劃分不同口味。淡味區(qū):江蘇、浙江、上海、福建、廣東、香港、澳門;微辣區(qū):山東、江西、北京、廣西、陜西、寧夏、甘肅、青海、新疆;重辣區(qū):湖北、湖南、貴州,重慶、四川;多味區(qū):河南、安徽、河北、天津、黑龍江、吉林、遼寧、內(nèi)蒙古、西藏、云南、海南、臺灣。根據(jù)K-means 聚類結(jié)果,將每個類組作為考慮項目流行度和客容量的協(xié)同過濾推薦系統(tǒng)的輸入數(shù)據(jù)進行處理,以提高系統(tǒng)在冷啟動時的推薦精度。輸入數(shù)據(jù)經(jīng)過處理表現(xiàn)形式通常為1 個如表1 格式的i×j的用戶評價矩陣,其中i是乘員數(shù),j是菜品數(shù),Matrix[i,j]表示第i個乘員對第f個菜品的評價。
2)進行基于協(xié)同過濾算法的推薦。程序具體實現(xiàn)步驟如圖4 所示。
圖4 協(xié)同過濾步驟
在結(jié)合數(shù)據(jù)集進行算法驗證過程中通過設(shè)置用戶1 為目標推薦用戶進行推薦,其中關(guān)于目標用戶1 的相關(guān)數(shù)據(jù)如表5 所示。通過上述所設(shè)計模型得到推薦結(jié)果如表6 所示,其中設(shè)置相鄰用戶n為6,設(shè)置推薦個數(shù)k為4。
表5 目標推薦用戶1 相關(guān)數(shù)據(jù)
表6 推薦結(jié)果
本文通過對船上服務(wù)冷啟動進行分析,建立服務(wù)推薦模型,在傳統(tǒng)協(xié)同過濾推薦算法基礎(chǔ)上,結(jié)合人口統(tǒng)計學(xué)方法和乘員初始標簽選擇,實現(xiàn)對新乘員進行個性化推薦,進而提升乘員的服務(wù)體驗。通過在實際海上客運服務(wù)系統(tǒng)中進行實例驗證,證明可用于船舶服務(wù)智能化推薦。
本文研究方法可使船上乘員能夠更好地享受船上服務(wù),充分利用船上各類服務(wù)項目資源,提高船上網(wǎng)絡(luò)化服務(wù)系統(tǒng)推薦質(zhì)量。本文方法仍需做進一步改進研究,存在諸如針對每種服務(wù)仍然要進行不同的人口統(tǒng)計學(xué)分析,進行菜品推薦時地區(qū)因素所占權(quán)重較高,但在進行電影推薦時年齡及性別因素所占權(quán)重就要大于地區(qū),這些問題都有待進一步優(yōu)化服務(wù)場景,以進行更加準確的相似度計算。此外,對不同船上服務(wù)項目推薦實現(xiàn)需要與船上服務(wù)項目客容量、交通等設(shè)施的動態(tài)變化相融合,通過對用戶屬性權(quán)重進行動態(tài)調(diào)整以達到更好的推薦效果。