潘王蕾,何 瑛*,2
(1.浙江理工大學 服裝學院,浙江 杭州 310018; 2.浙江理工大學 絲綢文化傳承與產品設計數字化技術文化和旅游部重點實驗室,浙江 杭州 310018)
隨著生活水平的不斷提高,人們的消費需求逐步個性化。同時,服裝的品類和產量不斷增加,消費者網購時需要花費大量的精力與時間才能找到心儀的商品,因此服裝個性化推薦至關重要。服裝個性化系統可以根據用戶的需求和偏好推薦服裝,減少消費者檢索時間,提高購物效率,增加其對所推薦服裝的購買意愿。
服裝個性化推薦模型主要由服裝信息獲取和服裝推薦算法組成。服裝信息獲取主要采用視覺圖像識別的方法識別服裝屬性特征,或通過數據爬取、信息挖掘等方式構建推薦模型[1-2]。服裝推薦算法主要用于服裝屬性特征的評價權重分析以及服裝屬性信息的聚類研究。例如,胡覺亮等[3]、單毓馥等[4]根據用戶權重給服裝打分,并推薦評分最高的服裝給顧客。也有學者通過對用戶偏好進行聚類產生用戶集合,結合服裝基礎特征語義推薦合適的服裝,以提高推薦準確率[5-6]。但上述大部分研究忽略了服裝在購物環境中呈現的外在屬性,如服裝品牌、服裝銷售渠道以及在線評論等,這些也是影響用戶購買意愿的因素之一。蔡麗玲等[7]提出,線上評論內容對消費者購買意愿有顯著影響。因此,可以通過在服裝推薦系統中添加輔助信息來補全服裝屬性,而知識圖譜通常包含商品屬性以及各項目之間的關系,通過知識圖譜中豐富的商品語義,可以深入挖掘用戶的潛在興趣。
知識圖譜是2012年由Google正式提出的,用來描述真實世界中存在的各種實體或概念以及它們之間的關系。知識圖譜通常采用三元組
文中提出了知識圖譜在服裝個性化推薦領域的應用方法,結合專家意見、文獻資料以及平臺調研數據,把在線評論情感分析加入服裝屬性中,從電商平臺獲取服裝數據,構建服裝領域知識圖譜,全方位描述服裝、用戶信息,構建兩者間的關系,為服裝個性化推薦提供新思路,從而提高消費者購買意愿。
在大數據時代,知識圖譜是一種重要的知識表達形式,它通過符號對現實世界進行抽象表達。知識圖譜主要采用自頂向下和自底向上兩種構建模式[13],其中自頂向下模式是在定義實體屬性及其相互關系后,進行知識圖譜數據的抽取和構建;自底向上模式是指從底層對實體或事件進行歸納后,向上逐步建立實體關系,從而得到知識圖譜。將兩種方式結合構建知識圖譜,可以使多源數據根據概念層知識體系進行精準抽取與存儲。
文中采用自底向上及自頂向下混合模式進行服裝領域知識圖譜構建,具體流程如圖1所示。服裝知識圖譜主要由模式層和數據層兩部分構成,模式層采用自頂向下的方式構建,由人工整理出圖譜要素,定義實體屬性關系,以提高服裝知識圖譜的構建質量;數據層以模式層為理論基礎,通過自底向上的方式構建,在底層獲取電商平臺數據源信息,根據模式層服裝羅列的要素和定義的屬性值開展知識抽取、融合和存儲等,從而完成服裝知識圖譜構建。

