【建模與仿真】融合畫像約束和潛在特征的深度推薦算法

導讀:

基于深度學習的推薦算法已成為推薦系統領域的研究趨勢。然而,大多數現有工作僅考慮單一的用戶與物品交互數據,限制了算法的預測性能。本文提出一種畫像約束的編碼方式,并融合隱因子模型中的潛在特征,豐富了推薦算法的輸入以提升評分預測的準確性。該算法利用矩陣分解得到潛在特征初始化用戶與物品的嵌入,然后通過線性注意力機制增強模型對畫像特征的敏感度,最后結合深度神經網絡進行評分預測。通過本文算法與其他基線算法在MovieLens與Netflix數據集上進行對比,該算法與基線算法相比顯著提高了評分預測的精度,并在推薦列表排序性能等方面表現出色。本文的研究揭示了加入用戶與物品的畫像約束和潛在特征,可以有效提升推薦系統的性能。

關注漢斯,獲取更多論文資訊,如您需要論文原文,歡迎私信獲取~

作者信息:

艾 均,?柏光耀,?蘇 湛,?馬菀言:上海理工大學光電信息與計算機工程學院,上海

正文

推薦算法的發展呈現出以下幾個主要趨勢:基于隱因子模型的推薦算法、基于用戶畫像的推薦算法、基于深度學習的推薦算法。

推薦系統發展至今仍面臨一些問題:1) 大多數推薦算法僅依賴用戶對物品的顯式反饋,如用戶–物品評分數據,往往忽視了用戶的興趣或隱式偏好,導致推薦效果難以達到最佳。2) 如何從復雜的用戶–物品交互數據中有效提取并利用用戶與物品的特征,是提升個性化推薦算法準確性的重要挑戰。3) 當遇到新用戶或新物品時,由于缺乏歷史數據,推薦系統難以提供準確的推薦,進而面臨冷啟動問題。針對如何利用用戶的興趣或隱式偏好以及如何從復雜的交互數據中提取并利用用戶和物品的特征,本文提出一種融合畫像約束和潛在特征的深度推薦算法(Deep Portrait Feature and Latent Embedding Algorithm, DPFLE)。

大多數基于深度學習的推薦算法僅依賴于用戶–物品評分數據,且普遍存在可解釋性不足的問題,本文提出的DPFLE使用矩陣分解初始化用戶和物品的嵌入向量,利用物品標簽信息構建細粒度的畫像向量,并通過線性注意力機制增強模型對畫像特征的敏感度,豐富算法輸入的同時還改善了算法的可解釋性。

算法設計

整體算法如圖1所示。首先對用戶–物品評分矩陣,使用矩陣分解技術,得到用戶和物品的潛在特征,利用預先計算的潛在特征來初始化用戶嵌入層以及物品嵌入層。隨后,利用物品的標簽信息并結合評分信息計算出用戶和物品的畫像向量,經過portrait_encoder層編碼得到用戶畫像約束以及物品畫像約束,對這個四個特征進行融合,之后利用深度神經網絡進行評分預測。

在電影推薦領域,電影標簽作為電影的抽象表示,蘊含了豐富的用戶隱式信息,合理利用電影標簽數據,可以有效提升推薦算法的性能,具有重要的應用價值。?通過統計用戶對不同標簽的物品在不同評分下的評分次數,并除以相同評分下的評分總次數最后進行拼接操作得到用戶的畫像向量。具體過程如圖2所示。

?實驗設計與分析

1. 數據集

本文使用經典數據集MovieLens以及Netflix來驗證提出的方法。MovieLens25M記錄了16萬位用戶對6萬部電影的2500萬余條評分數據,評分的范圍為0.5到5,間隔為5,電影的類型有動作片、恐怖片、喜劇片等等,一共有19種類型。Netflix記錄了48萬位用戶對1萬余部電影的10000萬余條評分數據,評分的范圍為1到5,間隔為1。本文分別從兩個數據集中隨機選取1500位用戶的所有數據進行實驗,以節省計算資源和時間。需要注意的是,由于Netflix數據集中不包含電影類型的信息,因此本文通過電影標題在MovieLens數據集中查找其相應的類型。本文將數據集按照90%,10%的比例將數據集劃分為訓練集和測試集,每個算法僅基于訓練集預測每個測試集中的所有評分,并進行折十驗證,最終結果取所有實驗的平均值。

