推薦系統實踐筆記 八

2022-08-20 12:39:07 字數 3041 閱讀 8482

第八章 評分**問題

乙個評分記錄為乙個三元組(u,i,r)我們用$r$表示乙個使用者u給物品i的評分.

8.2 評分評測演算法

(1) 平均值

假設有兩個分類的函式,乙個是使用者分類函式$\phi$,乙個是物品分類函式$\varphi$.$\phi(u)$定義了使用者u所屬的類,$varphi(i)$定義了物品i所屬的類,評分**值為:

(2) 基於領域的方法

基於使用者的領域演算法認為乙個使用者對乙個物品的評分,需要參考和這個使用者興趣相似的使用者對該物品的評分.

這裡, s(u, k) 是和使用者 u 興趣最相似的 k 個使用者的集合,n(i) 是對物品 i 評過分的使用者集合.$r_$是使用者v對物品i的評價,$\hat$是使用者v所有評分的平均值,使用者之間的相似度可以通過皮爾遜係數計算:

(3) 隱語義模型與矩陣分解模型

使用者的評分行為可以表示成乙個評分矩陣 r,其中 r [ u ][ i ] 就是使用者 u 對物品 i 的評分,評分系統在某種意義上是對矩陣中確實的值填空.要尋找的補全方法是一種對矩陣擾動最小的補全方法--既補充之前與之後矩陣的特徵值相差不大.

最開始使用svd(奇異值分解)來解決這個問題,svd對空間的要求以及其計算所需的高額時間負責度是大型推薦系統所不能接受的.funk-svd用了隱模型的方法來改進svd,用機器學習訓練的方式去獲取矩陣(也就是lfm),這部分在第三章有詳細的說明.

加入偏置項的lfm

無論是使用者還是物品,都有其各自的固定屬性,這裡用對應的偏置值來表述,改進後的lfm**公式為:$\hat} = \mu+b_u+b_i+p_^t*q_i$.新增的三項功能如下:(會有其可解釋性)

> $\mu$ 訓練集中所有記錄的評分的全域性平均數,可以用來表示**本身對使用者評分的影響

> $b_u$ 使用者偏置項,用來表示使用者的固定屬性

> $b_i$  物品偏置項,用來表示物品的固定屬性

這個模型稱為biassvd模型

考慮領域影響的lfm

上述的lfm模型並沒有顯示的考慮使用者的歷史行為對使用者評分測試的影響.首先修改itemcf,讓其變為乙個可學習的模型,itemcf**的方式修改如下:

這裡,$w_$不在是相似矩陣,而是有待學習的引數,學習的loss函式為:

這樣改進還不夠,w是乙個比較稠密的矩陣,對空間的要求比較高.koren將w矩陣進行分解,將引數個數降低到2*n*f個,模型如下;

$x_i$與$x_j$為兩個f維的向量,用$x_^tx_j$代替了$w_$大大降低了引數的數量和儲存空間.改進後的模型如下所示:

加入時間資訊

1. 基於領域的模型融合時間資訊

主要描述基於物品的領域模型,稱為titemcf,**公式如下:

$f(w_,\delta)$是乙個考慮了時間衰減的相似函式,$w_$表示兩個物品的相似度,$\delta$是時間差,主要的目的是提高使用者最近的評分行為對推薦系統的影響,f公式如下:

$\sigma(x)$為sigmoid函式,隨著$\delta$增加,$f(w_,\delta)$會變小,也就是使用者的行為對現在評測的影響隨著時間變長而不那麼重要.

2. 基於矩陣分解的模型融合時間資訊

引入時間資訊後,使用者評分矩陣不再是乙個二維的矩陣,而是三維矩陣,可以仿照二維矩陣的分解方式對三維矩陣進行分解,biassvd中新增加的三個部分可以看做對二維矩陣的零維,一維分解.仿照這個思想,我們可以將使用者—物品—時間三維矩陣如下分解:

這裡$b_t$建模了系統整體平均分隨時間變化的效應,$x_^ty_t$建模了使用者平均分隨時間變化的效應,$s_^tz_t$了使用者平均分隨時間變化的,公式最後一項建模了使用者興趣隨著時間影響的效應.

3. 模型融合

(1) 模型級聯融合 (類似adaboost)

和加性模型類似,假設已經有乙個模型$\hat$,$r_$為真實的資料,那麼類似前向分布演算法我們可以定義乙個loss如下:

具體的過程類似adaboost,每次通過上述損失函式設計出乙個新的模型,然後在一定引數的限制下加入原有的模型.

(2) 模型加權融合

帶權的線性融合:

一般來說,評分**問題的解決需要在訓練集上訓練k個不同的**器,然後在測試集上作出**。但是,如果我們繼續在訓練集上融合k個**器,得到線性加權係數,就會造成過擬合問題.採用以下三步來解決這個問題:

> 假設資料集已經被分為了訓練集a和測試集b,那麼首先需要將訓練集a按照相同的分割方法分為a1和a2,其中a2的生成方法和b的生成方法一致,且大小相似。

> 在a1上訓練k個不同的**器,在a2上作出**。因為我們知道a2上的真實評分值,所以可以在a2上利用最小二乘法計算出線性融合係數$\alpha_k$。

> 在a上訓練k個不同的**器,在b上作出**,並且將這k個**器在b上的**結果按照已經得到的線性融合係數加權融合,以得到最終的**結果。

推薦系統實踐筆記(一)

import pandas as pd from pandas import series,dataframe from operator import itemgetter,attrgetter import math unames user id gender age occupation zi...

推薦系統實踐筆記 一

第一章 好的推薦系統 1.1 什麼是推薦系統 當使用者沒有明確需求的時候 有明確需求的時候,通過搜尋引擎一般都能夠解決問題 如果週末想去看電影,但是不確定看什麼電影 不確定的需求 這時候需要乙個自動化的工具,它能夠根據你的歷史行為分析出你可能會喜歡哪些系統.推薦系統是自動聯絡使用者和物品的一種工具....

什麼是推薦系統? 推薦系統實踐筆記1

隨著資訊科技 information technology 和網際網路 internet 的發展,人們逐漸從資訊匱乏的時代走向資訊過載的時代。對於內容生產者來說,需要思考的問題是如何使生產的資訊受到使用者的大量關注 對於使用者來說,如何快速找到自己所需要的資訊是很重要的。因此,有效連線內容生產者和使...