圖1 服裝知識圖譜構建流程Fig.1 Construction process of clothing knowledge graph
模式層主要是對服裝知識體系的構建,是對實體的抽象描述,包含各要素及其關系的集合,并由此形成基礎理論框架。模式層構建的主要流程包括知識體系需求分析、要素羅列、屬性值構成體系確定。在服裝知識體系構建中,主要是對服裝各要素進行區分,明確各屬性名稱。綜合國內外研究成果,發現不同研究領域的學者對產品屬性的分類有一些差異,在分析產品屬性與消費偏好的關系時,產品屬性通常被劃分為內在屬性、外在屬性、基礎屬性、表現屬性和價格屬性等[14-15]。文中將服裝屬性分為基礎屬性、表現屬性和外在屬性。把服裝基礎屬性與用戶屬性結合,可以劃分年齡、性別等要素,便于確定推薦服裝的范圍。服裝由款式、色彩、面料3個要素組成[16],根據文獻和專家訪談可再細分為廓形、風格等屬性,作為服裝表現屬性。
當用戶購買服裝時,除了考慮其穿著偏好外,還會瀏覽商家信息和商品評論等內容,最終做出購買決定,在此過程中會產生服裝、商家及用戶之間的交互數據,得到服裝外在屬性,補全服裝知識體系,加深服裝和用戶的聯系。外在屬性包含店鋪物流、服務、評論得分等,其中商品評論由大量的文本組成,包含用戶對商品的情感態度和商品特征,文中提出評論情感得分屬性,對評論采用中文分詞方法得到高頻詞后確定特征集X={x1,x2,x3,…,xn}。運用層次分析法將特征成對比較,生成判斷矩陣
其中,aij表示特征xi相對于xj對評論情感得分的重要程度。
運用和積法得到特征權重α={α1,α2,α3,…αn},特征值的情感得分根據情感詞庫情感值進行打分,得到集合β={β1,β2,β3,…,βn}。由此可得到評論情感得分為
F=α·β┰。
(1)
式中:F為評論情感得分;α為特征權重;β為特征值的情感得分。
根據上述理論體系可得到服裝屬性。根據服裝領域屬性名稱的語義關聯,結合文獻[3,6,14]以及淘寶電商平臺與專家訪談的屬性值描述,明確各項服裝屬性的屬性值并得到三元組<服裝,屬性,屬性值>,完成服裝知識體系構建,具體如圖2所示。

圖2 服裝知識體系模型Fig.2 Mode of clothing knowledge system
服裝知識圖譜的數據層是在模式層框架下描述所得,是實體和屬性的關系集合。通過數據的獲取、實體關系的抽取、知識的融合和存儲可構建數據層知識圖譜。
1.2.1服裝知識圖譜獲取 對于網頁數據的獲取,可通過設置檢索關鍵詞得到相關網頁,再利用網頁爬蟲技術獲取數據[9]。依據電商平臺檢索習慣,將服裝檢索關鍵詞分為服裝類別和性別。服裝分類的方法較多,文中通過文獻[3,17-18]確定服裝類別。服裝檢索關鍵詞見表1。

表1 服裝檢索關鍵詞
文中運用八爪魚網絡爬蟲軟件獲取服裝知識,選擇其在淘寶平臺的商品列表、詳情頁和在線評論采集模塊進行操作,具體流程為:①點擊商品列表采集模塊,輸入確定的服裝類別關鍵詞,如“毛衣男”,通過統一資源定位系統(uniform resource locator,URL)轉至相應淘寶網頁,從頁面的服裝商品列表中自動爬取商品ID信息;②清洗初步數據,對爬取的商品ID進行分析判斷,將相同的服裝去重;③點擊商品詳情頁采集模塊,導入清洗后的服裝ID,通過服裝鏈接得到詳情頁信息,進一步爬取服裝產品參數、商家信息;④點擊在線評論采集模塊,輸入服裝ID采集評論,評論時間越近,其有用性感知越高[19],因此文中將評論時間設置為近3個月。知識獲取流程如圖3所示。

