AI推薦算法的演進之路

推薦算法

基于大數據和AI技術,提供全流程一站式推薦平臺,協助企業構建個性化推薦應用,提升企業應用的點擊率留存率和永久體驗。目前,主要的推薦方法包括:基于內容推薦、協同過濾推薦、基于關聯規則推薦、基于效用推薦、基于知識推薦和組合推薦。

1. 基于內容推薦

基于內容的推薦是信息過濾技術的延續與發展,它是建立在項目內容信息上作出的推薦,而不需要依據用戶對項目的評價意見,更多地需要用機器學習的方法從關于內容特征描述的事例中得到用戶的興趣資料。在基于內容的推薦系統中,項目或對象是通過相關的特征的屬性來定義,系統基于用戶評價對象的特征,學習用戶的興趣,考察用戶資料與待預測項目的相匹配程度。用戶的資料模型取決于所用學習方法,常用的有決策樹、神經網絡和基于向量的表示方法等。基于內容的用戶資料是需要有用戶的歷史數據,用戶資料模型可能隨著用戶的偏好改變而發生變化。

基于內容推薦方法的優點是:
l?1)不需要其它用戶的數據,沒有冷開始問題和稀疏問題。
l?2)能為具有特殊興趣愛好的用戶進行推薦。
l?3)能推薦新的或不是很流行的項目,沒有新項目問題。
l?4)通過列出推薦項目的內容特征,可以解釋為什么推薦那些項目。
l?5)已有比較好的技術,如關于分類學習方面的技術已相當成熟。

缺點是要求內容能容易抽取成有意義的特征,要求特征內容有良好的結構性,并且用戶的口味必須能夠用內容特征形式來表達,不能顯式地得到其它用戶的判斷情況。

2. 協同過濾推薦

協同過濾推薦(Collaborative Filtering Recommendation)技術是推薦系統中應用最早和最為成功的技術之一。它一般采用最近鄰技術,利用用戶的歷史喜好信息計算用戶之間的距離,然后利用目標用戶的最近鄰居用戶對商品評價的加權評價值來預測目標用戶對特定商品的喜好程度,系統從而根據這一喜好程度來對目標用戶進行推薦。協同過濾最大優點是對推薦對象沒有特殊的要求,能處理非結構化的復雜對象,如音樂、電影。

協同過濾是基于這樣的假設:為一用戶找到他真正感興趣的內容的好方法是首先找到與此用戶有相似興趣的其他用戶,然后將他們感興趣的內容推薦給此用戶。其基本思想非常易于理解,在日常生活中,我們往往會利用好朋友的推薦來進行一些選擇。協同過濾正是把這一思想運用到電子商務推薦系統中來,基于其他用戶對某一內容的評價來向目標用戶進行推薦。

基于協同過濾的推薦系統可以說是從用戶的角度來進行相應推薦的,而且是自動的,即用戶獲得的推薦是系統從購買模式或瀏覽行為等隱式獲得的,不需要用戶努力地找到適合自己興趣的推薦信息,如填寫一些調查表格等。和基于內容的過濾方法相比,協同過濾具有如下的優點:
l1)?能夠過濾難以進行機器自動內容分析的信息,如藝術品、音樂等。
l2)?共享其他人的經驗,避免了內容分析的不完全和不精確,并且能夠基于一些復雜的,難以表述的概念(如信息質量、個人品味)進行過濾。
l3)?有推薦新信息的能力。可以發現內容上完全不相似的信息,用戶對推薦信息的內容事先是預料不到的。這也是協同過濾和基于內容的過濾一個較大的差別,基于內容的過濾推薦很多都是用戶本來就熟悉的內容,而協同過濾可以發現用戶潛在的但自己尚未發現的興趣偏好。

l4)?能夠有效的使用其他相似用戶的反饋信息,少數用戶的反饋量,加快個性化學習的速度。

雖然協同過濾作為一種典型的推薦技術有其相當的應用,但協同過濾仍有許多的問題需要解決。最典型的問題有稀疏問題(Sparsity)和可擴展問題(Scalability)。

3. 基于關聯規則推薦

基于關聯規則的推薦(Association Rule-based Recommendation)是以關聯規則為基礎,把已購商品作為規則頭,規則體為推薦對象。關聯規則挖掘可以發現不同商品在銷售過程中的相關性,在零售業中已經得到了成功的應用。管理規則就是在一個交易數據庫中統計購買了商品集X的交易中有多大比例的交易同時購買了商品集Y,其直觀的意義就是用戶在購買某些商品的時候有多大傾向去購買另外一些商品。比如購買牛奶的同時很多人會同時購買面包。