2. 評價指標

本文使用平均絕對誤差(Mean Absolute Error, MAE)?、均方根誤差(Root Mean Square Error, RMSE)?來評估評分預測的誤差。MAE反映了算法預測評分與用戶實際評分之間的偏差,RMSE表示預測用戶評分與實際評分之間偏差的均方根值。使用歸一化折損累計增益(Normalized Discounted Cumulative Gain, NDCG)?來評估推薦列表的排序性能。

3. 基線算法

為了評估本文提出的DPFLE的性能,本文將其與其他基線算法進行了上述評價指標的比較。所有算法均取其論文中的最優指標。

在MovieLens數據集和Netflix數據集中的MAE和RMSE結果對比如表1所示,其中表現最佳的值以黑體加粗標出,后續也用此形式表示最優值。DPFLE的MAE值和RMSE值在兩個數據集上相較于其他對比算法均達到了最優。

表2顯示了NDCG和Diversity在兩個數據集上的結果對比。?

表3顯示了各個算法的Accuracy,Precision以及Recall在兩個數據集上的表現。?

在MovieLens與Netflix數據集中,各算法的總體實驗結果表現如圖4,其中本文提出的DPFLE在MAE、RMSE、NDCG、Accuracy這四個指標上均取得了最好的效果。由上述實驗結果可知,將畫像約束與潛在特征相融合并利用深度學習進行評分預測,能夠有效降低推薦系統中的誤差,并且在推薦列表的排序性能方面也有顯著提升。然而,在推薦列表的多樣性方面,本文提出的DPFLE表現并不出色。由于將用戶與物品的畫像約束加入算法中,推薦結果往往集中于用戶已經喜歡的物品,而忽視了其他潛在的、有趣的選項。?

為了探究潛在特征的大小對實驗的影響,本文將k分別設置為50、100、200、300,并在兩個數據集上進行實驗。表4顯示了在不同的潛在特征大小下,DPFLE在兩個數據集中的MAE和RMSE的表現。當k大于300時,MAE和RMSE的實驗結果變化非常小,但是算法的執行時間會更長。為了節省計算資源和時間,本文沒有過多探究更大的k對實驗的影響。?

表5顯示了去掉AFTSimple注意力模塊后與原始算法的比較,其中DPFLE-AFT表示去除注意力模塊后的模型,經比較可以得出DPFLE在兩個數據集中的MAE平均降低了2.11%,RMSE平均降低了1.16%,說明通過線性注意力機制對畫像特征進行加權計算能夠更好地捕捉用戶和物品之間復雜的關系并提升模型的預測精度。?

總結與展望

本文在兩個真實世界的數據集中進行了驗證,實驗結果顯示,在預測精度與推薦列表的排序方面,本文所提出的方法相較于一些先進的算法有明顯的提升。

在未來的工作中,本文將考慮圖神經網絡替代傳統的多層感知機,利用用戶與物品之間的復雜關系構建交互圖,挖掘更深層次的特征關聯,以提高推薦系統的性能,為用戶提供更加個性化和精準的推薦服務。

基金項目:

國家自然科學基金項目(61803264)

原文鏈接:https://doi.org/10.12677/mos.2025.144298

?

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

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

相關文章

華為網路設備學習-26(BGP協議 二)路徑屬性

一、屬性分類二、屬性含義①公認必遵:所有BGP對等體 必須識別 且 在Update報文中攜帶1.Origin2.AS-Path3.Next hop②公認自決:所有BGP對等體 必須識別但可以不在Update報文中攜帶 1.Local-Preference2.ATOMIC_Aggregate③可選傳遞:所有BGP對…