圖3 知識獲取流程 Fig.3 Knowledge acquisition process
1.2.2服裝知識圖譜抽取 知識抽取包含實體抽取和關系抽取。抽取的數據源分為結構化數據、半結構化數據和非結構化數據。
由知識抽取部分可知,淘寶平臺服裝詳情頁面中的產品參數包含屬性及屬性值的匯總表,是對實體的結構化總結。相較于其他兩類數據源,這類結構化數據的置信度高,數據質量可靠,不易隨時間改變。結構化數據可以直接從詳情頁面中提取實體相關的屬性及屬性值,簡化知識抽取過程,提高工作效率。根據模式層中服裝實體屬性的定義,對網頁中獲取的知識進行關系抽取,剔除網頁中的冗余信息和不相關信息,如“貨號”等屬性詞。過濾后得到較為有效的語料,構成<服裝,屬性,屬性值>三元組數據。
評論屬于非結構化數據,處理非結構性文本一般采用基于規則的方法、基于機器學習的方法等。關系抽取的目的是獲得實體間的語義關系,該過程在數據抽取中屬于難點。文中通過Python語言庫中的Jieba分詞處理文本,在分詞過程中使用停用詞表,以提高文本處理效率及篩選后的高頻詞提取特征值的準確率。考慮到服裝的特殊性,文中在采用中文停用詞表、哈工大停用詞表和四川大學機器智能實驗室停用詞庫的基礎上,自定義343個服裝停用詞,如“衣服” “穿”“上身”等。
采用漢語分詞得到高頻詞,并對其進行分類,得到特征集合X。針對網購消費者在線評論的特征,以問卷形式向20位服裝領域資深專家征詢意見,并通過層次分析法得到特征值權重α。對于特征值對應的情感得分,文中使用Python中的SnowNLP語言庫對情感值進行打分,分值為0~1。由于已有的服裝情感詞庫語料不夠全面,需要通過人工標注對詞匯進行擴充,如增加“衣服洗了褪色”“容易皺”“會起球”等語料。為驗證補充后詞庫情感打分的準確性,將文中驗證實驗得到的積極、中等、消極3種情感比例與商品評論好、中、差評的比例進行對比。
驗證實驗以連衣裙為對象,從淘寶爬取400件不重復商品的17 003條評論。為提高實驗準確性,清除評論數不足10條的服裝,最終得到379件服裝,共計16 856條評論,并標記好、中、差評。將數據集以9∶1的比例劃分訓練集和驗證集,得到的對比結果如圖4所示。由圖4(a)可知,積極-中等的情感分界值在0.5~0.7時,準確率和F值隨著情感分界值的增加呈上升趨勢;情感分界值在0.7~0.9時,準確率和F值隨著情感分界值的增加呈下降趨勢。由圖4(b)可知,中等-消極的情感分界值在0.1~0.3時,準確率和F值與情感分界值呈正相關;情感分界值在0.3~0.6時呈負相關。因此,當情感分界值為0.7和0.3時,服裝評論的準確率最高,此時F值分別為0.92和0.73,整體召回率數值較好,因而情感分類效果最優。對基于服裝情感詞庫的SnowNLP庫進行情感分析,得出積極、中等、消極情感的數量接近于實際商品評論好、中、差評的數量,分析結果準確度高,可以用于服裝評論情感打分。


圖4 不同情感界限實驗結果對比Fig.4 Experimental comparison results with different emotional boundaries
1.2.3服裝知識圖譜融合 知識融合是通過對同類知識的融合,實現對已有知識圖譜的補充、更新和去重。文中以模式層中服裝知識體系的屬性值為理論標準,對數據層中知識抽取得到的不規范名詞屬性值進行融合,從而保證知識圖譜中的數據一致性和準確性。以顏色的屬性值為例,杏色、檸檬黃、姜黃色屬于黃色系,紅色系、黃色系、橙色系屬于暖色系,服裝a的顏色是姜黃色,用三元組可表示為