算法的第一步關聯規則的發現最為關鍵且最耗時,是算法的瓶頸,但可以離線進行。其次,商品名稱的同義性問題也是關聯規則的一個難點。

4. 基于效用推薦

基于效用的推薦(Utility-based Recommendation)是建立在對用戶使用項目的效用情況上計算的,其核心問題是怎么樣為每一個用戶去創建一個效用函數,因此,用戶資料模型很大程度上是由系統所采用的效用函數決定的。基于效用推薦的好處是它能把非產品的屬性,如提供商的可靠性(Vendor Reliability)和產品的可得性(Product Availability)等考慮到效用計算中。

5. 基于知識推薦

基于知識的推薦(Knowledge-based Recommendation)在某種程度上可以看成是一種推理(Inference)技術,它不是建立在用戶需要和偏好基礎上推薦的。基于知識的方法因它們所用的功能知識不同而有明顯區別。效用知識(Functional Knowledge)是一種關于一個項目如何滿足某一特定用戶的知識,因此能解釋需要和推薦的關系,所以用戶資料可以是任何能支持推理的知識結構,也可以是用戶已經規范化的查詢,還可以是一個更詳細的用戶需要的表示。

6. 組合推薦

由于各種推薦方法都有優缺點,所以在實際中,組合推薦(Hybrid Recommendation)經常被采用。研究和應用最多的是內容推薦和協同過濾推薦的組合。最簡單的做法就是分別用基于內容的方法和協同過濾推薦方法去產生一個推薦預測結果,然后用某方法組合其結果。盡管從理論上有很多種推薦組合方法,但在某一具體問題中并不見得都有效,組合推薦一個最重要原則就是通過組合能避免或彌補各自推薦技術的弱點。

在組合方式上,有研究人員提出了七種組合思路:
l1)加權(Weight):加權多種推薦技術結果。
l2)變換(Switch):根據問題背景和實際情況或要求決定變換采用不同的推薦技術。
l3)混合(Mixed):同時采用多種推薦技術給出多種推薦結果為用戶提供參考。
l4)特征組合(Feature combination):組合來自不同推薦數據源的特征被另一種推薦算法所采用。
l5)層疊(Cascade):先用一種推薦技術產生一種粗糙的推薦結果,第二種推薦技術在此推薦結果的基礎上進一步作出更精確的推薦。
l6)特征擴充(Feature augmentation):一種技術產生附加的特征信息嵌入到另一種推薦技術的特征輸入中。
l7)元級別(Meta-level):用一種推薦方法產生的模型作為另一種推薦方法的輸入。

7. 主要推薦方法的對比

各種推薦方法都有其各自的優點和缺點,如下表

主要推薦方法對比

推薦方法

優點

缺點

基于內容推薦

推薦結果直觀,容易解釋;

不需要領域知識

稀疏問題;新用戶問題;

復雜屬性不好處理;

要有足夠數據構造分類器

協同過濾推薦

新異興趣發現、不需要領域知識;

隨著時間推移性能提高;

推薦個性化、自動化程度高;

能處理復雜的非結構化對象

稀疏問題;

可擴展性問題;

新用戶問題;

質量取決于歷史數據集;

系統開始時推薦質量差;

基于規則推薦

能發現新興趣點;

不要領域知識

規則抽取難、耗時;

產品名同義性問題;

個性化程度低;

基于效用推薦

無冷開始和稀疏問題;

對用戶偏好變化敏感;

能考慮非產品特性

用戶必須輸入效用函數;

推薦是靜態的,靈活性差;

屬性重疊問題;

基于知識推薦

能把用戶需求映射到產品上;

能考慮非產品屬性

知識難獲得;

推薦是靜態的

8. 基于深度學習的推薦

? ? 基于深度學習的推薦是將深度學習技術糅雜在傳統的推薦算法(比如基于內容的推薦、協同過濾推薦)之中,或使用無監督學習方法對項目進行聚類,或使用監督學習方法對項目進行分類,是使用多層感知器、卷積神經網絡、循環神經網絡、遞歸神經網絡等對數據加工處理提取特征。基于深度學習主要是體現出它使用機器學習的數據處理技術,通過組合低層特征形成更加稠密的高層語義抽象,從而自動發現數據的分布式特征表示,解決了傳統機器學習中需要人工設計特征的問題。深度學習技術是要依托于傳統推薦技術中,可以說是對傳統推薦技術的增強。

