• 沒有找到結果。

為了推薦多樣性的課程給學習者,我們使用三組實驗,分別為電影 資料集、笑話資料集、課程資料集,來觀察使用者為基礎的主題模型、

項目為基礎的主題模型、使用者為基礎推薦和項目為基礎的推薦之間的 表現。使用評估方法為精確度、召回率、F1 值、MAE、MAP 和總體多 樣性來比較四種方法之間的差異。

本研究主題模型的系統架構如圖 1,除了需要使用者的評分資料,

還需要所有項目內容,因此本研究的原始資料需要包含每個項目的內容 和使用者給項目的評分。而這些項目內容中,若有沒有內容的項目,本 研究會先把這幾筆去除,並整理每位使用者選過的項目。在這些項目內 容中,有許多無代表性的字,例如:his、her、is、are、of…所以要先去除 這些停用字,然後再用 LDA 對所有的項目找出主題字詞分布,結合使用 者看過的項目內容,就能獲得到該使用者的主題分布,若是結合項目內 容,就能得到該項目的主題分布,再利用這些主題分布,對未評分的項

12

目計算出預測評分,在降冪排序,將前 N 名的項目推薦給該使用者。

原始資料 (項目內容、使用

者對項目評分)

過濾完的項目

整理過的項 目內容 主題分布

項目預測評分

前N名推薦項目 過濾沒內容

的項目

去除停用字

LDA找出主 計算未評分

項目

評分排序

圖 1. LDA 系統架構

主題分布的產生在項目為基礎的 LDA 和使用者為基礎的 LDA 都是 相同的,是透過所有項目 LDA 獲得的主題分布 T,即 ⃗ ⃗ ⃗ ⃗ ,

為主題分布中第 k 個主題,而每個主題中又有代表該主題的字,即 t⃗ 𝑤 𝑤 𝑤 𝑤 𝑛 ,𝑤 𝑛為 k 個主題中第 n 個字。

以項目為基礎的 LDA,項目的主題分布是結合所有項目 LDA 獲得的 主題分布結果所獲得,因為所有項目 LDA 後的結果只有主題字詞的分布,

不管是使用者的主題分布或是項目的主題分布都要再另外推導。其步驟

如下:

(1) 將項目 i 的內容去對應 k 主題中的字,記錄擊中次數 c,除上項目 i 的總字數 s,會得到項目 i 在第 k 個主題中的第 n 個字的權重,即 𝑝𝑖 𝑛 𝑐𝑤𝑘1/𝑠𝑖,例如:項目 1 在主題 0 中 tells 出現過 3 次,但項目共 有 150 個字,所以 tells 的值為 3/150=0.02 (Chen 2011)。

(2) 將主題 k 中所有字得到的值加總起來,會得到項目 i 中 k 主題的值,

𝑖 𝑝𝑖 𝑝𝑖 𝑝𝑖 𝑝𝑖 𝑛,所以會得到該項目 i 的每個 主題 v 的值。因此,我們就會得到每個項目的主題分布 𝑖,即

𝑖 𝑖 𝑖 𝑖 𝑖 。之後再透過餘弦相似度計算出項目之間的 相似度,然後利用這些相似度來計算未看過的項目的預測分數。

以使用者為基礎的 LDA,使用者的主題分布也是結合所有項目 LDA 獲得的主題分布 T 所獲得的。每個使用者 u 的主題分布是由該使用者看 過的項目主題分布結合,成為該使用者的主題分布。(Wilson et al. 2014) (1) 為了得到使用者看過的每個項目的主題分布向量,需要先計算項目 i 的內容對應主題中的字,記錄擊中次數 c,除上項目 i 的總字數 s,會 得到項目 i 在第 k 個主題中的第 n 個字的權重,即𝑝𝑖 𝑛 𝑐𝑤𝑘1/𝑠𝑖,能 得到該項目 i 在第 k 個主題之下的值,𝑖 (𝑝𝑖 𝑝𝑖 𝑝𝑖 𝑝𝑖 𝑛) 。 也能得到該項目 i 的主題分布向量, 𝑖 𝑖 𝑖 𝑖 𝑖 ,但這並 不代表是該使用者對該項目 i 的主題的分布向量。

14

(2) 所以我們需要將剛得到的主題分布乘上評分標準化,才能成為使用者 對該項目的主題分布向量。評分標準化我們是計算該使用者 u 對該項 目 i 的評分 𝑖,除上該使用者 u 對所有評分項目的總分 ,例如:使 用者的 𝑖為 3,但 為 24,那該主題分布向量的每個𝑤𝑛就乘上 1/8。

該項目的第 k 個主題分布向量為t 𝑖 ∗ (𝑝𝑖 𝑝𝑖 𝑝𝑖 𝑝𝑖 𝑛),

因此得到該使用者 u 對評分過的項目 i 的主題分布向量。

