吳彥文,龔雪武,榮 謙,冉茂良
1(華中師范大學(xué) 國家數(shù)字化學(xué)習(xí)工程技術(shù)研究中心,武漢 430079) 2(華中師范大學(xué) 物理科學(xué)與技術(shù)學(xué)院,武漢 430079)
小程序是一種無需下載安裝即可使用的“快應(yīng)用”,彰顯 “即掃即用、即用即走”思想.自2017年1月9日上線以來,至2020年用戶數(shù)已達8.3億.隨著小程序的數(shù)量和用戶的激增,用戶需要更便捷地使用體驗.例如:疫情期間,老年人須使用智能手機掃碼進入相關(guān)小程序展示健康碼來乘坐交通工具或進出公共場所,而這一系列操作對老年人并不友好.此時小程序的推薦服務(wù)暴露出缺乏情境化、實時性的弊端.因此,用戶更傾向于獲得有針對性、高效的小程序推薦服務(wù)需求.
借鑒推薦理論及情境感知的相關(guān)技術(shù),針對小程序的推薦服務(wù)研究有著實際的社會意義.例如,通過用戶偏好建??蓪崿F(xiàn)不同用戶的個性化推薦,如向男性用戶推薦新聞時事類小程序,向女性用戶推薦購物美食類小程序等;通過情境感知建模,又可滿足用戶臨時性、特定情境下的使用需求;通過推薦物品的關(guān)系建模豐富推薦結(jié)果多樣性,可以有效緩解以往推薦結(jié)果類型單一的問題.
綜上,為解決用戶在特定情境下無法找到滿足需求的小程序這一問題,本文擬通過基于活動理論對小程序情境感知信息進行情境本體建模,擬利用序列推薦算法來提升用戶對具有針對性、多樣性的小程序推薦服務(wù)的體驗感.
目前情境感知在推薦服務(wù)中的應(yīng)用研究內(nèi)容主要涉及兩個方面:一方面是融合情境感知的推薦服務(wù)的實現(xiàn)技術(shù)研究;另一方面則聚焦于具體領(lǐng)域內(nèi)的情境感知信息推薦系統(tǒng)的設(shè)計開發(fā),包括休閑領(lǐng)域、健康服務(wù)領(lǐng)域、生活便利領(lǐng)域等.
經(jīng)相關(guān)文獻檢索,應(yīng)用情境感知的推薦服務(wù)應(yīng)用較多.例如,Véras D等將情境感知與跨領(lǐng)域推薦結(jié)合在一起,可同時考慮到來自多個領(lǐng)域數(shù)據(jù)的可用性和情境信息的使用,證明情境感知可以提高跨領(lǐng)域推薦準(zhǔn)確性[1];Zhao等提出一種張量因子分解模型,利用用戶的社會信息和隱式反饋進一步提高推薦的準(zhǔn)確率[2];Richthammer等開發(fā)出一個面向推薦系統(tǒng)的情境感知模型,應(yīng)用于音樂推薦系統(tǒng)[3];Quinde M等為個性化哮喘管理開發(fā)出情境感知解決方案[4].可見,情境信息與推薦系統(tǒng)融合在技術(shù)實現(xiàn)層面上是可行的,且推薦服務(wù)的精確性、情境敏感性的實現(xiàn)與情境信息密切相關(guān).
作為APP另一種衍生形式的小程序具有“小、靈、快”的特點,這也意味著小程序推薦服務(wù)與用戶所處的使用情境是非常契合的.因此,本文擬在情境感知推薦服務(wù)過程中融入活動理論,對用戶情境進行建模,從整體的角度分析情境感知信息推薦的過程,避免了目前有關(guān)情境感知信息推薦模型的局限性.
序列推薦是推薦算法的一種,它試圖構(gòu)造和分析序列模型,從而捕捉用戶的長短期偏好、目標(biāo)和商品的消費趨勢等特征,近而實現(xiàn)更加準(zhǔn)確、多樣化及動態(tài)地推薦.
與此同時,深度神經(jīng)網(wǎng)絡(luò)對序列進行建模以及獲取用戶、項目和交互行為之間的隱藏關(guān)系存在原生的優(yōu)勢.例如,Liu等提出了一種上下文感知的序列推薦模型(CA-RNN),采用自適應(yīng)輸入和轉(zhuǎn)換矩陣來表示各種特定的情境[5];沈冬東等將知識圖譜學(xué)習(xí)到的信息嵌入到項目中,并設(shè)計了一種深度雙向LSTM對長期偏好建模;趙串串等提出一種序列感知深度網(wǎng)絡(luò)(SeqaDN),利用自注意力機制確定每個項目對下一個項目影響的權(quán)重,通過深度雙向循環(huán)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)用戶的歷史偏好.由于序列信息很大程度上決定用戶偏好建模效果,因此有關(guān)深度神經(jīng)網(wǎng)絡(luò)的推薦算法被大量引入,然而這些方法有許多局限性:例如序列推薦模型(CA-RNN)[5]過分關(guān)注序列的影響,而忽略了相鄰項間的相關(guān)性、忽略情境信息等.為了進一步解決這些問題,本文提出了一種基于注意力網(wǎng)絡(luò)的情境感知序列推薦模型.
小程序的推薦服務(wù)往往發(fā)生于特定情境下,而活動理論能全面地描述該情境化推薦服務(wù)過程,因此小程序推薦服務(wù)、情景感知和活動理論三者存在不可小覷的契機.恩格斯托姆把活動概括為主體、客體、共同體、工具、規(guī)則、分工6個構(gòu)成要素以及各要素相互作用使客體轉(zhuǎn)化為結(jié)果的過程,全面闡述了活動理論的結(jié)構(gòu)以及各元素之間的關(guān)系[6].
本文對基于活動理論的小程序推薦服務(wù)與各要素的關(guān)系進行具體劃分,如表1所示.同時參照情境劃分理論[7],將小程序應(yīng)用情境信息分為用戶情境(User Context)、物理情境(Physical Context)與歷史情境(History Context).
根據(jù)表1,本文應(yīng)用建模工具Protégé對小程序應(yīng)用情境本體進行建模,其本體模型用OWL語言表達如下.
# User Context模塊定義用戶情境包括用戶姓名Name、性別Gender、年齡Age、住址Address、偏好(Preference)等.
rdf:ID=“Address”> rdf:ID=“Profession”> …………………… # Physical Context模塊定義物理情境,包括用戶所處地理位置Location、具體時間Time等. …………………… # History Context模塊定義了歷史情境,包括用戶背景信息BackgroundInfo、用戶歷史操作記錄HistoricalReco等. …… 表1 基于活動理論的小程序推薦服務(wù)與各要素的關(guān)系Table 1 Relationship between applet recommendation service and its elements based on activity theory 3.2.1 相關(guān)定義 為了清晰地描述本文所提出的基于注意力網(wǎng)絡(luò)的情境感知序列推薦模型(ACA-SR),給出了以下的定義. 3.2.2 ACA-SR框架 本文將小程序的推薦視為序列預(yù)測問題,則用戶與小程序交互序列中的每個小程序?qū)ψ罱K的推薦結(jié)果都存在不同的貢獻.考慮到該序列中小程序順序差異的影響、相鄰小程序之間的相關(guān)性及其對用戶偏好變化的影響,故本文設(shè)計了基于注意力網(wǎng)絡(luò)的情境感知序列推薦模型(下文簡寫為ACA-SR模型),其結(jié)構(gòu)如圖1所示.其中GRUs單元是對傳統(tǒng)門控循環(huán)單元(GRU)的改進,新增了情境信息等,其結(jié)構(gòu)見圖2,其目標(biāo)是依據(jù)序列與情境來捕獲用戶動態(tài)偏好,作為ACA-SR模型的輸入. 圖1 ACA-SR框架Fig.1 ACA-SR framework 圖2 ACA-SR中GRUs單元Fig.2 GRUs unit in ACA-SR ACA-SR模型的計算過程如下. 第1步.定義GRUs單元 (1) (2) 與傳統(tǒng)GRU相比,它的更新門不僅依賴于當(dāng)前輸入隱藏狀態(tài)和前一隱藏狀態(tài),還依賴于關(guān)聯(lián)情境所對應(yīng)的向量. 圖3 基于注意力網(wǎng)絡(luò)的關(guān)聯(lián)情境結(jié)構(gòu)Fig.3 Structure of the associated context based on the attention network (3) (4) (5) (6) (7) 第5步.模型優(yōu)化 在優(yōu)化ACA-SR時,本文使用了BPR,它是一種廣泛應(yīng)用的隱式反饋數(shù)據(jù)的成對排序框架.BPR的基本假設(shè)是用戶喜歡選擇的項目而不是消極的項目.在BPR框架下,在每個序列位置k,ACA-SR的目標(biāo)是使下列概率最大化: (8) 式中,j為消極的項目樣本.結(jié)合負(fù)對數(shù)似然性,本文可等價求解出目標(biāo)函數(shù): (9) 基于注意力網(wǎng)絡(luò)的情境感知序列推薦模型最終會形成Top-N推薦,并以生成推薦列表的形式展示給用戶,因本研究關(guān)注的是推薦列表中用戶與小程序互動的順序,故本實驗選取了序列推薦中較主流的評價指標(biāo):命中率(Hit ratio,HR)、平均倒數(shù)排名(Mean Reciprocal Rank,MRR)以及歸一化折損累計增益(Normalized Discounted Cumulative Gain,NDCG).它們的度量標(biāo)準(zhǔn)是值越大,性能就越好. HR常用來度量召回率,測量推薦結(jié)果的準(zhǔn)確性: (10) 式中,GT為測試集中所有項目的數(shù)量,NumberofHit@N表示前N個推薦項目中與測試集合中項目的交集. MRR指的是目標(biāo)用戶選擇交互的項目位于第n位,則這個推薦列表得分為1/n,即表達式為: (11) 式中,|Q|為所有用戶的數(shù)量,ranki則表示為對于第i個用戶,首個在生成的推薦列表中實際交互項目所處的位置. NDCG指的是對不同用戶的推薦列表的評估分?jǐn)?shù)進行歸一化,其定義如下所示: (12) 用戶u的NDCG定義為: (13) DCG為折損累計增益,表達式為式(14),其中k表示推薦列表的長度,reli表示位置i的推薦結(jié)果的相關(guān)性.若DCG為IDCG時,則表示某一用戶的最滿意推薦結(jié)果列表,即NDCG取值范圍為(0,1]. (14) 因小程序是APP的一種衍生形式,針對小程序的推薦研究完全可以依賴于對APP的研究,故本文采用Appazaar數(shù)據(jù)集進行測試(基于Windows 7、Python 3.6和TensorFlow 1.2.0),該數(shù)據(jù)集記錄了3260名用戶在不同情境下選擇18205個APP的370萬條記錄. 為了確保實驗結(jié)果的真實可靠,本文對該數(shù)據(jù)集進行如下處理:剔除了使用小程序數(shù)目少于5個的用戶和與用戶交互次數(shù)少于10的小程序,參數(shù)λ=0.01,并且將該數(shù)據(jù)集隨機劃分,80%作為訓(xùn)練集,剩下的20%用于測試. 為了驗證本文提出的ACA-SR模型的有效性,本文選取了1種非序列推薦方法和3種序列推薦方法進行比對. ·BPR[8]:該方法采用隱式反饋進行推薦的經(jīng)典算法之一,建立用戶與物品之間的損失函數(shù),通過SGD算法進行優(yōu)化,預(yù)測用戶對物品的偏好. ·GRU4Rec[9]:該方法利用RNN對會話序列進行相關(guān)建模,并使用基于排名的損失函數(shù)訓(xùn)練模型. ·DBi-LSTM[10]:該方法通過自注意機制實現(xiàn)項目感知以及根據(jù)雙向LSTM模型學(xué)習(xí)偏好向量,來對偏好向量空間中最相似項目進行評估,生成推薦列表. ·CA-RNN[5]:該方法在傳統(tǒng)RNN基礎(chǔ)上,用自適應(yīng)特定情境的輸入矩陣和自適應(yīng)特定情境的轉(zhuǎn)換矩陣. 在保持其他超參數(shù)不變的前提下,為了探究嵌入矩陣維度d對ACA-SR模型的影響,本文進行了數(shù)據(jù)仿真,其結(jié)果如圖4-圖6所示. 從圖4、圖6可觀察到:維度d越大,所對比的方法和本文提出的ACA-SR方法的評價指標(biāo)HR@20和NDCG@20也逐漸增大,且都在維度d為100時達到峰值,隨后就下降. 圖4 嵌入矩陣維度d對HR@20的影響Fig.4 Effect of embedding matrix dimensions on HR@20 圖5 嵌入矩陣維度d對MRR@20的影響Fig.5 Effect of embedding matrix dimensions on MRR@20 圖6 嵌入矩陣維度d對NDCG@20的影響Fig.6 Effect of embedding matrix dimensions on NDCG@20 從圖5可看出:在維度d為100時,BPR和GRU4Rec的評價指標(biāo)MRR@20都達到峰值,而剩下的3種方法的評價指標(biāo)MRR@20峰值則出現(xiàn)在d為150時. 由此分析可知,隨著嵌入矩陣維度的增大,更加能精確地描述用戶和小程序之間的關(guān)系,模型更加擬合,即推薦效果更好;但當(dāng)d超過某一特定值時,就容易出現(xiàn)過擬合現(xiàn)象,且訓(xùn)練時長增加,推薦效果更差. 在嵌入矩陣維度d為100,推薦小程序個數(shù)為20時,4種對比算法和本文所提的方法在各性能指標(biāo)的表現(xiàn)如表2所示. 從表2中可觀察到,所涉及的5種方法在HR@20、MRR@20和NDCG@20這3種指標(biāo)上的表現(xiàn)趨勢是一致的,從高到低依次是ACA-SR、DBi-LSTM、CA-RNN、GRU4Rec、BPR.因為在本文所選取的4種對比方法中,DBi-LSTM方法表現(xiàn)最優(yōu)異,為了突出本文所提出ACA-SR方法的有效性,故進一步選取DBi-LSTM方法進行對比;依據(jù)表2可計算出ACA-SR方法相對于DBi-LSTM在評價指標(biāo)HR@20、MRR@20和NDCG@20上分別提高了14.44%、11.60%、8.89%,故實驗表明本文所提出ACA-SR模型能夠顯著提高小程序的推薦效果. 表2 5種算法的HR@20、MRR@20和NDCG@20的性能比較Table 2 Performance comparison of HR@20,MRR@20 and NDCG@20 of five algorithms 為了解決特定情境下小程序的序列推薦問題,本文提出了一種新的方法,即基于注意力網(wǎng)絡(luò)的情境感知序列推薦模型(ACA-SR).首先,本文根據(jù)基于活動理論視角下對情境信息進行建模,分別定義為輸入、過渡、歷史以及關(guān)聯(lián)情境,通過計算候選隱藏狀態(tài)來描述用戶興趣的動態(tài)變化.基于GRUs單元的定義,能夠計算由歷史情境和關(guān)聯(lián)情境所決定的輸出隱藏狀態(tài),從而對用戶興趣的動態(tài)進行建模.然后通過計算基于注意力網(wǎng)絡(luò)的關(guān)聯(lián)情境來量化每個小程序的重要性,以減少或忽略信息量較少或預(yù)測性較低的異常點的影響.最后,進行了實驗研究以驗證該ACA-SR模型的有效性.通過對實驗結(jié)果分析,該模型相比于其他方法擁有較強的表達能力和性能優(yōu)勢. 在接下來的工作中,本文將深挖用戶長期偏好對下一項交互的影響并且解決冷啟動問題以及提高該模型的可解釋性,進一步提升該模型的準(zhǔn)確度;并且后續(xù)將研究其他因素對小程序推薦的用戶體驗感的影響.3.2 基于注意力的情境感知序列推薦模型
3.3 推薦效果評價的計算
4 實 驗
4.1 實驗數(shù)據(jù)集及預(yù)處理
4.2 對比方法
4.3 實驗結(jié)果與分析
5 總結(jié)與展望