該類型推薦多用于處理圖像、文本、音頻等數據。比如電子商務平臺、電影售票系統等,主營項目都會附帶有明顯的圖片介紹,這就可以根據用戶當前瀏覽或是歷史購買記錄,來獲取圖 片信息,深度學習提取出圖像的特征表示,再以此從項目數據庫中比對類似特征的圖像,從而推薦;像亞馬遜這樣的網上書店或小說平臺,主營項目以文本信息為主。經過深度學習,也可以提取出文本的風格、類型、特色等特征,從而匹配推薦;對于音樂播放器這類以音頻為主的系統,先將音頻數據變為數字信號,再進行深度學習,用數字信息抽象表示音頻特征(舒緩、嘻哈、古典等),從而可訓練出用戶的聽曲風格。基于深度學習推薦的最優勢點就是可針對多種類型的輸入數據,都可以提取特征,并訓練模型,可以實現多元化的推薦,但是要想得到更好的推薦效果,就需要更長的時間來訓練模型。

?3. 基于深度學習的推薦系統中的常用神經網絡

卷積神經網絡包括輸入層、卷積層、池化層、全連接層和輸出層,其中卷積層和池化層組合形成了特征提取器。在卷積層中,上一個神經元不再與全部的下一層神經元全連接,只是部分連接,并且在CNN中采用了權值共享,即卷積核,這不僅有效減少了神經網絡中的參數個數,還降低了過擬合的弊端。卷積神經網絡多用于處理圖像數據,所以經常是通過處理分析用戶項目的歷史圖片信息來推薦類似風格和顏色布局圖片的其他項目。

循環神經網絡相較于普通神經網絡,特殊在它各個隱藏層之間是具有連接的,體現在功能上就是能夠記憶之前的信息,即在當前隱藏層的輸入中不僅包括輸入層的輸出信息,還包括了隱藏層上一個狀態(或上一個時刻)的輸出。這種神經網絡多用于處理序列數據,比如語音識別,要想語義翻譯準確,就要根據上文環境,所以循環神經網絡在處理這類問題時具有一定的優勢。

傳統的序列推薦算法主要依賴于矩陣分解或者因子分解的求解范式,即將高維、稀疏的用戶-物品歷史交互行為矩陣,或者是馬氏鏈中的物品偏好轉移概率矩陣分解為低秩的表達,抑或是將用戶交互行為構建為獨熱編碼,再使用因子分解機進行特征交互建模,用于用戶行為預測與序列推薦。

這類方法雖然在一定程度上已經支持用戶行為序列的建模與優化,但是難以建模更長的用戶行為序列,同時在復雜特征的建模、特征交互與表征學習上存在固有的局限性。

  1. 多路召回

推薦系統內置了多種召回策略,用戶可根據自身業務特點,配合融合流程,有針對性地制定或調整召回策略組合。

  1. 實時更新

通過接入實時數據,實時更新用戶畫像和物品畫像,及時捕捉用戶興趣變化,快速反饋用戶需求,為及時調整推薦策略提供依據。

  1. 精排策略

推薦系統的特征工程可從原始數據中分析歷史用戶畫像、物品畫像,自動學習特征信息以供AI模型訓練。內置了多種排序算法,可根據業務需求選擇適當的算法進行訓練,使推薦結果以更合適的順序呈現。

  1. 過濾規則

推薦系統提供黑名單、白名單、特定行為等過濾功能,可根據具體業務設置過濾規則,提升安全性和用戶體驗。

  1. 召回算法

基于深度學習的召回算法在推薦系統中取得了顯著的成功,它利用深度神經網絡來學習用戶和物品之間的復雜關系,能夠更好地捕捉數據中的隱藏模式。以下是一個基于深度學習的召回算法的基本步驟:

  • 數據準備: 收集用戶行為數據,包括用戶的歷史點擊、購買、評分等信息,以及物品的特征,例如標簽、內容描述等。
  • 數據表示: 將用戶和物品轉化為模型可處理的向量表示。這可以通過嵌入層(Embedding Layer)來實現,將用戶和物品映射到低維空間中的向量。
  • 神經網絡架構: 設計深度神經網絡架構,其中包含嵌入層、多個隱藏層以及激活函數。這些網絡層的組合可以根據具體任務的復雜性進行調整。一些經典的深度學習模型包括多層感知機(MLP)、卷積神經網絡(CNN)、循環神經網絡(RNN)以及更先進的模型如Transformer。
  • 損失函數: 定義適當的損失函數,用于衡量模型輸出與實際用戶行為之間的差異。通常在推薦系統中,使用二元交叉熵(Binary Cross Entropy)或均方誤差(Mean Squared Error)等損失函數。
  • 模型訓練: 利用歷史行為數據對模型進行訓練。通過優化算法(如隨機梯度下降)來最小化損失函數,更新模型參數。
  • 召回候選物品: 在訓練完成后,可以利用模型為用戶生成候選物品列表。這些物品可以根據模型輸出的分數排序,然后作為后續推薦階段的候選集合。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713639.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713639.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713639.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于阿里云平臺 通過樹莓派實現 1:1人臉識別

