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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python进阶项目设计_推荐系统进阶:设计和构建推荐系统流程综述(1)

發布時間:2025/4/16 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python进阶项目设计_推荐系统进阶:设计和构建推荐系统流程综述(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

內容目錄推薦系統應用場景概述

為什么需要推薦?

推薦系統的目標?

推薦系統的工作?

推薦系統的基本模型

構建推薦系統的方法

相關參考?

1、推薦系統概述以及它們如何提供有效形式的定向營銷

推薦系統

推薦引擎嘗試向人們推薦產品或服務。推薦人在某種程度上嘗試通過向人們提供最有可能購買或使用的建議來縮小選擇范圍。推薦系統從亞馬遜到Netflix幾乎無處不在。從Facebook到Linkedin。實際上,亞馬遜的很大一部分收入僅來自推薦。像Youtube和Netflix這樣的公司都依靠其推薦引擎來幫助用戶發現新內容。我們日常生活中的一些建議示例包括:亞馬孫

亞馬遜使用其數百萬客戶的數據來確定通常一起購買的商品,并據此提出建議。http://Amazon.com中的建議是根據明確提供的評級,購買行為和瀏覽歷史記錄提供的。我打算購買“ Show Dog”,但最終也購買了“ The Compound effect”!領英

Linkedin利用您過去的經驗,當前的職稱和認可中的數據為您推薦可能的工作。

奈飛

當我們為電影評分或在Netflix上設置偏好時,它會使用此數據和來自其他數百個訂閱者的類似數據來推薦電影和節目。然后,Netflix使用這些評分和操作來提出建議。臉書

諸如Facebook之類的推薦系統不直接推薦產品,而是推薦連接。

除此之外,Spotify,Youtube,IMDB,Trip Advisor,Google新聞和許多其他平臺會不斷提出建議和建議,以滿足我們的需求。

為什么推薦

如今,在線商店蓬勃發展,我們只需單擊鼠標即可獲得幾乎所有商品。然而,在實體時代,用于存儲商品的空間有限,因此所有者僅展示最受歡迎的商品。這意味著,即使像書籍或CD這樣的高質量產品,許多產品甚至都沒有被展示。簡而言之,店主必須對內容物進行預過濾。

但是,在線購物行業改變了這種情況。由于空間有限,因此無需進行預過濾。相反,這引起了被稱為長尾效應的現象。

這種效應意味著受歡迎的產品很少,并且可以在在線和離線商店中找到。另一方面,不太受歡迎的產品很多,只能在網上商店中找到,最終構成了長尾巴。但是,即使是不受歡迎的產品也可能很好,并且在網站上找到此類產品是一項艱巨的任務,并且需要某種形式的過濾器。這樣的過濾器實際上構成了推薦系統。

預測版本

此版本處理預測用戶項組合的評級值。在這種情況下,我們擁有由用戶給出的評分組成的訓練數據。目的是利用此數據并預測用戶未與之交互的項目的等級。排名版本

老實說,沒有必要預測用戶對特定商品的評價以提出建議。在線零售商或電子商務公司并不太在乎用戶的預測。相反,他們會更感興趣產生一份有限的清單,以呈現給給定的最佳事物。而且,客戶不想看到系統預測其物品等級的能力,而只是想看到自己可能喜歡的東西。推薦引擎的成功取決于其為人們找到最佳推薦的能力,因此,專注于發現人們會喜歡的東西而不是我們預測人們討厭的東西的能力是有意義的。

推薦系統的目標

推薦系統的最終目標是增加公司的銷售額。為此,推薦系統應向用戶顯示或僅向用戶提供有意義的項目。Charu C Aggarwal在他的《關聯

推薦的項目只有在與用戶相關時才有意義。用戶更有可能購買或消費他們認為有趣的物品。新穎性

與相關性一起,新穎性是另一個重要因素。如果項目是用戶以前從未看過或消費過的東西,那么推薦的項目將更有意義。機緣巧合

有時推薦一些出乎意料的商品也可以促進銷售。然而,偶然性與新穎性不同。用作者的話說:

“如果附近有一家新的印度餐廳開業,那么該餐廳向通常吃印度食品的用戶的推薦是新穎的,但不一定偶然。另一方面,當向同一用戶推薦埃塞俄比亞食品時,如果用戶不知道這種食品可能對她具有吸引力,則該推薦是偶然的。多元化

同樣,增加建議的多樣性也同樣重要。僅僅推薦彼此相似的項目并沒有多大用處。

推薦系統的工作

那么推薦系統如何工作?假設亞馬遜想向您展示“圖書”類別中的十大建議。在這里,亞馬遜的推薦系統將從有關您的某種數據開始,以弄清您的個人品味和興趣。然后,它將有關您的數據與其他所有人(如您)的集體行為進行合并,以推薦您可能喜歡的東西。但是,有關您喜歡和不喜歡的數據從何而來?數據流進入推薦系統

以兩種方式收集用戶的偏好數據:顯式數據

要求用戶以一到五顆星的等級對某項進行評分,或者以類似或不贊成的態度對他們看到的內容進行評分,這是顯式數據收集的一個示例。在這些情況下,系統會明確詢問用戶是否喜歡某個特定項目,然后使用此數據建立該用戶興趣的資料。

但是,存在一個缺點,因為并非每個用戶都留下反饋或評分,即使他們留下評分,對于不同的人也可能意味著不同。例如,一個3??評分對一個人來說可能很好,但對另一個人來說則是平均。隱式數據

隱式數據是從用戶與站點的交互中得出的,并將其解釋為表示感興趣或不感興趣的指示。例如,從亞馬遜購買產品或觀看完整的youtube片段被認為是積極興趣的標志。隱式交互可以為您提供更多可使用的數據,就購買數據而言,甚至可能是更好的數據開始。

推薦系統的基本模型

當今行業中有很多推薦人。但是,重要的決定是確定哪種類型適合我們的需求以及我們可以使用哪種數據。選擇主要取決于:我們要識別的目標

我們的數據中指定了哪種類型的關系。

用于建議的一些常用方法包括:

讓我們對它們中的每一個做一個簡要的概述:

基于內容的過濾

基于內容的篩選涉及根據項目本身的屬性來推薦項目。基于內容的過濾器提出的建議使用個人的歷史信息來告知顯示的選擇。這樣的推薦者尋找人們過去購買或喜歡的物品或產品之間的相似性,以在將來推薦選項。content based

例如,如果用戶喜歡“ 文學”類別中的一本書,則向用戶推薦同一類別中的書是有意義的。此外,推薦在同一年份和同一作者發行的書籍也是一個好主意。這就是基于內容的過濾的工作方式。

基于內容的方法的優勢在于,由于我們只需要有關產品的信息,因此我們實際上不需要大量交易即可構建模型。但是,缺點是該模型無法從事務中學習,因此隨著時間的推移,基于內容的系統的性能不會有太大改善。

協同過濾

協同過濾使用許多用戶/客戶提供的綜合評級能力來提出建議。這意味著根據其他人的協作行為推薦東西Collaborative

協作過濾有兩種方法:基于內存的方法,也稱為基于鄰域的協作過濾算法,其中,根據用戶的鄰域來預測用戶項組合的評級。可以使用以下兩種方法之一進一步定義這些鄰域:基于用戶的協作過濾:

找到喜歡您的其他人并推薦他們喜歡的物品。基于項目的協作過濾:

推薦人們購買的商品,同時也購買您喜歡的商品。

2.基于模型的方法通過將問題視為正常的機器學習問題,使用機器學習方法來提取評級數據的預測。

可以使用PCA,SVD,矩陣分解,聚類,神經網絡等技術。

混合和基于集合Hybrid Collaborative

基于內容的方法和協作方法都有其優點和缺點,并且可以通過將許多算法結合在一起(稱為混合方法)來獲得更好的系統。混合系統利用項目數據和交易數據來提供建議。

使用混合方法的一個很好的例子是Netflix。在Netflix,建議不僅基于人們的觀看和搜索習慣(協作系統),而且還建議共享相似特征的電影(基于內容)。混合協同過濾的推薦過程

評估推薦系統:圍繞準確性的炒作用戶并不真正在乎準確性

沒有一種簡單的方法可以衡量推薦系統的質量。該領域中的許多研究都將重點放在預測用戶對他們尚未評級的任何事物(好或壞)的評分問題上。但這與推薦系統在現實世界中需要做的工作完全不同。衡量準確性并不是我們希望我們的推薦系統真正做到的。那么,為什么在推薦系統領域中,RMSE和準確性被如此重視?

好吧,很多事情都可以追溯到2006年,當時Netflix宣布了著名的100萬美元獎金挑戰賽。比賽結束了他們的RMSE 0.9525,終點線降低到0.8572或更小。由于該獎項的重點是RMSE,所以人們只關注它,這種影響一直持續到今天。

設計和構建推薦系統流程

果醬實驗推薦問題:選擇太少是不好的選擇,但選擇太多會導致癱瘓

您聽說過著名的圖片來源:選擇的悖論

那到底發生了什么?好吧,似乎很多選擇似乎都很吸引人,但是這種選擇超載有時可能會給客戶帶來困惑和阻礙。因此,即使沒有良好的推薦系統,即使在線商店可以訪問數百萬種商品,這些選擇也可能弊大于利。。

術語與架構

Items/Documents

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

Query/Context

系統利用一些信息來推薦上述項目,并且該信息構成查詢。查詢還可以是以下各項的組合:User Information,可能包括用戶ID或用戶之前與之交互的項目。

Some additional context,例如用戶的設備,用戶的位置等。

Embedding

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

一種分類特征,以連續值特征表示。通常,嵌套是指將高維度向量映射到低維度的空間。例如,您可以采用以下兩種方式之一來表示英文句子中的單詞:

表示成包含百萬個元素(高維度)的

區別于集成學習:集成學習 (ensemble)

多個深度模型和寬度模型屬于一種集成學習。

這是有關Recommender系統的大量資源,值得一讀。我已經在上面對它進行了總結,但是您可以對其進行詳細研究,并且它從建議的角度對Google的建議進行了全面的介紹。https://developers.google.com/machine-learning/recommendation/?developers.google.com

架構概述

推薦系統的通用體系結構包含以下三個基本組件:

1.候選人的產生

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

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

協作過濾依賴于用戶項目交互,并且依賴于類似用戶喜歡類似事物的概念,例如,購買此商品的客戶也購買了該商品。

2.計分

這構成了第二階段,在該階段中,另一個模型通常以10的比例進一步對候選者進行排名和評分。例如,在Youtube的情況下,排名網絡通過根據期望的目標函數使用以下方法為每個視頻分配得分來完成此任務一組描述視頻和用戶的豐富功能。向用戶展示得分最高的視頻,并按其得分排名。

3.重新排名

在第三階段,系統考慮了其他約束條件,以確保多樣性,新鮮度和公平性。例如,系統刪除了用戶較早之前明確不喜歡的內容,并且還考慮了站點上的任何新鮮項目。典型推薦系統的整體結構

相似度

您如何確定一個項目是否與另一個項目相似?事實證明,基于內容的過濾和協作過濾技術都采用某種相似性度量。我們來看兩個這樣的指標。

考慮兩部電影-movie1和movie 2屬于兩種不同類型。讓我們在2D圖形上繪制電影,如果電影不屬于該類型,則分配值為零;如果電影不屬于該類型,則分配值為1。在此,電影1(1,1)屬于流派1和2,而電影2僅屬于流派2(1,0)。可以將這些位置視為向量,并且這些向量之間的角度充分說明了它們的相似性。

余弦相似度

它是兩個向量之間的角度的余弦,

similarity(movie1,movie2) = cos(movie1,movie2) = cos 45

大約為0.7。余弦相似度為1表示最高相似度,而余弦相似度值為零表示無相似度。

點積

兩個向量的點積是角度的余弦乘以范數的乘積,即

similarity(movie1,movie2) = ||movie1|| ||movie 2|| cos(movie1,movie2).

推薦流程

典型的推薦器系統管??道包括以下五個階段:典型的推薦系統管道

假設我們正在構建電影推薦系統。該系統沒有用戶或電影的先驗知識,只有通過用戶給定的評分,用戶與電影之間的互動。這是一個數據幀,由電影ID,用戶ID和電影等級組成。電影分級數據框

由于我們只獲得評級,而沒有別的,因此我們將對我們的Recommender系統使用協作過濾。

1.Pre-ProcessingUtility matrix conversion

我們首先需要將電影評分數據幀轉換為用戶項矩陣,也稱為Utility matrix。

用戶為電影指定的等級填充了矩陣的每個單元格。該矩陣通常表示為稀疏矩陣,因為由于該特定電影沒有任何評級,因此許多單元為空。如果數據稀疏,則協作過濾效果不佳,因此我們需要計算矩陣的稀疏性。

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

Normalization

總是會有用戶過度肯定(總是給4或5評分)或過度否定(給所有1或2評分)。因此,我們需要對評級進行歸一化,以解決用戶和商品的偏見。這可以通過采用均值歸一化來完成。資料來源:歸一化評級

2.Model Training

在對數據進行預處理之后,我們需要開始模型構建過程。Matrix Factorisation是協作過濾中的一種常用技術,盡管還有其他方法,例如Neighbourhood methods。涉及的步驟如下:將用戶項矩陣分解為2個潛在因子矩陣-用戶因子矩陣和項目因子矩陣(user-factor matrix and item-factor matrix)。

用戶評級是人類生成的電影的特征。這些功能是我們認為很重要的直接可觀察的東西。但是,還有一些特征不能直接觀察到,但在評級預測中也很重要。這些隱藏特征集稱為“ 潛在特征”。The user ratings are features of the movies that are generated by humans. These features are directly observable things that we assume are important. However, there are also a certain set of features which are not directly observable but are also important in rating predictions. These set of hidden features are called Latent features.潛在因子方法的簡化圖示

潛在功能可以認為是用戶與項目之間交互作用的基礎。本質上,我們不明確知道每個潛在特征代表什么,但是可以假定一個特征可能代表用戶喜歡喜劇電影,而另一個潛在特征可以代表用戶喜歡動畫電影等等。

Predict missing ratings from the inner product of these two latent matrices.

此處的潛在因子由K表示。此重構的矩陣填充了原始用戶項目矩陣中的空單元,因此現在已知未知等級。

但是我們如何實現上面顯示的矩陣分解?好吧,事實證明,使用以下一種方法可以通過多種方法來實現:交替最小二乘法

隨機梯度下降(SGD)

奇異值分解(SVD)

3.超參數優化

在調整參數之前,我們需要選擇一個評估指標。推薦人的一種流行評估指標是“ 精確度為K”,它會 查看前k個推薦,并計算出這些推薦中與用戶實際相關的比例。

因此,我們的目標是找到在K或要優化的任何其他評估指標上提供最佳精度的參數。找到參數后,我們可以重新訓練模型以獲得預測的打分,并可以使用這些結果生成建議。

4.后處理

然后,我們可以對所有預測的打分進行排序,并為用戶提供排名前N位的建議。我們還希望排除或過濾掉用戶之前已經進行過交互的項目。對于電影,沒有必要推薦用戶先前看過或不喜歡的電影。

5.評估

我們之前已經介紹過了,但是在這里讓我們更詳細地討論。評估任何推薦系統的最佳方法是在野外對其進行測試。諸如A / B測試之類的技術是最好的,因為它可以從真實用戶那里獲得實際的反饋。但是,如果不可能,那么我們必須求助于一些離線評估。

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

早些時候,我們談到了精度作為評估指標。以下是一些可以使用的其他方法。

Python庫

有許多專用于推薦目的而創建的Python庫。以下是最受歡迎的:scikit building and analyzing recommender systems.

結論

在本文中,我們以縮小選擇范圍的方式討論了推薦算法的應用領域,為什么要推薦,推薦遇到的問題,推薦的重要性。我們還介紹了設計和構建推薦系統管道的過程。實際上,Python通過為此目的提供對許多專用庫的訪問來使此過程更簡單。嘗試使用一個構建自己的個性化推薦引擎。

應用實戰相關:好好先生:動手從爬蟲到設計音樂推薦系統(1)|數據處理部分?zhuanlan.zhihu.com好好先生:動手從爬蟲到設計音樂推薦系統(2)|模型選擇與訓練預測?zhuanlan.zhihu.com

參考文獻:https://towardsdatascience.com/recommendation-systems-in-the-real-world-51e3948772f3?towardsdatascience.com

下一期:embedding 推薦系統

總結

以上是生活随笔為你收集整理的python进阶项目设计_推荐系统进阶:设计和构建推荐系统流程综述(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

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