(3) 該使用者 u 的第 k 個主題 ,是由 n 個評分過的項目的主題分布向 量的加總, 𝑛 ,將每個使用者評分過的項 目的主題分布向量加總起來,最後會得到該使用者 u 的主題分布向量 𝑇 ,𝑇 。透過以上方法,得到每位使用 者的主題分布向量,再透過餘弦相似度計算使用者主題分布向量之間 的相似度,來預測項目的評分。

項目內容 主題字詞 分布

主題分布

項目間的相似

項目的預測評

計算項目主 題分布

餘弦相似度 計算項目相

似度 預測評分

圖 2. 主題產生流程 3.1. 主題模型之協同過濾推薦系統

主題模型是將所有項目,透過 LDA 找出所有項目的主題分布,利用 這主題分布可以推導出每個項目的主題向量或每個使用者的主題向量,

項目為基礎的主題模型是利用主題模型得到的項目主題向量,用以下的 餘弦相似度公式,將項目 i 的主題分布 與項目 j 的主題分布 ,計算相 似度,然後依據該使用者曾經看過的項目喜好,利用項目為基礎的協同 過濾的方法來推薦。

𝑠𝑖𝑚(𝑇𝑖 𝑇) 𝑐𝑜𝑠(𝑇⃗⃗⃗ 𝑇⃗⃗⃗) 𝑇⃗⃗⃗ ∙ 𝑇⃗⃗⃗

‖𝑇⃗⃗⃗‖‖𝑇⃗⃗⃗‖

16

使用者為基礎的主題模型是利用主題模型得到的使用者主題向量,使 用以下的餘弦相似度來計算,該使用者 u 的主題分布 u與鄰近使用者 g 的主題分布 g的相似度,依據鄰近使用者對該項目的偏好,利用使用者 為基礎的協同過濾方法來推薦。

sim(𝑇 𝑇𝑔) cos(𝑇⃗⃗⃗⃗⃗ 𝑇⃗⃗⃗⃗) 𝑔 𝑇⃗⃗⃗⃗⃗ ∙ 𝑇⃗⃗⃗⃗𝑔

‖𝑇⃗⃗⃗⃗⃗‖‖𝑇⃗⃗⃗⃗‖𝑔 3.2. 使用者為基礎的推薦系統

使用者為基礎的推薦,目的是找到與該使用者相似的使用者,也就是 興趣相同的使用者,因此首先要計算該使用者與所有其他使用者喜歡的 項目清單之間的相似度,例如 Pearson 方法來獲得。然後計算與該使用者 相似的使用者對於預測項目的評分,如以下公式。透過上述得到的預測 結果,產生推薦清單給該使用者。

𝑃𝑎 𝑖𝑦∈𝑃 𝑅𝑦 𝑖 − 𝑅̅̅̅̅ 𝑤𝑦 𝑎 𝑦

𝑦∈𝑃|𝑤𝑎 𝑦|

公式中,𝑃𝑎 𝑖為使用者 a 對於項目 i 的預測評分,𝑅𝑦 𝑖為鄰近使用者群 P 中的使用者 y,對於項目 i 的評分,𝑅̅̅̅̅為使用者 y 的平均評分,𝑤𝑦 𝑎 𝑦為 使用者 a 對使用者 y 的相似度。

3.3. 項目為基礎的推薦系統

項目為基礎的推薦,是找到使用者評分過的項目相似預測評分高的項 目。因此首先要計算預測項目與使用者評分的項目之間的相似度,然後

計算使用者對於預測項目的評分,透過計算與預測項目相似的項目評分 總和來獲得,如以下公式。透過上述結果得到預測結果,產生推薦清單 給使用者。

𝑃𝑎 𝑖𝑛∈𝑁𝑎 𝑎 𝑛𝑤𝑖 𝑛

𝑛∈𝑁𝑎|𝑤𝑖 𝑛|

公式中,𝑃𝑎 𝑖為使用者 a 對於項目 i 的預測評分, 𝑎 𝑛為使用者 a 對於 使用者評分過的項目𝑁𝑎中的項目 n 的評分,𝑤𝑖 𝑛為項目 i 對於項目 n 的相 似度。

3.4. 衡量多樣性

推薦的多樣性逐漸增加,代表著相似度逐漸下降,多樣性的衡量又可 分為個體多樣性和總體多樣性,衡量個體多樣性,是根據以下相似度的 公式,課程清單表示 C={𝐶 , 𝐶 , 𝐶 ,..., 𝐶𝑛},n 表示推薦前 N 名的數量,Q 表示為目標查詢的課程,從這公式得到推薦清單與 Q 之間的相似度。

𝑆𝑖𝑚𝑖𝑙𝑎 𝑖 𝑦 𝐶 𝑄 ∑𝑛𝑖= 𝑆𝑖𝑚 𝐶𝑖 𝑄 𝑛