表2 知識融合前后對比
此類融合方式在服裝個性化推薦過程中可以緩解用戶數據的稀疏性。例如,當用戶想購買黃色服裝時,則會一同推薦暖色系中的其他顏色,提高推薦結果的多樣性。
1.2.4服裝知識圖譜存儲 服裝知識圖譜中的知識通過資源描述框架(resource description framework,RDF)表示,在存儲后運用。基于圖結構的存儲是知識存儲的主要方式,可以利用有向圖對知識圖譜的數據進行建模。在圖模型結構中,實體為節點,屬性為帶標簽的邊,數據在實際存儲時需借助存儲系統。常用的存儲數據庫有Neo4j,InfoGrid,InfiniteGraph等。文中運用Neo4j圖形數據庫存儲系統將結構化數據存儲在圖中。Neo4j作為基于文件的數據庫,在運用過程中不需要啟動數據庫服務器,可直接在本地進行操作,有利于加快訪問速度。
為驗證知識圖譜在服裝領域的可行性,文中以連衣裙為例,展示服裝知識圖譜的構建過程:①在模式層構建連衣裙服裝知識體系,在數據層中通過淘寶平臺搜索關鍵詞“連衣裙”后爬取連衣裙數據;②重新爬取500件連衣裙ID,分別進入商品詳情頁和評論進行實體、屬性爬取;③經過數據清洗,剩余463件連衣裙和20 657條評論,對連衣裙的評論進行分詞處理得到高頻詞詞云(見圖5);④選擇質量、價格、外觀、物流和服務5個特征值,通過問卷法和層次分析法確定相應權重(見表3);⑤通過SnowNLP語言庫對情感值打分,根據式(1)得到評論情感得分屬性值;⑥對詳情頁進行知識抽取,得到23個屬性,1 325個實體,經過知識融合后,得到23個屬性,881個實體; ⑦利用Neo4j圖形數據庫存儲系統對數據進行存儲,形成連衣裙的知識圖譜(見圖6),知識融合所得到的實體和屬性分別構成服裝知識圖譜的節點和邊。

圖5 連衣裙評論高頻詞詞云Fig.5 High-frequency word cloud of dress comments

表3 連衣裙評論的特征權重
通過連衣裙的基礎屬性、表現屬性和外在屬性,可以描述服裝之間的關系。以連衣裙a,b,c為例,假設用戶甲購買連衣裙a,用戶乙購買連衣裙b,c,則可用以下三元組表示其中的幾條路徑:
<用戶甲,購買,cloth_a>→
<用戶甲,購買,cloth_a>→
<用戶甲,購買,cloth_a>→
從上述路徑可以推理得到,用戶甲可能會購買連衣裙b,c。由此可見,將知識圖譜帶入到服裝推薦中,可以提高推薦結果的合理性。

圖6 連衣裙知識圖譜Fig.6 Dress knowledge graph
此外,基于知識圖譜的服裝個性化推薦可以利用圖譜中物品的語義關聯內容作為輔助信息,豐富對用戶和物品的描述,以此提高推薦準確性;同樣也可以利用知識圖譜中物品的交互數據挖掘從用戶到物品的不同路徑[20]。服裝知識圖譜的三元組表達了實體與屬性間的語義關系,通過知識表示學習(knowledge representation learning,KRL)模型,將圖譜中的語義關系映射到向量空間,計算服裝間的相似度。常見的知識表示學習模型有距離模型、翻譯模型等,其中翻譯模型運用廣泛[21-22],TransE模型是典型代表[23]。將三元組
(2)
相似度為
(3)
根據式(2)、式(3)計算服裝間的相似度,并通過K-最近鄰(K-nearest neighbor,KNN)算法選擇對象,排序得到評分最高的k件相似類型服裝組成推薦列表進行推薦。
個性化服裝推薦可以提高購物效率。文中研究構建了一個能夠顯示服裝間關系的服裝領域知識圖譜,將專家知識和文獻研究引入服裝建模,把服裝屬性分為基礎要素、表現要素和外在要素,并將在線評論的情感分析引入服裝外在屬性,從而構建服裝領域知識體系;通過大數據爬取服裝數據后,依據知識體系構建出知識圖譜。服裝知識圖譜點邊游走路徑和語義相似度可用于服裝推薦,通過考慮用戶和用戶、用戶和服裝以及服裝和服裝之間的關系,發現用戶的潛在興趣,得到滿足消費者需求和偏好的服裝信息,更好地實現服裝個性化推薦。未來需要進一步研究服裝領域知識圖譜以及基于知識圖譜的新推薦技術,以提供更準確的個性化建議。