之前的學習中,曾經在香橙派上使用阿里云平臺的服務實現過類型識別: 使用香橙派并基于Linux實現最終版智能垃圾桶項目 --- 下_香橙派 項目-CSDN博客 現在,嘗試在樹莓派上通過阿里云平臺的服務實現人臉識別! 通過VScode遠程連接樹莓…

2024年新提出的算法|鸚鵡優化器(Parrot optimizer):算法及其在醫療問題中的應用

本期介紹一種基于訓練后鸚鵡關鍵行為的高效優化方法——鸚鵡優化器(Parrot Optimizer, PO)。該成果于2024年2月發表在中科院2區top SCI期刊Computers in Biology and Medicine(IF7.7) 1、簡介 鸚鵡優化器(PO)是一種受訓練有素的…

pytest教程-13-conftest.py文件

上一小節我們學習了fixture的作用域,本小節我們學習一下pytest conftest.py文件的使用方法。 conftest.py文件的作用 conftest.py文件是pytest框架中的一個特殊文件,用于定義共享的設置、夾具(fixture)和鉤子函數(hook)。 在py…

2.模擬問題——2.使用二維數組輸出圖形

用二維數組描述圖形 首先要計算出整個輸出的方框大小&#xff0c;從而判定相應關鍵循環點 #include <cstdio> char arr[1000][3000]; int main() {int h;//初始化&#xff0c;全部內部填空格while(scanf("%d",&h) ! EOF){for (int i 0; i < h; i) {f…

HTML---表單驗證

文章目錄 目錄 本章目標 一.表單驗證概述 二.表單選擇器 屬性過濾選擇器 三.表單驗證 表單驗證的方法 總結 本章目標 掌握String對象的用法會使用表單選擇器的選擇頁面元素會使用JQuery事件進行表單驗證Ajax的概念和作用 一.表單驗證概述 前端中的表單驗證是在用戶提交表…

圖神經網絡導論 - 劉知遠

一、神經網絡基礎 近年來&#xff0c;機器學習領域的發展迅速&#xff0c;主要表現在多種神經網絡架構的出現。盡管不同的神經網絡架構相差甚遠&#xff0c;但現有的神經網絡架構可以分為幾個類別&#xff1a; 卷積神經網路是前饋神經網路的特殊形式&#xff0c;FNN通常是全…

什么是VR虛擬現實|虛擬科技博物館|VR設備購買

虛擬現實&#xff08;Virtual Reality&#xff0c;簡稱VR&#xff09;是一種通過計算機技術模擬出的一種全新的人機交互方式。它可以通過專門的設備&#xff08;如頭戴式顯示器&#xff09;將用戶帶入一個計算機生成的虛擬環境之中&#xff0c;使用戶能夠與這個虛擬環境進行交互…

Spring Boot文檔目錄

目錄 官方文檔 說明&#xff1a;本文檔翻譯的版本&#xff1a;2.7.18-SNAPSHOT。 1. 法規&#xff08;Legal&#xff09; 2. 獲取幫助&#xff08;Getting Help&#xff09; 3. 文檔概述&#xff08;Documentation Overview&#xff09; 4. 開始使用&#xff08;Getting Sta…

BUUCTF---另外一個世界1

1.這是一道雜項題&#xff0c;也是我覺得最值得記錄的一道題。 2.話不多說&#xff0c;題目描述&#xff08;真的是另一個世界&#xff09; 3.下載附件&#xff0c;是一張圖片 4.嘗試了查看屬性&#xff0c;以及在記事本中打開看看有沒有什么有用的信息&#xff0c;發現沒什么…

FaceBook獲取廣告數據

