張玉娟 周菁
(中國(guó)傳媒大學(xué) 北京市 100024)
無(wú)論推薦系統(tǒng)如何更新迭代,其核心始終圍繞when、where、who、what、why 這五個(gè)問(wèn)題進(jìn)行。但是推薦系統(tǒng)發(fā)展至今,主要集中于對(duì)前四個(gè)問(wèn)題的研究,忽略了推薦模型的可解釋性,即模型本身或者利用模型推薦系統(tǒng)給出推薦特定物品的理由。該解釋性對(duì)上述“why”類(lèi)問(wèn)題進(jìn)行了回答與研究。雖然早期Schafer 在電商領(lǐng)域?qū)τ脩?hù)推薦的內(nèi)容給予了相關(guān)解釋:“您正在看的這個(gè)產(chǎn)品與您過(guò)去喜歡的其他產(chǎn)品相似”[1],但是并沒(méi)有對(duì)“Why”在推薦系統(tǒng)領(lǐng)域的概念進(jìn)行定義,直至2014年Zhang 正式提出了可解釋性推薦系統(tǒng)(Explainable Recommendation)的概念[2]。與普通電商領(lǐng)域不同的是,如果一個(gè)推薦系統(tǒng)在個(gè)別場(chǎng)景中對(duì)結(jié)果提供可解釋性,那么其說(shuō)服用戶(hù)接受結(jié)果的能力及可信度都將越高,比如在用戶(hù)自身利益中產(chǎn)生較大影響的醫(yī)療領(lǐng)域,解釋某些藥品的作用或者解釋指定藥品在服用時(shí)需要一定順序的原因。
基于順序感知的推薦(Sequence-aware)主要根據(jù)用戶(hù)歷史行為輸出有序的物品列表。一般而言,物品與物品之間會(huì)存在某種特定的關(guān)聯(lián)[3]。比如電商領(lǐng)域,當(dāng)一個(gè)用戶(hù)買(mǎi)了iPhone 之后,他可能在短期之內(nèi)繼續(xù)購(gòu)買(mǎi)iPhone 配套的耳機(jī)AirPods 的概率更大,而買(mǎi)其它品牌的手機(jī)的概率會(huì)更小[3]。又比如大學(xué)課程推薦領(lǐng)域,學(xué)生選擇課程時(shí),因?yàn)檎n程和課程之間存在關(guān)聯(lián),所以選擇課程集合需要考慮先決條件,例如《線性代數(shù)》是《矩陣論》的先決條件。Xu等人以先決條件作為選課的基礎(chǔ),為大學(xué)生提供了在盡早滿(mǎn)足畢業(yè)條件的要求下,績(jī)點(diǎn)較高的推薦內(nèi)容[4]。近年來(lái),雖然越來(lái)越多的學(xué)者開(kāi)始研究如何將深度學(xué)習(xí)和推薦系統(tǒng)更好的融合,但在推薦領(lǐng)域依舊存在數(shù)據(jù)稀疏、冷啟動(dòng)等問(wèn)題。通過(guò)知識(shí)圖譜技術(shù)所刻畫(huà)的用戶(hù)、物品畫(huà)像,既可以直接用于推薦系統(tǒng),也可以作為輔助信息結(jié)合深度學(xué)習(xí)方法進(jìn)行推薦。該技術(shù)不僅能夠有效地解決數(shù)據(jù)稀疏、冷啟動(dòng)等問(wèn)題,其中,基于路徑的知識(shí)圖譜推薦算法還使得推薦結(jié)果具備一定的可解釋性。
因此,我們以護(hù)膚品搭配為研究領(lǐng)域,著重考慮順序推薦中物品與物品之間的約束信息,通過(guò)知識(shí)推理結(jié)合約束信息,對(duì)不同物品之間的搭配給予可行性答案,并給出推薦的依據(jù)和理由。
本文共分為五章,第二章知識(shí)圖譜的設(shè)計(jì),圍繞構(gòu)建知識(shí)圖譜中信息約束和知識(shí)補(bǔ)充。第三章可解釋性模塊的設(shè)計(jì),主要研究如何將信息約束融合知識(shí)推理對(duì)推薦可行性方案提供一定的解釋。第四章實(shí)驗(yàn),對(duì)可解釋性模塊進(jìn)行了實(shí)驗(yàn)對(duì)比和分析,驗(yàn)證了我們提出方案的可行性。第五章結(jié)束語(yǔ),包含對(duì)工作的總結(jié)以及對(duì)未來(lái)工作的展望。
我們將利用描述實(shí)體與實(shí)體之間關(guān)系的知識(shí)圖譜技術(shù),定義類(lèi)與類(lèi)、實(shí)例與實(shí)例之間的關(guān)系,該技術(shù)不僅能夠通過(guò)描述實(shí)體間的關(guān)系來(lái)增強(qiáng)信息語(yǔ)義表達(dá)能力,還具備推理能力以及一定的可解釋性。由于沒(méi)有相關(guān)領(lǐng)域的開(kāi)放知識(shí)圖譜,因此本章利用當(dāng)前技術(shù)自行設(shè)計(jì)并構(gòu)建了一套完整的護(hù)膚品知識(shí)圖譜。
知識(shí)圖譜構(gòu)建的流程如圖1 所示。依據(jù)設(shè)計(jì)的本體,對(duì)目前Kaggle 網(wǎng)站公開(kāi)的Sephora 數(shù)據(jù)集 的缺陷以及理想數(shù)據(jù)集需求進(jìn)行了分析,本文設(shè)計(jì)使用深度爬蟲(chóng)策略進(jìn)行信息獲取和信息抽取,利用多標(biāo)簽文本分類(lèi)技術(shù)對(duì)缺失的信息進(jìn)行了補(bǔ)全。最終的數(shù)據(jù)集整理為嵌套字典類(lèi)型的JSON 鍵值對(duì)格式,我們將物品名稱(chēng)作為Key,將其成分列表、適合的膚質(zhì)等其余屬性作為Value。字典類(lèi)型不僅可以避免實(shí)體對(duì)齊,也可以在查詢(xún)、讀取數(shù)據(jù)時(shí)擁有較低的時(shí)間復(fù)雜度。最終所構(gòu)建的數(shù)據(jù)集被分為了護(hù)膚品和成分?jǐn)?shù)據(jù)集 兩個(gè)JSON 文件,利用自動(dòng)化腳本將其以資源描述框架(Resource Description Framework, RDF)的形式存儲(chǔ)于Neo4j 圖形數(shù)據(jù)庫(kù)中。
為了更清楚地表達(dá)物品與物品之間存在的約束信息,描述護(hù)膚品和成分、功能之間的關(guān)系,除了數(shù)據(jù)集中本身存在的屬性三元組中的關(guān)系,本文額外設(shè)計(jì)增強(qiáng)關(guān)系work well with 以及互斥關(guān)系in conflict with 來(lái)表示物品實(shí)例之間的約束信息。其中,work well with 表示該兩種物品可以進(jìn)行搭配并且具備良好的反應(yīng);in conflict with 表示物品之間的互斥關(guān)系。在避免因使用護(hù)膚品過(guò)程中出現(xiàn)不良反應(yīng)的幾率時(shí),用戶(hù)不僅需要了解成分的作用,還需要了解成分之間的搭配關(guān)系。如若忽略以上兩種因素,可能會(huì)造成某種程度的損失,例如花費(fèi)高昂的護(hù)膚品使用之后反而達(dá)不到預(yù)期效果,或者疊加產(chǎn)品的使用反而會(huì)讓皮膚變得敏感脆弱等情況。
圖1:知識(shí)圖譜構(gòu)建流程圖
圖2:不同類(lèi)別物品之間的約束關(guān)系
表1:推理規(guī)則設(shè)計(jì)
表2:膚質(zhì)影響搭配結(jié)果
表3:多類(lèi)別不可搭配結(jié)果
通過(guò)人工采集知識(shí)的方式,我們對(duì)2.1 節(jié)已存在的成分實(shí)體、膚質(zhì)實(shí)體,進(jìn)行知識(shí)補(bǔ)充。主要包含成分之間關(guān)系添加和膚質(zhì)關(guān)系添加兩個(gè)維度。對(duì)于第一個(gè)維度,我們?cè)谝朁S醇和維生素C、酒精和蛋白質(zhì)等不能搭配使用的成分實(shí)例之間建立互斥關(guān)系,在視黃醇和煙酰胺等成分實(shí)例之間建立增強(qiáng)關(guān)系。對(duì)于第二個(gè)維度,考慮到成分表中當(dāng)一些防腐劑、香精等危險(xiǎn)系數(shù)較高的成份如果排序靠前,敏感性肌膚的人群需要謹(jǐn)慎選擇,因此需要在甲基氯異噻唑啉酮等刺激性較強(qiáng)的防腐劑和敏感肌膚質(zhì)中建立互斥關(guān)系。
基于上述思路,本文構(gòu)建的知識(shí)圖譜包含5252 個(gè)實(shí)體,5 種類(lèi)別的關(guān)系,共計(jì)38841 條。類(lèi)別關(guān)系包括:has ingredients 物品包含的成分關(guān)系、suits for 物品適合的膚質(zhì)關(guān)系、has effect 成功功能關(guān)系、in conflict with 互斥關(guān)系和work well with 增強(qiáng)關(guān)系。
在護(hù)膚品順序搭配的過(guò)程中,為確定搭配是否合理,本文研究設(shè)計(jì)了一套合理的算法,對(duì)知識(shí)圖譜中的知識(shí)進(jìn)行推理,并將推理的結(jié)果可視化輸出,為用戶(hù)提供解釋功能。
在知識(shí)圖譜構(gòu)建的過(guò)程中,我們?cè)诔煞謱?shí)體之間建立了物品與成分之間的包含關(guān)系,以及互斥和增強(qiáng)關(guān)系。為了增強(qiáng)可解釋性,我們提出關(guān)系的傳遞性,將該關(guān)系由成分傳遞到物品實(shí)體中。關(guān)系傳遞性指:如果用大寫(xiě)字母A、B 代表護(hù)膚品中某兩種實(shí)體、小寫(xiě)字母a、b 表示成分實(shí)體,那么可以根據(jù)A 擁有成分a,B 擁有成分b,而a 和b 具備增強(qiáng)關(guān)系推理出:A 和B 也具備增強(qiáng)關(guān)系?;コ怅P(guān)系同理,如表1 所示。
在具備約束關(guān)系順序推薦的過(guò)程中,物品間的約束關(guān)系尤其重要。所以需要在用戶(hù)提供膚質(zhì)信息的前提下,根據(jù)用戶(hù)想要指定搭配的種類(lèi)和名稱(chēng),進(jìn)行以下2 個(gè)步驟的推理,并以RDF 記錄該約束信息。
3.2.1 物品與用戶(hù)膚質(zhì)間的互斥
膚質(zhì)類(lèi)型包括正常肌膚、油性肌膚、干性肌膚、混合型肌膚以及敏感型肌膚5 大類(lèi),我們考慮到正常肌膚、油性肌膚、干性肌膚、混合型肌膚兩兩互斥,而敏感肌除了和正常肌膚互斥外,和其余肌膚可以相交的性質(zhì),即膚質(zhì)類(lèi)型可以組合成干性肌膚和敏感肌膚混合類(lèi)等。依據(jù)膚質(zhì)性質(zhì),我們考慮搭配列表中的物品是否與膚質(zhì)存在suits for 關(guān)系的路徑,如果路徑可達(dá)則保留該物品,否則,我們初步判定該物品不符合用戶(hù)需求。此外我們需要利用已獲取的知識(shí)幫助我們進(jìn)行知識(shí)推理,如某個(gè)物品含有有種成分,該成分與用戶(hù)膚質(zhì)信息具備in conflict with 的互斥關(guān)系,我們可以則認(rèn)為出:該物品并不適合此膚質(zhì)類(lèi)型的用戶(hù)。
3.2.2 物品和物品之間存在的約束
在推理過(guò)程中,我們需要對(duì)不同類(lèi)別的子集在知識(shí)圖譜中進(jìn)行約束關(guān)系查詢(xún),約束關(guān)系包括互斥關(guān)系和增強(qiáng)關(guān)系。本文利用反向推演的思想,當(dāng)且僅當(dāng)不同類(lèi)別產(chǎn)品之間不存在in conflict with 的路徑,我們則認(rèn)為兩種產(chǎn)品之間不會(huì)產(chǎn)品互斥影響,產(chǎn)品可以進(jìn)行搭配使用。如若如果存在增強(qiáng)關(guān)系,則直接以RDF 記錄該信息。
經(jīng)過(guò)上一步,我們可以依據(jù)約束結(jié)果的RDF 信息,對(duì)搭配內(nèi)容進(jìn)行判定:當(dāng)且僅當(dāng)不存在任何互斥條件時(shí),該搭配方案方能被認(rèn)為具備可行性。對(duì)具備約束關(guān)系的方案進(jìn)行可解釋性輸出時(shí),需要結(jié)合3.1 中利用關(guān)系的傳遞性制定推理規(guī)則進(jìn)行推理。如圖2,假設(shè)用戶(hù)目前的需要判斷的種類(lèi)包括:清潔產(chǎn)品、護(hù)膚水、面霜,物品名稱(chēng)依次為“Miracle Water Micellar Cleanser”,“The True Tincture Essence Chamomile”,“Active Moist Moisturizer”。
從圖2 中我們可以看出,“Miracle Water Micellar Cleanser”擁有成分“Retinol”和“Niacinamide”,“The True Tincture Essence-Chamomile”包含成分“Niacinamide”,“Niacinamide”成分和“Retinol”具備增強(qiáng)關(guān)系,為此可以推理出清潔產(chǎn)品“Miracle Water Micellar Cleanser”和護(hù)膚水“The True Tincture Essence-Chamomile”具備增強(qiáng)關(guān)系,一起使用的效果會(huì)更好。而由于成分“Niacinamide”和成分“Di-c12-13alkymalate”互斥,所以可以推理出,護(hù)膚水“The True Tincture Essence-Chamomile” 和 面 霜“Active Moist Moisturizer”互斥。由于存在互斥關(guān)系,因此該方案不可行。雖然該洗面奶和護(hù)膚水具備增強(qiáng)關(guān)系,但是與面霜互斥,因此該方案仍為不推薦的方案。此外,通過(guò)對(duì)互斥和增強(qiáng)的相關(guān)成分三元組信息的輸出,也可以幫助用戶(hù)進(jìn)行更好地理解推薦原因。
為了驗(yàn)證本文方法的可行性,假設(shè)用戶(hù)屬于干性敏感肌膚質(zhì),在指定護(hù)膚水是否可用的情況下進(jìn)行測(cè)試,實(shí)驗(yàn)結(jié)果如表2 所示??梢园l(fā)現(xiàn),該護(hù)膚水中的成分”Diazolidinyl Urea”,敏感肌不適用,因此該搭配不可行。
針對(duì)清潔產(chǎn)品、護(hù)膚水、面霜三種不同類(lèi)別的物品搭配,假設(shè)用戶(hù)屬于干性非敏感肌,實(shí)驗(yàn)結(jié)果如表3 所示。結(jié)果判定為該三種物品不能一起搭配,根據(jù)解釋原因我們可以得到:雖然清潔產(chǎn)品和護(hù)膚水具備增強(qiáng)關(guān)系,但是護(hù)膚水和面霜存在互斥關(guān)系。因此在這種情況下,用戶(hù)可以更換面霜,來(lái)搭配清潔產(chǎn)品和護(hù)膚水。
通過(guò)可解釋性推理增加模型的可信度,用戶(hù)可以更加清楚地了解模型判斷的原因,從而更好地進(jìn)行方案選擇。在具備強(qiáng)烈約束關(guān)系的順序推薦中,可以利用知識(shí)圖譜技術(shù),為推薦結(jié)果提供可解釋性。后續(xù)的研究?jī)?nèi)容將圍繞對(duì)解釋語(yǔ)句進(jìn)行權(quán)重分配調(diào)節(jié)的研究與設(shè)計(jì),凝練輸出內(nèi)容。