日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

推荐系统: 数据、问题与算法

發布時間:2024/8/23 windows 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 推荐系统: 数据、问题与算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網絡的迅速發展帶來了信息量的大幅增長,使得用戶在面對大量信息時無法從中獲得對自己真正有用的那部分信息,對信息的使用效率反而降低了,導致信息超載(information overload)問題。
解決信息超載問題一個非常有潛力的辦法是推薦系統,它是根據用戶的信息需求、興趣等,將用戶感興趣的信息、產品等推薦給用戶的個性化系統。和搜索引擎相比推薦系統通過研究用戶的興趣偏好,進行個性化計算,由系統發現用戶的興趣點,從而引導用戶發現自己的信息需求。一個好的推薦系統不僅能為用戶提供個性化的服務,還能和用戶之間建立密切關系,讓用戶對推薦產生依賴。
推薦系統現已廣泛應用于很多領域,其中最典型并具有良好的發展和應用前景的領域就是電子商務領域。同時學術界對推薦系統的研究熱度一直很高,逐步形成了一門獨立的學科。
一些名詞能很好的刻畫推薦系統,如千人千面、猜你喜歡等。

數據

推薦系統包括一些基礎數據與附加信息。

基礎數據

令用戶數量為nnn, 商品數量為mmm. 用戶對商品評分構成的矩陣 R=(rij)n×m\mathbf{R} = (r_{ij})_{n \times m}R=(rij?)n×m?. 如下表所示:

分兩種情況討論:

  • 如果僅知道用戶是否瀏覽過商品, rijr_{ij}rij?的取值范圍為{0,1}\{0, 1\}{0,1}R\mathbf{R}R表示瀏覽矩陣,rij=1r_{ij} = 1rij?=1表示用戶uiu_iui?瀏覽過商品tjt_jtj?rij=0r_{ij} = 0rij?=0表示用戶uiu_iui?沒有瀏覽過商品tjt_jtj?,這種評分也被稱為隱式評分(implicit ratings).
  • 如果用戶給購買過的商品進行評分,R\mathbf{R}R表示評分矩陣,rijr_{ij}rij?代表用戶uiu_iui?對商品tjt_jtj?的評分,?一般的取值范圍為{0,1,2,3,4,5}\{0, 1, 2, 3, 4, 5\}{0,1,2,3,4,5},0分表示用戶沒有購買過商品,1分表示用戶不喜歡該商品,5分表示用戶特別喜歡該商品.

用戶及商品信息

用戶有自身信息, 如: 性別、國籍、信仰、年齡、職業等等.
商品有自身信息, 以電影為例, 包括: 出品時間、導演、主演、類型 (愛情片、動畫片、喜劇片、懸疑片等,可多選)、片長等等.
以飯店為例, 有位置 (城市、街道)、營業時間、類別 (川菜、粵菜、魯菜).

社交網絡

用戶與用戶之間存在著信任關系(或稱為好友),這樣就構成了一個基于信任的社交網絡,這些社交關系有利于給用戶進行畫像.

用戶評論/點贊

用戶不僅要給商品打分, 還會給用戶/商品寫一些評論或點贊. 這些評論或點贊可能比分數提供更豐富的語義信息.

其它信息

推薦系統應用廣泛,如新聞、商品、音樂、視頻等,都可以作為推薦的對象,針對不同應用場景,會收集很多相關信息,后續根據不同應用場景再補充。

問題

推薦系統的核心問題就是預測用戶對商品的偏好。這種偏好可以用一個評分來表示,也可以用是否有瀏覽/購買的意愿來表示。針對具體的應用場景,需要說明輸入、輸出、優化目標、約束條件。

基于瀏覽矩陣的推薦