1、訪問 廣告管理工具 確認自己登陸的賬號下面能看到戶。 ? 2、使用 圖譜Api探索工具 生成用戶短期口令 ? 3、get請求(或者瀏覽器直接打開)訪問&#xff1a; https://graph.facebook.com/v19.0/me?fieldsid,name, email&access_token{上一步生成的口令} ? 4、短期…

c# 獲取源碼路徑與當前程序所在路徑

獲取源碼路徑 private static string GetFilePath([CallerFilePath] string path null) {return path;}//當程序所在路徑string str67 System.Environment.CurrentDirectory;//源碼路徑 var path GetFilePath();var directory Path.GetDirectoryName(path);參考

Vue2:用node+express寫一個輕量級的后端服務

1、桌面創建demo文件夾 進入demo&#xff0c;執行如下命令 npm init輸入名稱&#xff1a; test_server然后一路回車 2、安裝express框架 npm i express3、新建server.js 在demo文件夾中&#xff0c;新建server.js const express require(express) const app express()…

2023年12月CCF-GESP編程能力等級認證Scratch圖形化編程三級真題解析

一、單選題(共15題,共30分) 第1題 現代計算機是指電子計算機,它所基于的是( )體系結構。 A:艾倫圖靈 B:馮諾依曼 C:阿塔納索夫 D:埃克特-莫克利 答案:B 第2題 默認小貓角色,執行下列程序,舞臺上會看到? ( ) A: B: C: D: 答案:C

干凈的語料沒有免疫力嗎?

干凈的語料指的是沒有雜音、無污染、無錯誤的語言材料。雖然干凈的語料本身沒有免疫力&#xff0c;但可以提供給機器學習算法或自然語言處理模型&#xff0c;幫助提高其性能和準確性。通過使用干凈的語料&#xff0c;可以降低噪聲干擾&#xff0c;減少模型的誤差&#xff0c;提…

Java類加載器 和 雙親委派【詳解】

一.類加載器&#xff1a; 由JDK提供的&#xff0c;用于加載一些資源文件到JVM內存里的一項技術。主要是加載class文件到內存&#xff0c;也可以加載一些資源文件。 2.JDK提供了三個類加載器&#xff1a; BootstrapClassLoader&#xff1a;引導類加載器&#xff0c; 是c語言編寫…

LightGBM高級教程:高級特征工程

導言 特征工程是機器學習中至關重要的一部分&#xff0c;它直接影響到模型的性能和泛化能力。在LightGBM中進行高級特征工程可以進一步提高模型的效果。本教程將詳細介紹如何在Python中使用LightGBM進行高級特征工程&#xff0c;并提供相應的代碼示例。 1. 特征交叉 特征交叉…

界面控件DevExpress .NET MAUI v23.2新版亮點 - 擁有全新的彩色主題

DevExpress擁有.NET開發需要的所有平臺控件&#xff0c;包含600多個UI控件、報表平臺、DevExpress Dashboard eXpressApp 框架、適用于 Visual Studio的CodeRush等一系列輔助工具。屢獲大獎的軟件開發平臺DevExpress 今年第一個重要版本v23.1正式發布&#xff0c;該版本擁有眾多…

python鏈接數據庫,實現數據增刪改查

要在Python中鏈接數據庫并實現數據的增刪改查&#xff0c;需要使用數據庫的API&#xff08;Application Programming Interface&#xff09;。以下是一個示例&#xff0c;演示如何使用Python的SQLite3模塊連接并操作數據庫&#xff1a; 安裝SQLite3模塊&#xff08;如未安裝&a…

如何克隆樹莓派系統到較小的硬盤/SD卡上(如何分區、設置修復引導)

最近有個老固態硬盤空下來了&#xff0c;雖然寫入速度沒那么快&#xff0c;但是足夠滿足千兆網絡了&#xff0c;所以我就想把現在給樹莓派使用的固態硬盤換下來。由于一些設置很浪費時間&#xff0c;所以我不打算重裝系統。此外這個老固態是 120GB 的&#xff0c;要小于正在使用…

redis實現分布式全局唯一id

目錄 一、前言二、如何通過Redis設計一個分布式全局唯一ID生成工具2.1 使用 Redis 計數器實現2.2 使用 Redis Hash結構實現 三、通過代碼實現分布式全局唯一ID工具3.1 導入依賴配置3.2 配置yml文件3.3 序列化配置3.4 編寫獲取工具3.5 測試獲取工具 四、運行結果 一、前言 在很…