譚小輝,祁正華,張海桃,何菲菲
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院、軟件學(xué)院、網(wǎng)絡(luò)空間安全學(xué)院,江蘇 南京 210023)
如今,推薦系統(tǒng)已廣泛應(yīng)用于每一個(gè)數(shù)字平臺(tái),這些平臺(tái)試圖根據(jù)用戶需求調(diào)整服務(wù),以提高用戶滿意度[1]。在推薦系統(tǒng)研究中,大部分工作集中在依靠長(zhǎng)期偏好模型為用戶提供推薦的技術(shù)上。但在推薦系統(tǒng)應(yīng)用的多個(gè)領(lǐng)域,用戶通常是匿名的,用戶的個(gè)人資料和長(zhǎng)期互動(dòng)歷史記錄難以獲取,唯一可用的信息是匿名用戶在當(dāng)前會(huì)話中的交互序列。因此,合理的推薦必須基于其它類型的信息(如用戶最近與網(wǎng)站或平臺(tái)的互動(dòng)情況)來(lái)確定[2-4]。為解決這些問(wèn)題,基于會(huì)話的推薦系統(tǒng)(Session-based Recommender System,SBRS)悄然興起。SBRS 通常利用基于神經(jīng)網(wǎng)絡(luò)[5-7]或鄰域的方法[8-10]對(duì)會(huì)話中的歷史交互序列進(jìn)行建模,以捕獲會(huì)話的興趣為用戶進(jìn)行推薦。如Hidasi 等[5]將所有匿名用戶瀏覽歷史中的會(huì)話信息作為遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的輸入序列,通過(guò)修改RNN 中的排名損失函數(shù)以及引入小批次的輸出采樣,使其在基于會(huì)話的場(chǎng)景下提升了推薦性能,但是模型訓(xùn)練需要大量數(shù)據(jù)(特別是密集的數(shù)據(jù))。在可利用會(huì)話數(shù)據(jù)較少的情況下,基于鄰域的方法具有較好的推薦效果。Jannach等[8]將K 近鄰(K Nearest Neighbor,KNN)方法用于會(huì)話推薦,提出了SKNN(Session-based KNN)方法。SKNN 利用會(huì)話的交互數(shù)據(jù),在訓(xùn)練集中確定過(guò)去最相近的K 個(gè)鄰居會(huì)話,按照每個(gè)鄰居會(huì)話與當(dāng)前會(huì)話的相似度給候選項(xiàng)目打分。Garg 等[10]利用項(xiàng)目序列與會(huì)話之間的時(shí)間間隔,提出一種序列和時(shí)間感知鄰域(Sequence and Time Aware Neighborhood,STAN)推薦方法。STAN 沒(méi)有像SKNN 一樣為會(huì)話中的所有項(xiàng)目賦予同等權(quán)重,而是根據(jù)項(xiàng)目序列和會(huì)話的起始時(shí)間來(lái)考慮項(xiàng)目與會(huì)話的權(quán)重,并為所考慮的特征設(shè)置不同的衰減函數(shù)。然而,以上方法仍然面臨一些問(wèn)題:①?zèng)]有綜合考慮整個(gè)會(huì)話中一般偏好與當(dāng)前偏好對(duì)推薦結(jié)果的影響;②尋找候選項(xiàng)目時(shí)忽略了項(xiàng)目在會(huì)話中的時(shí)間信息,難以捕獲到鄰居會(huì)話與候選項(xiàng)目之間的關(guān)聯(lián);③忽略了匿名用戶誤點(diǎn)行為對(duì)推薦結(jié)果的影響。
為解決上述存在的問(wèn)題,本文的主要工作如下:
(1)利用會(huì)話中的項(xiàng)目序列和時(shí)間信息,構(gòu)建一種基于鄰域與位置時(shí)間感知的會(huì)話推薦(Neighborhood and Position Time Awareness Session Recommendation,NPTAS)方法。該方法主要分為3 部分:①為綜合考慮整個(gè)會(huì)話的一般偏好與當(dāng)前偏好,利用會(huì)話中的項(xiàng)目位置和持續(xù)時(shí)間信息來(lái)分別捕獲會(huì)話的當(dāng)前偏好與一般偏好,并以此得到會(huì)話的偏好表示向量;②為找到興趣最接近的鄰居會(huì)話,利用會(huì)話的起始時(shí)間信息捕獲會(huì)話之間的時(shí)間相關(guān)性,并以此得到會(huì)話之間的相似度權(quán)重;③利用候選項(xiàng)目在會(huì)話中的位置及持續(xù)時(shí)間信息捕獲鄰居會(huì)話與候選項(xiàng)目的相關(guān)性,并以此得到鄰居會(huì)話對(duì)候選項(xiàng)目得分的貢獻(xiàn)權(quán)重。同時(shí)為會(huì)話中持續(xù)時(shí)間短的項(xiàng)目賦予較小權(quán)重,以減少用戶誤點(diǎn)行為對(duì)推薦結(jié)果的影響。
(2)在兩個(gè)真實(shí)的新聞數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),通過(guò)與現(xiàn)有方法進(jìn)行對(duì)比,驗(yàn)證了該方法的有效性,同時(shí)分析了NPTAS 的變體方法和影響NPTAS 方法推薦性能的參數(shù)。
基于會(huì)話的推薦系統(tǒng)利用匿名用戶在交互過(guò)程中產(chǎn)生的會(huì)話數(shù)據(jù)挖掘和學(xué)習(xí)用戶偏好,現(xiàn)有的SBRS 可分為基于神經(jīng)網(wǎng)絡(luò)和基于鄰域的方法。
基于神經(jīng)網(wǎng)絡(luò)的SBRS 大多采用遞歸神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。GRU4REC[5]是一個(gè)基于RNN 的SBRS 模型,通過(guò)使用門控循環(huán)單元(Gate Recurrent Unit,GRU)為活動(dòng)會(huì)話生成推薦列表,并針對(duì)應(yīng)用場(chǎng)景,對(duì)數(shù)據(jù)特征的處理方法和神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中的排名損失函數(shù)進(jìn)行修改,提高了模型對(duì)于會(huì)話場(chǎng)景的適應(yīng)度。Li 等[11]通過(guò)一種帶有注意力機(jī)制的混合編碼器來(lái)模擬用戶的交互行為,并捕獲用戶在當(dāng)前會(huì)話中的主要目的,然后利用RNN 為每個(gè)會(huì)話生成一個(gè)會(huì)話表示向量,以此計(jì)算每個(gè)候選項(xiàng)目的推薦得分;Pang 等[12]提出一種考慮時(shí)間因素的自注意機(jī)制來(lái)學(xué)習(xí)用戶的短期興趣,并將其與用戶的長(zhǎng)期興趣相結(jié)合進(jìn)行會(huì)話推薦。
基于鄰域的SBRS 通過(guò)在訓(xùn)練階段建立鄰里關(guān)系來(lái)進(jìn)行會(huì)話推薦?;陧?xiàng)目的K 近鄰(Item-based K Nearest Neighbors,IKNN)[13]是一種樸素的方法,通過(guò)利用活動(dòng)會(huì)話中的最后一個(gè)項(xiàng)目來(lái)尋找鄰居,傳統(tǒng)上被認(rèn)為是SBRS的基線。Jannach 等[8]利用一種基于整體性的方式從歷史會(huì)話中尋找興趣最接近的鄰居會(huì)話,再根據(jù)鄰居會(huì)話得到相應(yīng)的候選項(xiàng)目??紤]到會(huì)話數(shù)據(jù)中項(xiàng)目的排列順序在用戶推薦過(guò)程中的重要性,Ludewig 等[9]對(duì)SKNN 進(jìn)行擴(kuò)展,提出了VSKNN(Vector Multiplication SKNN)方法,通過(guò)給予會(huì)話中最近的項(xiàng)目更多權(quán)重來(lái)捕獲會(huì)話興趣。為了利用會(huì)話數(shù)據(jù)中的更多特征來(lái)提高推薦結(jié)果的準(zhǔn)確率,Garg 等[10]利用項(xiàng)目位置、會(huì)話間的時(shí)間差和項(xiàng)目在鄰居會(huì)話中的點(diǎn)擊距離等信息進(jìn)行會(huì)話推薦,并為這些信息特征設(shè)置了相應(yīng)的衰減函數(shù)來(lái)調(diào)整其對(duì)于推薦結(jié)果的貢獻(xiàn)度。最近,Ludewig 等[14]將STAN 與VSKNN 的思想相結(jié)合提出VSTAN(Vector Multiplication STAN)方法,在STAN 基礎(chǔ)上添加了一種加權(quán)方案,給頻繁出現(xiàn)的項(xiàng)目以較低權(quán)重。雖然基于鄰域的方法相對(duì)簡(jiǎn)單,但是關(guān)于SBRS 的研究表明[2,14-16],在某些場(chǎng)景下基于鄰域的SBRS 方法在準(zhǔn)確性和計(jì)算成本等方面都優(yōu)于目前基于復(fù)雜神經(jīng)網(wǎng)絡(luò)的SBRS方法。
本文在分析多種基于鄰域的SBRS 方法基礎(chǔ)上,從數(shù)據(jù)集中提取項(xiàng)目在會(huì)話中的位置和時(shí)間等信息,設(shè)計(jì)了一種基于鄰域與位置時(shí)間感知的會(huì)話推薦方法(NPTAS),其整體結(jié)構(gòu)如圖1所示。
Fig.1 NPTAS method architecture圖1 NPTAS方法結(jié)構(gòu)
NPTAS 方法的具體實(shí)現(xiàn)可分為以下3部分:
(1)計(jì)算會(huì)話之間的初始相似度。利用會(huì)話中項(xiàng)目的位置和持續(xù)時(shí)間信息來(lái)捕獲會(huì)話的當(dāng)前偏好與一般偏好,并以此構(gòu)建會(huì)話的偏好表示向量,再利用會(huì)話的偏好表示向量計(jì)算會(huì)話之間的初始相似度。
(2)構(gòu)建鄰居會(huì)話。首先利用會(huì)話間起始時(shí)間的差值來(lái)計(jì)算會(huì)話之間的相似度權(quán)重,然后將其與會(huì)話間的初始相似度相結(jié)合,得到會(huì)話之間的相似度,最后根據(jù)會(huì)話之間的相似度為每個(gè)會(huì)話選取對(duì)應(yīng)的鄰居會(huì)話。
(3)計(jì)算候選項(xiàng)目得分。利用鄰居會(huì)話中候選項(xiàng)目的位置和持續(xù)時(shí)間信息來(lái)計(jì)算鄰居會(huì)話對(duì)會(huì)話內(nèi)某個(gè)候選項(xiàng)目得分的貢獻(xiàn)權(quán)重,將此貢獻(xiàn)權(quán)重與對(duì)應(yīng)會(huì)話之間的相似度相結(jié)合,得到鄰居會(huì)話對(duì)此候選項(xiàng)目得分的貢獻(xiàn)值。通過(guò)將所有鄰居會(huì)話對(duì)此候選項(xiàng)目得分的貢獻(xiàn)值相加,得到此候選項(xiàng)目的最終得分。
S={s1,s2,...,sm-1,sm}表示會(huì)話集,其中歷史會(huì)話集Sh={s1,s2,...,sm-1},sm表示當(dāng)前會(huì)話。I={i1,i2,...,i|I|}表示S中所有項(xiàng)目的集合,其中|I|表示項(xiàng)目集I包含的項(xiàng)目個(gè)數(shù)。會(huì)話sm的交互序列St={it,1,it,2,...,it,n},其中it,j∈I,n 表示會(huì)話sm對(duì)應(yīng)的交互序列長(zhǎng)度。NPTAS 方法旨在通過(guò)計(jì)算候選項(xiàng)目i(i∈I)的相關(guān)性得分來(lái)給會(huì)話sm推薦下一個(gè)點(diǎn)擊項(xiàng)目it,n+1。表1 定義了本文使用的主要符號(hào)。
Table 1 Definition of main symbols表1 主要符號(hào)定義
會(huì)話推薦以捕獲會(huì)話的短期興趣給會(huì)話作推薦為目的,而會(huì)話中最近的項(xiàng)目更能代表會(huì)話的當(dāng)前偏好,需要為其賦予一個(gè)較高權(quán)重。因此,在僅考慮當(dāng)前偏好時(shí),項(xiàng)目i對(duì)會(huì)話sm偏好表示向量的貢獻(xiàn)度為:
其中,λ11>0(λ11表示在構(gòu)建會(huì)話偏好表示向量時(shí)項(xiàng)目位置信息的重要程度)。
考慮到會(huì)話的短期興趣通常反映在最近的幾次交互中,但最后一次交互不一定直接反映會(huì)話的當(dāng)前興趣,因此利用會(huì)話中每個(gè)項(xiàng)目的持續(xù)時(shí)間來(lái)捕獲會(huì)話的一般偏好。會(huì)話中項(xiàng)目的持續(xù)時(shí)間占會(huì)話持續(xù)時(shí)間的比重越高,表明用戶對(duì)此項(xiàng)目越感興趣,需要為其賦予一個(gè)較高權(quán)重。同時(shí),在會(huì)話數(shù)據(jù)中,每個(gè)會(huì)話都有可能存在由于匿名用戶誤點(diǎn)而產(chǎn)生的交互數(shù)據(jù),這些交互數(shù)據(jù)并不能代表用戶的真實(shí)意圖。相反,還有可能降低該方法的推薦效果??紤]到此類項(xiàng)目在會(huì)話中的持續(xù)時(shí)間通常很短,因而需要為其賦予一個(gè)較低權(quán)重。因此,在僅考慮一般偏好時(shí),項(xiàng)目i對(duì)會(huì)話sm偏好表示向量的貢獻(xiàn)度為:
其中,λ12>0(λ12表示在構(gòu)建會(huì)話偏好表示向量時(shí)項(xiàng)目持續(xù)時(shí)間的重要程度)。
為了更好地捕獲會(huì)話興趣,引入?yún)?shù)φ1來(lái)綜合考慮會(huì)話的當(dāng)前偏好和一般偏好。因此,會(huì)話sm的表示向量在項(xiàng)目i對(duì)應(yīng)維度上的值為:
其中,φ1∈[0,1]。
利用式(3)計(jì)算會(huì)話sm在每個(gè)項(xiàng)目i對(duì)應(yīng)維度上的值,得到會(huì)話sm的表示向量(以同樣的方式可以得到會(huì)話st的表示向量),然后計(jì)算會(huì)話sm與st之間的初始相似度為:
其中,l(st)表示會(huì)話st包含的項(xiàng)目個(gè)數(shù)。
借鑒文獻(xiàn)[17]中的思想,為距離會(huì)話sm較遠(yuǎn)的會(huì)話賦予較低權(quán)重。因此,會(huì)話st與sm之間的相似度權(quán)重為:
其中,λ2>0 且λ2≠1(λ2表示會(huì)話起始時(shí)間差對(duì)于會(huì)話間相似度權(quán)重的重要程度),t(sm) >t(st)。
然后,將會(huì)話st和sm之間的初始相似度與其對(duì)應(yīng)的相似度權(quán)重相結(jié)合,得到會(huì)話st與sm之間的相似度為:
利用式(6)計(jì)算會(huì)話sm與其它會(huì)話之間的相似度,把這些相似度值由高到低進(jìn)行排序,選取前N 個(gè)相似度值對(duì)應(yīng)的會(huì)話作為會(huì)話sm的鄰居會(huì)話N(sm)。
得到N(sm)后,出現(xiàn)在會(huì)話n(n∈N(sm))中但沒(méi)有出現(xiàn)在會(huì)話sm中的任何一個(gè)項(xiàng)目都是候選項(xiàng)目。在會(huì)話序列中,相鄰項(xiàng)目的相關(guān)性很強(qiáng),對(duì)于會(huì)話n中越靠近的項(xiàng)目應(yīng)該被賦予較高權(quán)重。因此,在僅考慮鄰居會(huì)話中候選項(xiàng)目位置信息的情況下,會(huì)話n對(duì)候選項(xiàng)目i得分的貢獻(xiàn)權(quán)重為:
其中,λ31>0(λ31表示鄰居會(huì)話中候選項(xiàng)目位置對(duì)于候選項(xiàng)目得分權(quán)重的重要程度),In表示會(huì)話n包含的項(xiàng)目集。
對(duì)于同一個(gè)會(huì)話中持續(xù)時(shí)間相近的項(xiàng)目,當(dāng)前會(huì)話對(duì)其的興趣程度是相近的,其之間可能存在著某種關(guān)聯(lián),所以也需為其分配一個(gè)較高權(quán)重。因此,在僅考慮鄰居會(huì)話中候選項(xiàng)目持續(xù)時(shí)間信息的情況下,會(huì)話n對(duì)候選項(xiàng)目i得分的貢獻(xiàn)權(quán)重為:
其中,λ32>0(λ32表示鄰居會(huì)話中候選項(xiàng)目持續(xù)時(shí)間對(duì)候選項(xiàng)目得分權(quán)重的重要程度)。
然后,利用φ2綜合考慮上述兩個(gè)貢獻(xiàn)權(quán)重,得到會(huì)話n對(duì)候選項(xiàng)目i得分的最終貢獻(xiàn)權(quán)重為:
其中,φ2∈[0,1]。當(dāng)項(xiàng)目i存在于會(huì)話n中時(shí),1n(i)=1,否則,1n(i)=0。
接下來(lái)將會(huì)話n對(duì)候選項(xiàng)目i得分的貢獻(xiàn)權(quán)重和會(huì)話n與sm之間的相似度相結(jié)合,得到鄰居會(huì)話n對(duì)候選項(xiàng)目i得分的貢獻(xiàn)值為:
其中,sim2(sm,n)表示會(huì)話sm與n之間的相似度。
最后,候選項(xiàng)目i推薦給會(huì)話sm的得分為:
實(shí)驗(yàn)采用的兩個(gè)數(shù)據(jù)集均來(lái)自現(xiàn)實(shí)世界。包括:
(1)Globo.com。巴西新聞門戶網(wǎng)站globo 建立的一個(gè)新聞推薦數(shù)據(jù)集,包含大約314 000 個(gè)用戶、46 000 篇新聞文章和300萬(wàn)次點(diǎn)擊記錄[18-19]。
(2)Adressa。由adreseavisen 網(wǎng)站構(gòu)建的一個(gè)新聞推薦數(shù)據(jù)集,分為簡(jiǎn)易版(收集1 周的數(shù)據(jù))和完整版(收集3個(gè)月的數(shù)據(jù))兩個(gè)版本[19-20]。
本文遵循文獻(xiàn)[19]中的處理方法對(duì)兩個(gè)數(shù)據(jù)集進(jìn)行預(yù)處理,將匿名用戶在30min 內(nèi)產(chǎn)生的一系列點(diǎn)擊事件視為一個(gè)會(huì)話,同時(shí)移除少于兩個(gè)交互的會(huì)話??紤]到Globo.com 數(shù)據(jù)集只包含16 天的交互數(shù)據(jù),因此在Adressa 數(shù)據(jù)集中只選擇20 天的交互數(shù)據(jù)(整個(gè)數(shù)據(jù)集包含3 個(gè)月的交互數(shù)據(jù))。表2為各個(gè)數(shù)據(jù)集的基本信息。
Table 2 Dataset basic information表2 數(shù)據(jù)集基本信息
為得到訓(xùn)練集和測(cè)試集,本文使用文獻(xiàn)[19]中的方法,對(duì)于Globo.com 數(shù)據(jù)集,將每4 天分成一個(gè)子數(shù)據(jù)集,子數(shù)據(jù)集中前3 天的會(huì)話數(shù)據(jù)作為該組的訓(xùn)練集,剩下1 天作為該組的測(cè)試集。對(duì)于Adressa 數(shù)據(jù)集,由于一天內(nèi)的會(huì)話數(shù)據(jù)較少,將10 天分成一個(gè)子數(shù)據(jù)集,同時(shí)為保持與Globo.com 相似的訓(xùn)練數(shù)據(jù)大小,對(duì)其訓(xùn)練天數(shù)進(jìn)行了延長(zhǎng)。
在兩個(gè)數(shù)據(jù)集上與6 個(gè)基準(zhǔn)方法進(jìn)行對(duì)比:①SKNN[8]是一個(gè)將K 近鄰應(yīng)用到會(huì)話場(chǎng)景下的推薦方法;②STAN[10]是SKNN 的一個(gè)擴(kuò)展方法,具有3 個(gè)可控的時(shí)間衰減因子;③VSTAN[14]是STAN 的一個(gè)擴(kuò)展方法,額外添加了逆文本頻率指數(shù)(Inverse Document Frequency,IDF)加權(quán)方案;④GRU4Rec[5,21]是第一個(gè)采用RNN 進(jìn)行會(huì)話推薦的模型,通過(guò)構(gòu)建門控遞歸神經(jīng)網(wǎng)絡(luò)進(jìn)行會(huì)話推薦;⑤STAMP[22]是一個(gè)短期注意優(yōu)先模型,引入了注意機(jī)制來(lái)建模用戶每次歷史點(diǎn)擊和最后一次點(diǎn)擊之間的關(guān)系;⑥SRGNN[23]是一個(gè)基于會(huì)話的推薦器,使用圖神經(jīng)網(wǎng)絡(luò)捕捉項(xiàng)目的復(fù)雜轉(zhuǎn)換。
為了評(píng)估推薦效果,采用文獻(xiàn)[20]中的3 個(gè)評(píng)估指標(biāo),分別是:
(1)HR@K。命中率,其定義為:
其中,R(sm)為根據(jù)會(huì)話sm在訓(xùn)練集上的瀏覽記錄給會(huì)話sm作出的推薦列表,T(sm)為會(huì)話sm在測(cè)試集上的瀏覽列表。
(2)NDCG@K。歸一化折損累計(jì)增益,其定義為:
其中,reli表示第i個(gè)推薦的相關(guān)程度,當(dāng)項(xiàng)目i被選中時(shí),reli=1,否則reli=0;IDCG 是歸一化的DCG,即根據(jù)理想排序獲得的最大DCG 值。
(3)ILD@K。列表多樣性,評(píng)估推薦列表中的主題多樣性,并反映方法向同一用戶推薦不同項(xiàng)目的能力,其定義為:
其中,d(ɑ,b)是項(xiàng)目ɑ與項(xiàng)目b之間距離的度量,如果項(xiàng)目ɑ和項(xiàng)目b屬于不同主題(類別),d(ɑ,b)=1,否則d(ɑ,b)=0。
將NPTAS 方法與基準(zhǔn)方法在兩個(gè)數(shù)據(jù)集上進(jìn)行比較,實(shí)驗(yàn)結(jié)果如表3所示。
Table 3 Performance comparison of different methods on two datasets表3 兩個(gè)數(shù)據(jù)集上不同方法性能比較
從表3可知:
(1)在Adressa 和Globo.com 數(shù)據(jù)集上,NPTAS 方法相較于SKNN、STAN 和VSTAN 等基于鄰域的會(huì)話推薦方法,HR@20 和NDCG@20 指標(biāo)均有不同程度的提升(除SKNN和VSTAN 外,其余基線方法的結(jié)果均來(lái)自文獻(xiàn)[20])。這是因?yàn)镹PTAS 利用會(huì)話中項(xiàng)目的持續(xù)時(shí)間和位置信息來(lái)挖掘會(huì)話的一般偏好與當(dāng)前偏好,更好地挖掘了當(dāng)前會(huì)話的短期興趣。而SKNN 平等地對(duì)待會(huì)話中的所有項(xiàng)目,難以找到當(dāng)前會(huì)話的興趣。STAN 和VSTAN 只重視當(dāng)前會(huì)話中最近的項(xiàng)目,忽略了當(dāng)前會(huì)話的一般偏好。其次,NPTAS 考慮了會(huì)話中項(xiàng)目的停留時(shí)間,這在很大程度上降低了會(huì)話中誤點(diǎn)記錄對(duì)于推薦結(jié)果的影響。此外,NPTAS方法相較于現(xiàn)有基于神經(jīng)網(wǎng)絡(luò)的方法(包括GRU4Rec、STAMP 和SRGNN),HR@20 和NDCG@20 指標(biāo)也均有所提升,說(shuō)明NPTAS 方法在某些方面的推薦效果可以與現(xiàn)有的神經(jīng)網(wǎng)絡(luò)模型相媲美。
(2)在Adressa 和Globo.com 數(shù)據(jù)集上,NPTAS 方法相較于SKNN、STAN 和VSTAN 等基于鄰域的會(huì)話推薦方法,ILD@20 指標(biāo)得到了極大提升。說(shuō)明相較于基于鄰域的基準(zhǔn)方法,NPTAS 方法能更好地利用會(huì)話信息來(lái)發(fā)現(xiàn)用戶潛在的多樣化興趣。同時(shí)發(fā)現(xiàn)NPTAS 方法相較于基于神經(jīng)網(wǎng)絡(luò)的方法(包括GRU4Rec、STAMP 和SRGNN),ILD@20指標(biāo)有所下降,說(shuō)明基于神經(jīng)網(wǎng)絡(luò)的方法能更好地為用戶推薦多樣化的列表。
將NPTAS 方法與其3 種變體方法進(jìn)行比較:①變體NPTAS-W1。不使用會(huì)話中項(xiàng)目的位置和持續(xù)時(shí)間來(lái)捕獲會(huì)話的當(dāng)前偏好與一般偏好,即給予會(huì)話中每個(gè)項(xiàng)目相同的權(quán)重;②變體NPTAS-W2。不利用會(huì)話之間的起始時(shí)間來(lái)考慮會(huì)話之間的時(shí)間相關(guān)性,即給予所有鄰居會(huì)話相同的相似度權(quán)重;③變體NPTAS-W3。不使用候選項(xiàng)目在鄰居會(huì)話中的位置及持續(xù)時(shí)間信息來(lái)捕獲鄰居會(huì)話與候選項(xiàng)目的相關(guān)性,即給予鄰居會(huì)話中候選項(xiàng)目平等的權(quán)重。圖2、圖3 分別顯示了在Globo.com 和Adressa 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果。
Fig.2 Experimental results of the NPTAS variant method on the Globo.com dataset圖2 Globo.com數(shù)據(jù)集上NPTAS變體方法實(shí)驗(yàn)結(jié)果
Fig.3 Experimental results of the NPTAS variant method on the Adressa dataset圖3 Adressa數(shù)據(jù)集上NPTAS變體方法實(shí)驗(yàn)結(jié)果
從圖2、圖3 可以看出,當(dāng)NPTAS 方法不使用會(huì)話之間的起始時(shí)間來(lái)考慮會(huì)話之間的時(shí)間相關(guān)性時(shí),HR@K 和NDCG@K 指標(biāo)下降最為明顯。說(shuō)明在NPTAS 方法中,利用會(huì)話起始時(shí)間之差來(lái)考慮會(huì)話之間的相關(guān)性是必要的。這是因?yàn)槭褂脮?huì)話之間的起始時(shí)間差來(lái)考慮會(huì)話之間的時(shí)間相關(guān)性時(shí),可以找到興趣更接近的鄰居會(huì)話。當(dāng)NPTAS 方法不使用會(huì)話中項(xiàng)目的位置和持續(xù)時(shí)間來(lái)捕獲會(huì)話的當(dāng)前偏好與一般偏好時(shí),NPTAS 方法在HR@K 和NDCG@K 指標(biāo)上有所下降,說(shuō)明利用項(xiàng)目在會(huì)話中的位置和持續(xù)時(shí)間來(lái)考慮會(huì)話的當(dāng)前偏好與一般偏好是合理的。同時(shí)發(fā)現(xiàn),NPTAS 方法不使用候選項(xiàng)目在鄰居會(huì)話中的位置及持續(xù)時(shí)間信息來(lái)捕獲鄰居會(huì)話與候選項(xiàng)目的相關(guān)性時(shí),HR@K 和NDCG@K 指標(biāo)也有所下降,說(shuō)明利用候選項(xiàng)目在鄰居會(huì)話中的位置及持續(xù)時(shí)間信息來(lái)捕獲鄰居會(huì)話與候選項(xiàng)目的相關(guān)性也是合理的。
主要分析在Globo.com 數(shù)據(jù)集中,NPTAS 方法中的7個(gè)參數(shù)對(duì)方法HR@20 指標(biāo)的影響,實(shí)驗(yàn)結(jié)果如圖4 所示(在其它數(shù)據(jù)集中也觀察到相似的結(jié)果)。其中,NPTAS 方法中7個(gè)參數(shù)在兩個(gè)數(shù)據(jù)集上的最優(yōu)值如表4所示。
Table 4 Optimal parameter values for the NPTAS method表4 NPTAS方法最優(yōu)參數(shù)值
Fig.4 Effect of seven parameters on the NPTAS method HR@20 metric on the Globo.com dataset圖4 Globo.com數(shù)據(jù)集上7個(gè)參數(shù)對(duì)NPTAS方法HR@20指標(biāo)的影響
從圖4(a)中可以看出,只考慮最近項(xiàng)目(λ11<<1),而忽視會(huì)話中的其它項(xiàng)目,或把會(huì)話中每個(gè)項(xiàng)目平等看待(λ11→∞),結(jié)果都不是最優(yōu)。除最近的項(xiàng)目外,當(dāng)前會(huì)話中的其它項(xiàng)目也很重要,但不如最近的項(xiàng)目重要。λ31在NPTAS 中發(fā)揮了重要作用,因?yàn)镠R@20 根據(jù)λ31的不同發(fā)生了顯著變化,當(dāng)只利用推薦會(huì)話中被點(diǎn)擊項(xiàng)目在鄰居會(huì)話中的相鄰兩個(gè)項(xiàng)目(λ31<<1),或者給予鄰居會(huì)話中所有項(xiàng)目相同的得分權(quán)重(λ31→∞),取得的效果都不是最佳的。當(dāng)利用λ31來(lái)控制項(xiàng)目位置對(duì)于項(xiàng)目得分權(quán)重的重要性,取得的效果更好。
在圖4(b)中,發(fā)現(xiàn)只利用會(huì)話中停留時(shí)間長(zhǎng)的項(xiàng)目(λ12<<1)或給予當(dāng)前會(huì)話中所有項(xiàng)目同等權(quán)重(λ12→∞),效果都不佳。在給予會(huì)話中持續(xù)時(shí)間長(zhǎng)的項(xiàng)目較高權(quán)重時(shí),也需要考慮會(huì)話中的其它項(xiàng)目。同時(shí)發(fā)現(xiàn),僅考慮和鄰居會(huì)話中項(xiàng)目持續(xù)時(shí)間相近的項(xiàng)目(λ32<<1)或給予鄰居會(huì)話中所有項(xiàng)目同等權(quán)重(λ32→∞),效果都不是最佳的。利用λ32來(lái)控制項(xiàng)目持續(xù)時(shí)間對(duì)于項(xiàng)目得分權(quán)重的重要性,所取得的效果更好。
由圖4(c)可以看出,僅考慮最近的項(xiàng)目(φ1→1)或會(huì)話中持續(xù)時(shí)間長(zhǎng)的項(xiàng)目(φ1→0)都不能很好地捕獲當(dāng)前會(huì)話的短期興趣。使用φ1綜合考慮當(dāng)前會(huì)話的一般偏好和當(dāng)前偏好所表現(xiàn)出來(lái)的效果更好。隨著φ2從0 開(kāi)始不斷增大,推薦結(jié)果的準(zhǔn)確率不斷提高,說(shuō)明候選項(xiàng)目在鄰居會(huì)話中的位置信息十分重要,只考慮候選項(xiàng)目在鄰居會(huì)話中的持續(xù)時(shí)間(φ2→0)所取得的效果不是最佳的。但隨著φ2的繼續(xù)擴(kuò)大,推薦結(jié)果的準(zhǔn)確率開(kāi)始下降,說(shuō)明只考慮候選項(xiàng)目的位置信息(φ2→1)所取得的效果也不是最佳的,使用φ2來(lái)控制這兩個(gè)因素的重要性所取得的效果更好。
從圖4(d)中明顯看出,僅考慮最近的歷史會(huì)話(λ2<<1)或給予所有歷史會(huì)話同等權(quán)重(λ2→∞)都降低了推薦效果,使用λ2來(lái)控制歷史會(huì)話的權(quán)重,取得的效果最好。除最近的歷史會(huì)話外,其它歷史會(huì)話也很重要,但其重要性低于最近的歷史會(huì)話。
從表4 可以看出,NPTAS 方法在不同數(shù)據(jù)集上的最優(yōu)參數(shù)值各有不同,說(shuō)明了實(shí)驗(yàn)選取數(shù)據(jù)集的多樣性,以及NPTAS 方法能通過(guò)調(diào)整參數(shù)來(lái)適應(yīng)各種應(yīng)用場(chǎng)景的能力。
本文提出一種基于鄰域與位置時(shí)間感知的會(huì)話推薦方法(NPTAS),該方法通過(guò)捕獲會(huì)話的一般偏好與當(dāng)前偏好來(lái)構(gòu)建會(huì)話的表示向量,利用會(huì)話的起始時(shí)間來(lái)獲取會(huì)話相似度的權(quán)重因子,并利用會(huì)話中項(xiàng)目的持續(xù)時(shí)間來(lái)減小由于匿名用戶誤點(diǎn)產(chǎn)生的影響,最后利用鄰居會(huì)話中候選項(xiàng)目的時(shí)間和位置信息來(lái)捕獲鄰居會(huì)話對(duì)候選項(xiàng)目得分的貢獻(xiàn)度,有效挖掘了用戶的短期興趣。在后續(xù)工作中,將利用會(huì)話數(shù)據(jù)中隱含更深的信息來(lái)挖掘匿名用戶的短期興趣,提升推薦效果。