問題:瀏覽/購買預測
輸入:訓練矩陣Rt=(rijt)n×m\mathbf{R}^t = (r_{ij}^t)_{n \times m}Rt=(rijt?)n×m?,所有評分矩陣R=(rij)n×m\mathbf{R} = (r_{ij})_{n \times m}R=(rij?)n×m?.
輸出:預測矩陣P=(pij)n×m\mathbf{P} = (p_{ij})_{n \times m}P=(pij?)n×m?.
優化目標:最大化準確率
max?acc(Rt,P,R)=∣{(i,j)∈R∣rijt=0,rij=1,pij=rij}∣∣{(i,j)∈R∣rijt=0,rij=1}∣\max acc(\mathbf{R}^t, \mathbf{P}, \mathbf{R}) = \frac{|\{(i, j) \in \mathbf{R} | r_{ij}^t = 0, r_{ij} = 1, p_{ij} = r_{ij}\}|}{|\{(i, j) \in \mathbf{R} | r_{ij}^t = 0, r_{ij} = 1\}|}maxacc(Rt,P,R)={(i,j)Rrijt?=0,rij?=1}{(i,j)Rrijt?=0,rij?=1,pij?=rij?}? .
其中:

  • R\mathbf{R}R用于測試階段評價推薦算法的準確率, 不能用于訓練.
  • 完備矩陣 R\mathbf{R}R在現實中并不存在.
  • 0 具有了有同解釋 (語義), 在訓練集Rt\mathbf{R}^tRt中表示未知, 在預測矩陣P\mathbf{P}P中表示不喜歡或不購買, 在完備矩陣R\mathbf{R}R中既可能表示未知, 也可能表示不喜歡.
  • 基于評分矩陣的預測

    問題:評分預測
    輸入:訓練矩陣Rt=(rijt)n×m\mathbf{R}^t = (r_{ij}^t)_{n \times m}Rt=(rijt?)n×m?,所有評分矩陣R=(rij)n×m\mathbf{R} = (r_{ij})_{n \times m}R=(rij?)n×m?.
    輸出:預測矩陣P=(pij)n×m\mathbf{P} = (p_{ij})_{n \times m}P=(pij?)n×m?.
    優化目標:

    • 最小化平均絕對誤差 (mean absolute error)
      min?mae(Rt,P,R)=Σ(i,j)∈{(i,j)∈R∣rijt=0,rij>0}∣pij?rij∣∣{(i,j)∈R∣rijt=0,rij>0}∣\min mae(\mathbf{R}^t, \mathbf{P}, \mathbf{R}) = \frac{\Sigma_{(i,j) \in \{(i, j) \in \mathbf{R} | r_{ij}^t = 0, r_{ij} > 0\}}|p_{ij} - r_{ij}|}{|\{(i, j) \in \mathbf{R} | r_{ij}^t = 0, r_{ij} > 0\}|}minmae(Rt,P,R)={(i,j)Rrijt?=0,rij?>0}Σ(i,j){(i,j)Rrijt?=0,rij?>0}?pij??rij??
    • 最小化均方誤差 (root mean square error)
      min?rsme(Rt,P,R)=Σ(i,j)∈{(i,j)∈R∣rijt=0,rij>0}(pij?rij)2∣{(i,j)∈R∣rijt=0,rij>0}∣\min rsme(\mathbf{R}^t, \mathbf{P}, \mathbf{R}) =\sqrt{ \frac{\Sigma_{(i,j) \in \{(i, j) \in \mathbf{R} | r_{ij}^t = 0, r_{ij} > 0\}}(p_{ij} - r_{ij})^2}{|\{(i, j) \in \mathbf{R} | r_{ij}^t = 0, r_{ij} > 0\}|}}minrsme(Rt,P,R)={(i,j)Rrijt?=0,rij?>0}Σ(i,j){(i,j)Rrijt?=0,rij?>0}?(pij??rij?)2??

    基于評分矩陣的推薦

    問題:基于評分矩陣的推薦
    輸入:訓練矩陣Rt=(rijt)n×m\mathbf{R}^t = (r_{ij}^t)_{n \times m}Rt=(rijt?)n×m?,所有評分矩陣R=(rij)n×m\mathbf{R} = (r_{ij})_{n \times m}R=(rij?)n×m?, 推薦閾值rlr_lrl?.
    輸出:預測矩陣P=(pij)n×m\mathbf{P} = (p_{ij})_{n \times m}P=(pij?)n×m?.
    優化目標:最大化準確率
    max?acc(Rt,P,R)=∣{(i,j)∈R∣rijt=0,rij≥rl,pij≥rl}∣∣{(i,j)∈R∣rijt=0,rij≥rl}∣\max acc(\mathbf{R}^t, \mathbf{P}, \mathbf{R}) = \frac{|\{(i, j) \in \mathbf{R} | r_{ij}^t = 0, r_{ij} \ge r_l, p_{ij} \ge r_{l}\}|}{|\{(i, j) \in \mathbf{R} | r_{ij}^t = 0, r_{ij} \ge r_l\}|}maxacc(Rt,P,R)={(i,j)Rrijt?=0,rij?rl?}{(i,j)Rrijt?=0,rij?rl?,pij?rl?}? .

    交互推薦

    在實際應用場景中,交互推薦是主流的推薦方式,推薦系統都會根據用戶的選擇優化推薦列表,也就是說用戶這一輪的選擇會影響下一輪的推薦列表。比如推薦系統一次給用戶推薦20個商品,用戶在本輪推薦中選擇了商品1、3、5;這樣的選擇就會反饋給系統,系統根據用戶的選擇優化下一輪的推薦。交互式推薦用英文表達為 conversational recommendation.
    場景描述:
    對每個用戶

    登錄系統; do{獲得系統推薦的一組項目 (固定為k個);用戶在其中選擇喜歡的所有項目; }while(喜歡的項目為0)

    對系統

    while(true){接收用戶的選擇,并將用戶的選擇寫入灰列表(grey list);if(用戶是不成熟用戶){采用基于流行度的算法產生推薦列表;}else{采用基于矩陣分解的算法產生推薦列表;} }

    通過用戶瀏覽/購買商品的數量達到某個閾值來表示用戶的成熟度。如果達到某個閾值,則稱該用戶為成熟用戶,否則為不成熟用戶。
    問題:交互式推薦
    輸入:訓練矩陣Rt=(rijt)n×m\mathbf{R}^t = (r_{ij}^t)_{n \times m}Rt=(rijt?)n×m?,所有評分矩陣R=(rij)n×m\mathbf{R} = (r_{ij})_{n \times m}R=(rij?)n×m?.
    輸出:預測矩陣P=(pij)n×m\mathbf{P} = (p_{ij})_{n \times m}P=(pij?)n×m?.
    優化目標:最大化準確率
    max?acc(Rt,P,R)=∣{(i,j)∈R∣rijt=0,rij=1,pij=rij}∣∣{(i,j)∈R∣rijt=0,rij=1}∣\max acc(\mathbf{R}^t, \mathbf{P}, \mathbf{R}) = \frac{|\{(i, j) \in \mathbf{R} | r_{ij}^t = 0, r_{ij} = 1, p_{ij} = r_{ij}\}|}{|\{(i, j) \in \mathbf{R} | r_{ij}^t = 0, r_{ij} = 1\}|}maxacc(Rt,P,R)={(i,j)Rrijt?=0,rij?=1}{(i,j)Rrijt?=0,rij?=1,pij?=rij?}? .

    三支推薦

    推薦行為除了推薦和不推薦之外,實際上還存在著推廣的行為,為了模擬這種行為,我們引入了三支推薦。
    我們以下圖為例來說明這個場景:

    (1)我們設置了一個3×23 \times 23×2的代價敏感矩陣,行表示系統對用戶采取的行為,包括推薦(Recommend)、推廣(Promote)、不推薦(Not recommend),列表示用戶的偏好,包括喜歡(Like),不喜歡(Dislike)。根據三支決策理論,利用該代價矩陣可以計算出推薦閾值α?\alpha^*α?β?\beta^*β?
    (2)利用隨機森林我們可以預測出用戶uiu_iui?喜歡商品tjt_jtj?的程度,用概率pijp_{ij}pij?來表示;
    (3)當pij>α?p_{ij} \gt \alpha^*pij?>α?,系統將推薦(Recommend)商品tjt_jtj?給用戶uiu_iui?;當pij<β?p_{ij} \lt \beta^*pij?<β?,系統將不推薦(Not recommend)商品tjt_jtj?給用戶uiu_iui?;當β?≤pij≤α?\beta^* \le p_{ij} \le \alpha^*β?pij?α?,系統將給用戶uiu_iui?分發優惠券進行推廣(promote)商品tjt_jtj?.
    (4)為了描述下面的問題,我們需要用下面的公式進行映射:

    • 根據偏好閾值rlr_lrl?將用戶的評分映射為偏好:
      ψ(rij,rl)=1,當rij>rl\psi(r_{ij}, r_l) = 1, 當r_{ij} \gt r_lψ(rij?,rl?)=1,rij?>rl?;
      ψ(rij,rl)=2,當rij≤rl\psi(r_{ij}, r_l) = 2, 當r_{ij} \le r_lψ(rij?,rl?)=2,rij?rl?;
    • 將預測值映射為推薦(Recommend)、推廣(Promote)、不推薦(Not recommend)
      ?(pij,α?,β?)=1,當pij>α?\phi(p_{ij}, \alpha^*, \beta^*) = 1, 當p_{ij} \gt \alpha^*?(pij?,α?,β?)=1,pij?>α?;
      ?(pij,α?,β?)=2,當β?≤pij≤α?\phi(p_{ij}, \alpha^*, \beta^*) = 2, 當\beta^* \le p_{ij} \le \alpha^*?(pij?,α?,β?)=2,β?pij?α?;
      ?(pij,α?,β?)=3,當pij<β?\phi(p_{ij}, \alpha^*, \beta^*) = 3, 當p_{ij} \lt \beta^*?(pij?,α?,β?)=3,pij?<β?.
      問題:三支推薦
      輸入:訓練矩陣Rt=(rijt)n×m\mathbf{R}^t = (r_{ij}^t)_{n \times m}Rt=(rijt?)n×m?,所有評分矩陣R=(rij)n×m\mathbf{R} = (r_{ij})_{n \times m}R=(rij?)n×m?, 代價矩陣C=(ckl)3×2C = (c_{kl})_{3 \times 2}C=(ckl?)3×2?.
      輸出:預測矩陣P=(pij)n×m\mathbf{P} = (p_{ij})_{n \times m}P=(pij?)n×m?.
      優化目標:最小化代價
      min?cost(Rt,P,R,C)=∑k∈{1,2,3},l∈{1,2}ckl×∣{(i,j)∈R∣?(pij,α?,β?)=k,ψ(rij,rl)=l}∣∣{(i,j)∈R∣rijt=0,rij>0}∣\min cost(\mathbf{R}^t, \mathbf{P}, \mathbf{R}, C) = \frac{\sum_{k \in \{1,2,3\}, l \in \{1, 2\}} c_{kl} \times |\{(i, j) \in \mathbf{R} | \phi(p_{ij}, \alpha^*, \beta^*) = k, \psi(r_{ij}, r_l) = l\}|}{|\{(i, j) \in \mathbf{R} | r_{ij}^t = 0, r_{ij} > 0\}|}mincost(Rt,P,R,C)={(i,j)Rrijt?=0,rij?>0}k{1,2,3},l{1,2}?ckl?×{(i,j)R?(pij?,α?,β?)=k,ψ(rij?,rl?)=l}? .

    [1] Three-way recommender systems based on random forests

    [2] Regression-based three-way recommendation

    推薦系統的魔法邊界

    在很多時候,我們很想知道,給定一個推薦系統的數據集,它的精度上限(或者誤差下限,為了更容易被記住,又取名為魔法邊界)是多少,一旦知道了這個值,我們就可以確定算法到底還有多大的優化空間。換句話來說,就是數據質量本身決定了算法的精度上限,一旦數據集給定,這個魔法邊界就確定了。
    問題描述如下:

    • O=(oij)n×m\mathbf{O} = (o_{ij})_{n \times m}O=(oij?)n×m?為一個理想的評分數據集(ideal rating data),即假設用戶在給商品評分的時候沒有受到情緒波動、外界環境等因素影響,用戶的偏好是恒定的;
    • R=(rij)n×m\mathbf{R} = (r_{ij})_{n \times m}R=(rij?)n×m?為一個實際的評分數據集(real rating data), 用戶在評分的時候受到情緒波動、外界環境等因素影響,會帶入一些自然噪聲(nature noise);
    • N=∣{(i,j)∈R∣1≤i≤n,1≤j≤m,rij>0}N =|\{(i, j) \in \mathbf{R} | 1 \le i \le n, 1 \le j \le m, r_{ij} >0\}N={(i,j)R1in,1jm,rij?>0}|;
    • 基于MAE評價指標的魔法邊界定義為:MBGR(mae)=∣O?R∣NMBGR(mae) = \frac{|\mathbf{O} - \mathbf{R}|}{N}MBGR(mae)=NO?R?
    • 基于RSME評價指標的魔法邊界定義為:MBGR(rsme)=∣∣O?R∣∣2NMBGR(rsme) = \frac{||\mathbf{O} - \mathbf{R}||_2}{N}MBGR(rsme)=NO?R2??
      我們認為魔法邊界就是由于自然噪聲引起的偏差。要估計這個魔法邊界是一個很有挑戰性的工作,因為實際環境中理想數據集O=(oij)n×m\mathbf{O} = (o_{ij})_{n \times m}O=(oij?)n×m?是采集不到的。
      針對理想數據集的問題,有很多學者在這個方面做了一些嘗試,目前主要有經驗方法和理論方法兩大類。
    • 經驗方法的學者通過采集同一用戶對同一商品的多次評分,然后利用多次評分的平均來作為用戶uiu_iui?對商品tjt_jtj?的理想評分oijo_{ij}oij?。很顯然,這種方法有很多缺陷,一方面同一用戶對同一商品進行多次評分非常的無趣(boring),另一方面多次評分會帶來新的噪聲。
    • 為了解決經驗方法帶來的問題,我們提出了一些理論方法(見已發表的論文)

    [3] Magic barrier estimation models for recommended systems under normal distribution
    [4] A Mixture-of-Gaussians model for estimating the magic barrier of the recommender system. Applied Soft Computing. (2022-114)108162

    我們做了如下假設:
    ∣O?R∣N≤min?∣P?R∣N\frac{|\mathbf{O} - \mathbf{R}|}{N} \le \min \frac{|\mathbf{P} - \mathbf{R}|}{N}NO?R?minNP?R?

    ∣∣O?R∣∣2N≤min?∣∣P?R∣∣2N\frac{||\mathbf{O} - \mathbf{R}||_2}{N} \le \min \frac{||\mathbf{P} - \mathbf{R}||_2}{N}NO?R2??minNP?R2??
    該假設可以解讀為:用戶對商品的自然噪聲所帶來的偏差低于預測所帶來的偏差。因為用戶對商品的自然噪聲是用戶自己所導致的,而預測通常是利用其他用戶對目標商品或者目標用戶對其它商品的評分來估計目標用戶對目標商品的評分,所以我們又可以解讀為用戶自身比別人更了解自己。
    (和學生討論后,發現還可以這樣來理解這個假設,就是等式左邊是自然噪聲帶來的偏差,等式右邊不僅包含了自然噪聲帶來的偏差,還包含了預測算法帶來的偏差,所以應該是小于等于。)
    (今天又和閔老師討論了一下,認為不能用噪聲,而應該用數據本身分布帶來的不確定性,因為概率本身就是不確定性的描述,最好用信息量,information entropy之類的統計信息來描述)
    (所以,我暫時改為:等式左邊是數據本身分布帶來的不確定性,等式右邊不僅包含了數據本身分布帶來的不確定性,還包含了預測算法帶來的不確定性,所以應該是小于等于。

    推薦算法分類

    推薦系統的算法眾多,也有很多種不同的分類。下面列出幾個主要的分類:

    根據推薦原則分類

    • 基于相似度的推薦(物以類聚,人以群分)
    • 基于知識的推薦(標簽,定義)
    • 基于模型的推薦(發現、學習、訓練一個模型,機器學習)

    根據推薦是否個性化分類

    • 基于統計的推薦(所有人都一樣,可以用于解決冷啟動問題)
    • 個性化推薦

    根據實時性分類

    • 離線推薦
    • 實時推薦

    根據數據源分類(或根據策略分類Strategies)

    • 基于人口統計學的推薦(數據源是關于用戶的,用戶畫像,可以用于解決冷啟動問題,用戶勾選)
    • 基于內容的推薦(數據源是物品item,建立用戶檔案,Content-based filtering,可以解決 data sparsity and cold-start問題)
    • 基于協同過濾(Collaborative filtering (CF))的推薦(數據來源基于行為數據)
      (1)基于近鄰(neighborhood-based)的協同過濾推薦(也叫基于內存Memory-based的方法,CiteULike,Youtube和Last.fm等實際應用程序中采用,但非常耗時)
      -----------基于用戶的協同過濾推薦(User-CF)
      -----------基于物品的協同過濾推薦(Item-CF)
      (2)基于模型(model-based)的協同過濾推薦(可以將輔助信息side information饋入到預測模型中,從而助于解決數據稀疏和冷啟動問題)
      -----------潛在因子模型(latent factor models)
      -----------表示學習模型(representation learning models)
      -----------深度學習模型(deep learning models,最新的方法)
      (3)混合推薦(Hybrid methods)
      ----加權混合
      ----切換混合
      ----分區混合
      ----分層混合

    我們的工作

    三支推薦

    • 基于隨機森林的三支推薦(Three-way recommender systems based on random forests)
    • 三支回歸推薦(Regression-based three-way recommendation)

    交互推薦

    • 交互場景下的二支推薦
    • 交互場景下的三支推薦

    魔法邊界估計

    • 基于高斯假設的估計(Magic barrier estimation models for recommended systems under normal distribution)
    • 基于混合高斯(MoG)的估計
    • 基于混合指數分布(MoEP)的估計

    提高效率的推薦

    • M-Distance
    • 多通道特征向量(MCFV)

    可解釋性推薦

    • 矩陣分解:R\mathbf{R}R由兩個子矩陣X\mathbf{X}XY\mathbf{Y}Y來表達,即R=XY\mathbf{R} = \mathbf{X}\mathbf{Y}R=XY. 其中向量xix_ixi?表示用戶uiu_iui?的特征向量,向量yjy_jyj?表示商品tjt_jtj?的特征向量;
    • 可解釋性矩陣分解:當用戶uiu_iui?偏好于商品tjt_jtj?時,兩者具有強相關性,其用戶特征向量xix_ixi?與商品特征向量yjy_jyj?在潛在空間上應互相接近,即∥xi?yj∥→0\|x_i -y_j \| \rightarrow 0xi??yj?0

    參考文獻

    [1] 張恒汝,閔帆,Three-way recommender systems based on random forests, Knowledge-Based Systems, 2016, 91: 275-286.
    [2] 張恒汝,閔帆,石兵,Regression-based three-way recommendation,Information Sciences, 2017, 378, 444-461.
    [3] 張恒汝, 閔帆等. Magic barrier estimation models for recommended systems under normal distribution, Applied Intelligence, 2018: 1-8.
    [4] 張恒汝等. A Mixture-of-Gaussians model for estimating the magic barrier of the recommender system. Applied Soft Computing. (2022-114)108162

    ?

    總結

    以上是生活随笔為你收集整理的推荐系统: 数据、问题与算法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。