個體多樣性的衡量可以根據以上公式來獲得,為了提高多樣性,務必 要犧牲相似度,這公式可以得到推薦清單內的多樣性程度。

𝐼𝐷𝑖 𝑒 𝑠𝑖 𝑦 𝐶 ∑𝑛− 𝑖= 𝑛 =𝑖+ 1 − 𝑆𝑖𝑚(𝐶𝑖 𝐶 ) 𝑛 𝑛 − 1

2

衡量總體多樣性,我們可以用以下公式來獲得,U 是所有使用者,

𝐿𝑁 𝑢 是代表使用者 u 的推薦清單,當使用者們的差異越大,總體多樣性

18

也會越大,相對的當使用者們差異越小,總體多樣性也會越小。

𝐴𝐷𝑖 𝑒 𝑠𝑖 𝑦 |⋃ 𝐿𝑁 𝑢

∈𝑈

|

3.5. 一般的衡量

本研究除了進行多樣性的比較,還會利用一般的一些評估方法來做 比較,探究在多樣性的結果之下,其他評估方法的表現如何。我採用一 些評估傳統推薦系統的方法,像是精確度、召回率、F1、MAE、MAP 的 測量。

精確度是指推薦清單中,正確被推薦的項目數。例如,推薦前 5 名 的項目,正確擊中的有 3 個,如表 1,所以精確度就是 3/5。雖然可以知 道推薦清單有多少是使用者喜歡的,但卻不能知道使用者真正喜歡的有 多少被推薦出來,因此,這需要再考慮召回率。

表 1. 精確度、召回率例子

Ranking 1 2 3 4 5

正確 ◎ ◎ ◎

𝑃 𝑒𝑐𝑖𝑠𝑖𝑜𝑛 { 𝑒𝑙𝑒 𝑎𝑛 𝑖 𝑒𝑚} ∩ {𝑇𝑜𝑝𝑁}

{𝑇𝑜𝑝𝑁}

召回率是指使用者真正喜歡的項目,有多少項目真正被推薦出去。

例如,目前有 6 個項目是使用者真正會喜歡的,而範例只推薦 3 個項目

給使用者,所以召回率就是 3/6。但召回率會有一個問題,當我們推薦前 N 名的清單,N 逐漸增加,那召回率也會逐漸增加,因此會再考慮 F1 值。

𝑅𝑒𝑐𝑎𝑙𝑙 { 𝑒𝑙𝑒 𝑎𝑛 𝑖 𝑒𝑚} ∩ {𝑇𝑜𝑝𝑁}

{ 𝑒𝑙𝑒 𝑎𝑛 𝑖 𝑒𝑚}

精確度和召回率的綜合指標,使用 F1,因為通常推薦清單越大,精 確度就會越小,而召回率會越大,但是當推薦清單越小,精確度就會越 大,召回率會愈小,因此我們需要 F1 來計算。

𝐹1 2 ∗ 𝑃 𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∗ 𝑅𝑒𝑐𝑎𝑙𝑙 𝑃 𝑒𝑐𝑖𝑠𝑖𝑜𝑛 𝑅𝑒𝑐𝑎𝑙𝑙

MAP(Mean Average Precision)是由 AP 延伸,AP 是計算單次查詢的 結果。 例如: 目前有 6 個項目是使用者真正會喜歡的,推薦兩次前 5 名 的排名,如表 2,AP 的計算就是將正確的精確度相加,除上個數,

AP#1=(1.0+0.67+0.6)/3=0.76。而 MAP 是計算所有查詢的結果取平均。例 如:目前有兩個排名,第一個有 6 個正確答案,第二個有 5 個正確答案,

AP#1=(1.0+0.67+0.6)/3=0.76,AP#2=(1.0+0.4)/2=0.7,

MAP=(0.76+0.7)/2=0.73。

表 2. MAP 例子

Ranking#1 1 2 3 4 5

正確 ◎ ◎ ◎

Recall 0.17 0.17 0.33 0.33 0.5 Precision 1.0 0.5 0.67 0.5 0.6

Ranking#2 1 2 3 4 5

20

正確 ◎ ◎

Recall 0.2 0.2 0.2 0.2 0.4 Precision 1.0 0.5 0.33 0.25 0.4

MAE(Mean Absolute Error)是用來看預測值和實際值之間的差距,結 果越小表示誤差越小,代表越好。MAE 公式中𝑓𝑖表示預測值,在這也就 是預測評分,𝑦𝑖表示實際值,n 是項目數。例如:目前推薦前三名,如表 3,

前三名的 MAE=(0.4+0.7+1.2)/3,MAE=0.77。

𝑀𝐴𝐸 ∑𝑛𝑖= |𝑓𝑖 − 𝑦𝑖| 𝑛

表 3. MAE 例子

Ranking#2 1 2 3 預測評分 3.4 3.7 2.8

實際評分 3 3 4

相關文件