推荐系统笔记:基于模型的协同过滤
1 介紹
????????基于鄰域的協(xié)同過濾方法可以看作是機器學(xué)習中常用的k-最近鄰分類器KNN的泛化。 這些方法是基于實例的方法,因此,除了可選的預(yù)處理階段之外,沒有專門為預(yù)測預(yù)先創(chuàng)建模型。
推薦系統(tǒng)筆記:Introduction_UQI-LIUWJ的博客-CSDN博客
1.1 基于模型的協(xié)同過濾 VS 分類回歸問題
????????在基于模型的方法中,與有監(jiān)督或無監(jiān)督的機器學(xué)習方法一樣,預(yù)先創(chuàng)建了從數(shù)據(jù)學(xué)習到的模型。 因此,訓(xùn)練(或模型構(gòu)建階段)與預(yù)測階段明顯分開。
????????傳統(tǒng)機器學(xué)習中此類方法的示例包括決策樹、基于規(guī)則的方法、貝葉斯分類器、回歸模型、支持向量機和神經(jīng)網(wǎng)絡(luò) 。 有趣的是,幾乎所有這些模型都可以推廣到協(xié)同過濾場景,就像 k 最近鄰分類器可以推廣到基于鄰域的模型進行協(xié)同過濾一樣。
????????這是因為傳統(tǒng)的分類和回歸問題是矩陣補全(或協(xié)同過濾)問題的特例。(推薦系統(tǒng)筆記:Introduction_UQI-LIUWJ的博客-CSDN博客?1.1.3 小節(jié))
????????在為協(xié)同過濾設(shè)計學(xué)習算法時,記住協(xié)同過濾問題和數(shù)據(jù)分類問題之間的相似性很有用。這是因為數(shù)據(jù)分類是一個研究比較深入的領(lǐng)域,分類的各種解決方案也為協(xié)同過濾算法的設(shè)計提供了重要的提示。
????????事實上,大多數(shù)機器學(xué)習和分類算法在協(xié)同過濾文獻中都有直接的類比。以類似于分類模型的方式,可以理解協(xié)同過濾推薦系統(tǒng)中的大量算法。(例如,分類文獻中的經(jīng)典元算法,如 bagging、boosting 或模型組合,可以擴展到協(xié)同過濾。)
????????然而,將數(shù)據(jù)分類模型直接推廣到矩陣完成問題并不總是那么容易,尤其是當絕大多數(shù)條目丟失時。 此外,各種模型的相對有效性在不同的環(huán)境中是不同的。 例如,一些最近的協(xié)同過濾模型,例如潛在因子模型,特別適合協(xié)同過濾。 然而,這些模型在數(shù)據(jù)分類的背景下不被視為有競爭力的好模型。
1.2 相比于基于鄰居的協(xié)同過濾問題的優(yōu)勢
1.2.1 空間優(yōu)勢
????????通常,學(xué)習模型的大小比原始評分矩陣小得多。 因此,空間要求通常很低。
1.2.2 速度優(yōu)勢(訓(xùn)練速度&預(yù)測速度)
????????基于鄰域的方法的一個問題是預(yù)處理階段是用戶數(shù)量或項目數(shù)量的二次方。(比較某一個用戶/項目 和其他所有的用戶和項目, 以找到同類用戶/項目)
????????在構(gòu)建訓(xùn)練模型的預(yù)處理階段,基于模型的系統(tǒng)通常要快得多。 在大多數(shù)情況下,緊湊和匯總的模型可用于有效地進行預(yù)測。
1.2.3 避免過擬合
????????過度擬合是許多機器學(xué)習算法中的一個嚴重問題。?基于模型的方法的總結(jié)方法通常可以幫助避免過度擬合。 此外,在基于模型的方法中,可以使用正則化方法使這些模型具有魯棒性。
????????盡管基于鄰域的方法是最早的協(xié)同過濾方法之一,并且由于其簡單性也是最受歡迎的方法之一,但它們不一定是當今可用的最準確的模型。
????????事實上,一些最準確的方法通常基于基于模型的技術(shù),特別是基于潛在因素模型。
2 決策樹&回歸樹
????????推薦系統(tǒng)筆記:決策樹&回歸樹_UQI-LIUWJ的博客-CSDN博客
3 關(guān)聯(lián)規(guī)則
關(guān)聯(lián)規(guī)則(Association Rules)筆記_UQI-LIUWJ的博客-CSDN博客_association rule
????????關(guān)聯(lián)規(guī)則\和協(xié)同過濾之間的關(guān)系是很自然的,因為關(guān)聯(lián)規(guī)則問題首先是在發(fā)現(xiàn)超市數(shù)據(jù)之間的關(guān)系,并利用之向用戶推薦的背景下提出的。?
? ? ? ? 在關(guān)聯(lián)規(guī)則問題中,客戶購買的物品設(shè)置為 1,而缺失的物品設(shè)置為 0 作為近似值。 對于大多數(shù)類型的評分矩陣,將缺失值設(shè)置為 0 并不常見,因為這樣做會導(dǎo)致預(yù)測出現(xiàn)偏差。 但是,它通常被認為是稀疏一元矩陣中可接受的做法,因為在這些情況下,屬性的最常見值通常為 0。 因此,偏差的影響相對較小,現(xiàn)在可以將矩陣視為二進制數(shù)據(jù)集。
? ? ? ??基于關(guān)聯(lián)規(guī)則的協(xié)同過濾的第一步是在預(yù)先指定的最小支持度和最小置信度水平上發(fā)現(xiàn)所有關(guān)聯(lián)規(guī)則。最小支持度和最小置信度可以被視為參數(shù),這些參數(shù)經(jīng)過調(diào)整 以最大限度地提高預(yù)測準確性。
????????只保留那些結(jié)果中恰好包含一個項目的規(guī)則。這組規(guī)則就是模型,可用于為特定用戶執(zhí)行推薦。
????????考慮一個給定的客戶 A,它希望向其推薦相關(guān)項目。第一步是確定客戶 A 觸發(fā)的所有關(guān)聯(lián)規(guī)則。如果關(guān)聯(lián)規(guī)則的前件中的項集是該客戶偏好的項的子集,則稱關(guān)聯(lián)規(guī)則被客戶 A 觸發(fā)。
????????然后按照降低置信度的順序?qū)λ杏|發(fā)的規(guī)則進行排序。在這些排序規(guī)則的結(jié)果中發(fā)現(xiàn)的前 k 個項目被推薦為客戶 A 的前 k 個項目。
????????上述關(guān)聯(lián)規(guī)則基于一元評分矩陣,允許指定喜歡,但不允許指定不喜歡。
???????? 但是,通過使用這種基本方法的變體,可以輕松處理數(shù)值評級。
???????? 當可能的評分數(shù)量很少時,評分-項目組合的每個值都可以視為一個偽項目(pseudo item)。 此類偽項目的一個示例是(項目 = 面包,評分 = 1分)。【此時的規(guī)則形如這樣的:(項目=面包,評分=1分) & (項目=蛋糕,評分=5分)-> (項目=披薩,評分=4分)】
????????根據(jù)這些偽項目創(chuàng)建一組新的交易。 然后使用前面討論的關(guān)聯(lián)規(guī)則方法根據(jù)這些偽項目構(gòu)建規(guī)則。 ?
????????對于給定的客戶,觸發(fā)規(guī)則集是通過識別其先行詞包含該用戶的偽項目子集的規(guī)則來確定的。
????????規(guī)則按置信度降序排列。這些排序規(guī)則可用于通過選擇這些規(guī)則的結(jié)果中的前 k 個偽項目來預(yù)測項目的評分。
????????在這種情況下可能需要的附加步驟是解決各種規(guī)則之間的沖突,因為客戶觸發(fā)的規(guī)則中的不同偽項可能會發(fā)生沖突。
????????例如,偽項目(項目 = 面包,評分 = 1分)和(項目 = 面包,評分 = 2分)是沖突的偽項目。
????????這種沖突可以通過找到一種在結(jié)果中聚合評級的方法來解決,以創(chuàng)建最終排序的推薦列表。還可以通過使用各種啟發(fā)式方法對結(jié)果中的評分進行數(shù)值聚合。
????????例如,可以首先確定結(jié)果對應(yīng)于感興趣項目的所有觸發(fā)規(guī)則。以加權(quán)平均方式對這些觸發(fā)規(guī)則的結(jié)果中的項目評分進行投票,以便對該用戶-項目組合進行預(yù)測。人們可以通過平均過程中的相應(yīng)置信度來加權(quán)觸發(fā)規(guī)則中的評級。
????????例如,如果兩個規(guī)則在結(jié)果(對于特定項目)中包含評分1,置信度分別為 0.9 和 0.8,則該項目打分為1分的總“票數(shù)”為 0.9+0.8=1.7 .
???????當評分量表的粒度非常有限(例如,喜歡或不喜歡)時,投票方法更合適。在具有高粒度的基于區(qū)間的評級的情況下,可以將評級離散為較少數(shù)量的區(qū)間,然后使用與上述相同的方法。
總結(jié)
以上是生活随笔為你收集整理的推荐系统笔记:基于模型的协同过滤的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐系统笔记:使用分类模型进行协同过滤
- 下一篇: 推荐系统笔记:基于潜在因子模型的协同过滤