從0搭建YOLO目標檢測系統:實戰項目+完整流程+界面開發(附源碼)

文章目錄一、前言二、專欄介紹三、已有系統介紹3.0 基于yolo通用目標檢測系統(手把手教你修改成為自己的檢測系統)3.1 基于yolov8柑橘檢測系統3.2 基于yolov8艦船檢測系統3.3 基于yolo11人臉檢測系統3.4 基于yolov8無人機影像光伏板缺陷檢測系統一、前言…

【測試】自動化測試工具基礎知識及基本應用

下面詳細介紹一些常用的自動化測試工具及其基本概念,并提供具體的示例代碼,幫助你更好地理解和應用這些工具。1. 自動化測試的基本概念自動化測試是通過軟件程序自動執行測試用例的過程。與手動測試相比,自動化測試能夠提高測試效率、減少人為…

ArcGIS的字段計算器生成隨機數

在ArcGIS的字段計算器中使用Python腳本生成0-100的隨機數,可以按照以下步驟操作: 打開屬性表,選擇要計算的字段打開字段計算器選擇"Python"解析器勾選"顯示代碼塊"在"預邏輯腳本代碼"中輸入以下代碼在下方表達…

【前端:Html】--1.1.基礎語法

目錄 1.HTML--簡介 2.HTML--編譯器 步驟一:啟動記事本 步驟二:用記事本來編輯 HTML 步驟三:保存 HTML 步驟四:在瀏覽器中運行 HTML 3.HTML--基礎 3.1.HTML聲明--!DOCTYPE 3.2.HTML 標題--h1 3.3.HTML 段落--p 3.3.1. 水平線--hr 3.3.2.換行符--br 3.3.3.固定格式…

FreeSWITCH 簡單圖形化界面46 - 收集打包的一些ASR服務

FreeSWITCH 簡單圖形化界面46 - 收集打包的一些ASR服務 0、一個fs的web配置界面預覽1、docker地址2、使用2.1 下載2.2 運行 3、例子3.1 下載3.2 啟動3.3 編譯mod_audio_fork或者mod_audio_stream模塊使用3.4 編寫呼叫路由和呼叫腳本呼叫路由呼叫腳本 3.5 esl捕獲識別結果3.6 其…

20250805問答課題-實現TextRank + 問題分類

textRank的工具包實現其他可能的實現方法,對比結果查找分類的相關算法 目錄 1. 關鍵詞提取TF-IDF TextRank 1.1. TF-IDF算法 1.2. TextRank算法 1.3. 雙算法提取關鍵詞 2. 問題分類 2.1. 預處理 2.2. 獲取BERT向量 2.3. 一級標簽預測 2.4. 二級標簽預測 3…

Memcached緩存與Redis緩存的區別、優缺點和適用場景

一、核心差異概述特性MemcachedRedis?數據結構?簡單鍵值存儲豐富數據結構(String/Hash/List/Set等)?持久化?不支持支持RDB和AOF兩種方式?線程模型?多線程單線程(6.0支持多線程I/O)?內存管理?Slab分配LRU淘汰多種淘汰策略&…

Git簡易教程

Git教程 VCS Version Control System版本控制系統 配置用戶名郵箱 配置用戶名和郵箱 git config --global user.name mihu git config --global user.email aaabbb.com初始化倉庫 從項目倉庫拉 git clone [項目地址]新建文件夾之后 git init提交操作 提交到倉庫 git add . #把…

關于Web前端安全之XSS攻擊防御增強方法

