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

歡迎訪問 生活随笔!

生活随笔

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

windows

入门:现实世界中的推荐系统(术语、技术等)

發布時間:2025/3/8 windows 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 入门:现实世界中的推荐系统(术语、技术等) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:Parul Pandey? ? ? ??編譯:ronghuaiyang

導讀

推薦系統pipeline的構建過程和總體架構描述。

選擇太少不好,但是選擇太多也不是什么好事

你聽說過著名的果醬實驗嗎?2000 年,哥倫比亞大學和斯坦福大學的心理學家 Sheena Iyengar 和 Mark Lepper 在他們的實地實驗基礎上提出了一項研究。在平常的一天,消費者在當地食品市場的高檔雜貨店購物時,會看到一個展示 24 種果醬的品嘗攤位。前幾天,同一個攤位只展示了 6 種果醬。這個實驗是為了判斷哪個攤位的銷量會更高,并假設更多種類的果醬會吸引更多的顧客,從而獲得更多的生意。然而,一個奇怪的現象被觀察到。盡管有 24 種果醬的柜臺更能吸引顧客的興趣,但與只有 6 種果醬的柜臺相比,它們的轉化率相當低(大約低 10 倍)。

到底發生了什么?似乎選擇很多看起來很吸引人,但這種選擇過多有時可能會讓客戶感到困惑和阻礙。因此,即使網上商店可以獲得數百萬件商品,如果沒有良好的推薦系統,這些選擇可能弊大于利


現在讓我們更深入地了解一下它的架構和與推薦系統相關的各種術語。

術語和架構 Terminology & Architecture

讓我們來看看一些與推薦系統相關的重要術語。

物品/文件

這些是系統推薦的實體,比如 Netflix 上的電影、Youtube 上的視頻和 Spotify 上的歌曲。

查詢/上下文

系統利用一些信息來推薦上述項目,這些信息構成查詢。查詢還可以是下列各項的組合:

  • 用戶信息,其中可能包括用戶 id 或用戶以前與之交互的物品。

  • 一些額外的上下文,如用戶的設備,用戶的位置等。

嵌入

嵌入是一種將分類特征表示為連續值特征的方法。換句話說,嵌入是高維向量到低維空間(稱為嵌入空間)的轉換。在這種情況下,要推薦的查詢或物品必須映射到嵌入空間。許多推薦系統依賴于學習一個適當的查詢和物品的嵌入表示。


總體架構

推薦系統的一般架構包括以下三個主要部分:

1. 候選生成

這是推薦系統的第一階段,從用戶過去的活動中獲取事件作為輸入,并從大型語料庫中檢索一小部分(數百個)視頻。主要有兩種常見的候選生成方法:

  • 基于內容的過濾

基于內容的過濾涉及到根據項目本身的屬性來推薦物品。系統會推薦與用戶過去喜歡的內容相似的內容。

  • 協同過濾

協同過濾依賴于用戶-物品的交互,依賴于相似的用戶喜歡相似的東西的概念,例如購買了這個物品的顧客也購買了這個。

2. 打分

這就構成了第二階段,在這一階段,另一個模型進一步對候選人進行排名和打分,通常以 10 分為標準。例如,在 Youtube 的例子中,排名網絡通過使用一組描述視頻和用戶的豐富特征,根據期望的目標函數為每個視頻分配分數,從而完成這項任務。得分最高的視頻將根據用戶的得分進行排序,然后呈現給用戶。

3. 重排

在第三階段,系統考慮額外的約束,以確保多樣性、新鮮度和公平性。例如,系統會刪除用戶之前明確不喜歡的內容,并考慮到網站上的所有的新內容。

一個典型推薦系統的總體結構

相似性度量

你如何辨別一個物品是否與另一個相似?事實證明,基于內容的過濾和協同過濾技術都使用了某種相似性度量。讓我們來看兩個這樣的度量標準。

考慮兩部電影 —— movie1 和 movie2,它們屬于兩個不同的類型。讓我們在 2D 圖上繪制電影,如果電影不屬于某個類型,則賦值為 0,如果電影屬于某個類型,則賦值為 1。

這里,電影 1(1,1)同時屬于類型 1 和類型 2,而電影 2 只屬于類型 2(1,0)。這些位置可以被認為是向量,這些向量之間的角度說明了它們之間的相似性。

余弦相似度

它是兩個向量夾角的余弦,similarity(movie1,movie2) = cos(movie1,movie2) = cos 45 大概是 0.7。余弦相似度為 1 表示相似度最高,余弦相似度為 0 表示不相似。

內積

兩個向量的點積是角的余弦乘以范數 i 的乘積。similarity(movie1,movie2) = ||movie1|| ||movie 2|| cos(movie1,movie2).


推薦系統 Pipeline

典型的推薦系統 pipeline 包括以下五個階段:

一個典型的推薦系統管道

假設我們正在構建一個電影推薦系統。該系統不知道用戶或電影的先驗知識,只知道用戶通過對電影進行評級而與電影之間的互動。這里有一個 dataframe,它由電影 ID、用戶 ID 和電影的評級組成。

電影評級Dataframe

由于我們只有評級,沒有其他信息,我們將使用協同過濾為我們的推薦系統。

1. 預處理

  • 效用矩陣轉換

我們需要首先將電影評分數據轉換成一個用戶-物品矩陣,也稱為效用矩陣