僅依賴前端驗證是無法完全防止 XSS的,還需要增強后端驗證,使用DOMPurify凈化 HTML 時,還需要平衡安全性與業務需求。一、僅依賴前端驗證無法完全防止 XSS 的原因及后端驗證的重要性1. 前端驗證的局限性前端驗證(如 JavaScript 輸入…

消息系統技術文檔

消息系統技術文檔 概述 本文檔詳細說明了如何在現有的LHD通信系統中添加自己的消息類型,包括消息的發送、接收、解析和處理的完整流程。 系統架構 消息流程架構圖 #mermaid-svg-My7ThVxSl6aftvWK {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

【NLP輿情分析】基于python微博輿情分析可視化系統(flask+pandas+echarts) 視頻教程 - 微博輿情數據可視化分析-熱詞情感趨勢樹形圖

大家好,我是java1234_小鋒老師,最近寫了一套【NLP輿情分析】基于python微博輿情分析可視化系統(flaskpandasecharts)視頻教程,持續更新中,計劃月底更新完,感謝支持。今天講解微博輿情數據可視化分析-熱詞情感趨勢樹形圖…

8月4日 強對流天氣藍色預警持續:多地需警惕雷暴大風與短時強降水

中央氣象臺8月4日10時繼續發布強對流天氣藍色預警,提醒廣大民眾注意防范即將到來的惡劣天氣。 預警詳情: 時間范圍: 8月4日14時至5日14時 影響區域: 雷暴大風或冰雹: 西北地區中東部、華北中北部、華南南部等地,風力可達8級以上。 短時強降水: 西北地區中東部、華北、…

C語言數據結構(4)單鏈表專題2.單鏈表的應用

1. 鏈表經典算法——OJ題目 1.1 單鏈表相關經典算法OJ題1:移除鏈表元素 1.2 單鏈表相關經典算法OJ題2:反轉鏈表 1.3 單鏈表相關經典算法OJ題3:合并兩個有序鏈表 1.4 單鏈表相關經典算法OJ題4:鏈表的中間結點 1.5 循環鏈表…

Shell 腳本發送信號給 C 應用程序,讓 C 應用程序回收線程資源后自行退出。

下面分別給出一個 Shell 腳本和 C 程序的例子,實現通過 Shell 腳本發送信號給 C 應用程序,讓 C 應用程序回收線程資源后自行退出。原理在 Linux 系統中,我們可以使用信號機制來實現進程間的通信。Shell 腳本可以使用 kill 命令向指定的進程發…

C++入門自學Day6-- STL簡介(初識)

往期內容回顧 C模版 C/C內存管理(初識) C/C內存管理(續) STL簡介: STL 是 C 標準庫的重要組成部分,是一個通用程序設計的模板庫,用于數據結構和算法的復用。它極大地提升了代碼效率、可靠性…

從零開始搞定類與對象(中)

運算符重載1.當運算符被用于類類型的對象時,C語言允許我們通過運算符重載的形式指定新的含義。C規定類類型對象使用運算符時,必須轉換成調用對應運算符重載,若沒有對應的運算符重載,則會編譯報錯。2. 運算符重載是具有特殊名字的函…

SpringMVC實戰指南:從環境搭建到功能實現全解析

第一章&#xff1a;SpringMVC環境搭建與基礎配置1.1 Maven依賴配置在Maven項目中&#xff0c;SpringMVC的依賴配置是開發的第一步。根據Spring官方推薦&#xff0c;以下是SpringMVC 5.3.x版本的Maven依賴配置&#xff1a;<dependencies><!-- Spring MVC核心依賴 -->…

Repo 與 manifest

Manifest&#xff1a;它本身就是一個 git 倉庫&#xff0c;其中存放的都是包含倉庫和子倉庫信息的XML文件。這些文件全部由開發者或者維護者手動配置并自己上傳到 git 倉庫。另外&#xff1a;Manifest 中的倉庫之間的依賴關系 repo 也并不關心。所以它們可以是同級的也可以是包…

深入淺出 RabbitMQ:簡單隊列實戰指南

大家好&#xff0c;我是工藤學編程 &#x1f989;一個正在努力學習的小博主&#xff0c;期待你的關注實戰代碼系列最新文章&#x1f609;C實現圖書管理系統&#xff08;Qt C GUI界面版&#xff09;SpringBoot實戰系列&#x1f437;【SpringBoot實戰系列】SpringBoot3.X 整合 Mi…