矩陣的每個單元格都由用戶對電影的評分來填充。這個矩陣通常表示為一個scipy 稀疏矩陣,因為許多單元是空的,因為沒有對特定的電影進行任何評級。如果數據是稀疏的,那么協同過濾就不能很好地工作,因此我們需要計算矩陣的稀疏性。

如果稀疏性值約為 0.5 或更多,那么協同過濾可能不是最佳解決方案。這里要注意的另一點是,空單元格實際上表示新用戶和新電影。因此,如果有較高比例的新用戶,那么我們可能會考慮使用其他一些推薦方法,如基于內容的過濾或混合過濾。

  • 歸一化

總會有一些用戶的評價過于積極(通常是 4 或 5 分)或過于消極(每個電影的評價都是 1 或 2 分)。這可以通過采取平均歸一化來實現。

2. 模型訓練

數據預處理后,我們需要開始模型構建過程。矩陣分解是一種常用的協同過濾技術,雖然也有其他方法,如鄰域方法。以下是涉及的步驟:

  • 分解用戶-物品矩陣,得到 2 個潛因子矩陣 —— 用戶-因子矩陣和物品-因子矩陣。

用戶評分是由人生成的電影的特征。這些特征是可以直接觀察到的,我們認為它們很重要。然而,也有一些特定的特征是不能直接觀察到的,但在評級預測中也很重要。這些隱藏的特征被稱為潛特征

潛特征可以被認為是用戶和項目之間交互的基礎特征。本質上,我們并不清楚每個潛特征代表什么,但可以假設一個特征可能代表用戶喜歡喜劇電影,另一個潛特征可能代表用戶喜歡動畫電影,等等。

  • 通過這兩個潛矩陣的內積來預測缺失評級。

潛因子這里用K表示。此重建矩陣填充原始的用戶-物品矩陣中的空單元格,因此未知評級現在已知。

但是我們如何實現上面所示的矩陣分解呢?事實證明,有很多方法可以做到這一點,使用下面的方法之一:

  • 交替最小二乘(ALS)

  • 隨機梯度下降法(SGD)

  • 奇異值分解(SVD)

3. 超參數優化

在調整參數之前,我們需要挑選一個評估指標。推薦的一個流行的評估指標是精度(Precision at K),它查看最前面的 K 個推薦,并計算這些推薦中與用戶實際相關的比例。

因此,我們的目標是找到在 K 或任何其他需要優化的評估指標上具有最佳精度的參數。一旦找到了這些參數,我們就可以重新訓練我們的模型來獲得我們的預測評級,我們可以使用這些結果來生成我們的推薦。

4. 后處理

然后,我們可以對所有預測的評級進行排序,并為用戶獲得前 N 個推薦。我們還希望排除或過濾掉用戶以前已經交互過的物品。就電影而言,推薦用戶以前看過或不喜歡的電影是沒有意義的。

5. 評估

我們之前已經討論過這個問題了,現在讓我們更詳細地討論一下。評估任何推薦系統的最佳方法是在實際系統上進行測試。像A/B 測試這樣的技術是最好的,因為可以從真實的用戶那里得到實際的反饋。然而,如果這是不可能的,那么我們不得不求助于一些離線評估。

在傳統的機器學習中,我們將原始數據集分割,創建一個訓練集和一個驗證集。然而,這對推薦模型不起作用,因為如果我們在一個單獨的用戶群上訓練所有數據,并在另一個用戶群上驗證數據,模型就不會起作用。所以對于推薦系統,我們實際上做的是在矩陣中隨機掩蓋一些已知的評級。然后我們通過機器學習來預測這些掩蓋的評級,然后將預測評級與實際評級進行比較。

離線評估推薦系統

之前我們討論了精度作為評估指標。這里有一些其他的可以使用。


Python 庫

有許多專門為推薦目的而創建的 Python 庫。以下是最受歡迎的一些:

  • Surprise[1]:一個 Python scikit 構建和分析推薦系統。

  • Implicit[2]:針對隱式數據集的快速 Python 協同過濾。

  • LightFM[3]: Python 實現了許多隱式和顯式反饋的流行推薦算法。

  • pyspark.mlib.recommendation[4]: Apache Spark 上的機器學習 API。


結論

在本文中,我們討論了推薦系統在縮小選擇范圍方面的重要性。我們還介紹了推薦系統的設計和構建過程。Python 實際上簡化了這一過程,為此提供了對大量專用庫的訪問。試著用一個來建立你自己的個性化推薦引擎。

參考資料

[1]

Surprise:?http://surpriselib.com/

[2]

Implicit:?https://implicit.readthedocs.io/en/latest/quickstart.html

[3]

LightFM:?https://lyst.github.io/lightfm/docs/home.html

[4]

pyspark.mlib.recommendation:?https://spark.apache.org/docs/2.1.1/api/python/_modules/pyspark/mllib/recommendation.html

—END—

英文原文:https://towardsdatascience.com/recommendation-systems-in-the-real-world-51e3948772f3

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)備注:加入本站微信群或者qq群,請回復“加群”獲取一折本站知識星球優惠券,請回復“知識星球”喜歡文章,點個在看

總結

以上是生活随笔為你收集整理的入门:现实世界中的推荐系统(术语、技术等)的全部內容,希望文章能夠幫你解決所遇到的問題。

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