推薦算法--推薦系統架構(06)

外圍架構

一般來說,每個網站都有一個 UI 系統,UI 系統負責給用戶展示網頁并和用戶交互。網站會通過日志系統將用戶在 UI 上的各種各樣的行為記錄到用戶行為日志中。

從上面的結構可以看到,除了推薦系統本身,主要還依賴兩個條件--界面展示和用戶行為數據。

推薦系統架構

推薦系統聯系用戶和物品的主要方式如下圖所示。如果將這三種方式都抽象一下就可以發現,如果認為用戶喜歡的物品也是一種用戶特征,或者和用戶興趣相似的其他用戶也是一種用戶特征,那么用戶就和物品通過特征相聯系。


根據上面的抽象,可以設計一種基于特征的推薦系統架構。當用戶到來后,推薦系統需要為用戶生成特征,然后對每個特征找到和特征相關的物品,從而最終生成用戶的推薦列表。因而,推薦系統的核心任務就被拆解成兩部分,一個是如何為給定用戶生成特征,另一個是如何根據特征找到物品。


用戶的特征非常多,主要包括以下幾類:
人口的統計學特征:包括用戶的年齡,性別,國籍,民族等用戶注冊時提供的信息。
用戶的行為特性: ? 包括用戶瀏覽過什么商品,購買,收藏,評分等用戶行為相關的特征。

用戶的話題特征: ? 可以根據用戶的歷史行為利用話題模型將電視劇和電影聚合成不同的話題,計算用戶對什么話題感興趣。

如果要在一個系統中把上面提到的特征和任務都統籌考慮,那么推薦系統會非常復雜,而且很難通過配置文件方便的配置不同特征和任務的權重。因此,推薦系統需要由多個推薦引擎組成,每個引擎負責一類特征和一種任務。推薦系統的任務就是將不同的推薦引擎的結果按照一定的權重或者優先級合并,排序然后返回。推薦系統架構如圖:


可以方便的增加/刪除引擎,控制不同引擎對推薦結果的影響。

可以實現推薦引擎級別的用戶反饋。每一個推薦引擎其實代表了一種推薦策略,而不同的用戶可以喜歡不同的推薦策略。

推薦引擎的架構

如圖所示,推薦引擎架構主要分為 3 部分:

部分 A 主要負責從數據庫或者緩存中拿到用戶行為數據,通過分析不同的行為,生成當前用戶的特征向量。
部分 B 負責將用戶的特征向量通過特征-物品相關矩陣轉化為初始推薦物品列表。

部分 C 負責對初始化的推薦列表進行過濾、排名等處理,從而生成最終的推薦結果。

生成用戶特征向量:在利用用戶行為計算特征向量時需要考慮以下因素
用戶行為的種類-- 在一個網站中,用戶可以對物品產生很多種不同種類的行為。如瀏覽,購買,評分等。一般標準就是用戶付出代價越大的行為權重越高。比如,用戶購買行為需要掏錢,所以用戶會三思而后行,因此購買行為最重要。

用戶產生行為的時間 -- 一般來說,近期的行為比過去重要。
用戶行為的次數 -- 有時用戶對一個物品會產生多次行為,行為次數多的物品對應的特征權重越高。

物品的熱門程度 -- 用戶對不熱門的物品產生的行為更能代表用戶的個性。

特征-物品相關推薦:從架構圖可以看出,特征-物品相關推薦可以接受一個候選物品集合。候選物品集合的目的是保證推薦結果只包括含候選物品集合中的物品。比如有些產品要求給用戶推薦最近一周加入的新的物品,那么候選物品集合就包括最近一周新加的物品。

過濾和排名:將初始推薦列表中一些用戶已經看過的,或者總體評分低的,質量差的,或者推薦后用戶可以自己根據條件刷選的(比如價格區間)的物品過濾掉,并按照一定的排序規則(比如新穎度)展現給用戶,生成最終的推薦結果。

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

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

相關文章

樹狀數組維護區間和的模型及其拓廣的簡單總結

by wyl8899 樹狀數組的基本知識已經被講到爛了,我就不多說了,下面直接給出基本操作的代碼。 假定原數組為a[1..n],樹狀數組b[1..n],考慮靈活性的需要,代碼使用int *a傳數組。 #define lowbit(x) ((x)&(-(x))…

Python(6)-算數運算符

算數運算符1.算數運算符2.優先級1.算數運算符 加 減- 乘* 除/ 取商// 取余數% 冪**(能算n次方: 2**38,一直以為只能算平方) 擴展: 乘法用于字符串:字符串重復指定的次數,要拼接的次數很長時,用乘號很方便…

推薦算法--其他信息(07)

文章目錄目錄1.利用上下文信息1.1時間上下文1.2地點上下文2.利用網絡社交數據2.1 獲取網絡社交數據途徑2.2 社交網絡數據2.3 基于社交網絡的推薦2.4 推薦算法2.5 給用戶推薦好友目錄 1.利用上下文信息 1.1時間上下文 用戶的興趣是隨著時間變化的,三天打魚兩天曬網…

動態規劃的深入探討

一、引言 動態規劃是一種重要的程序設計思想,具有廣泛的應用價值。使用動態規劃思想來設計算法,對于不少問題往往具有高時效,因而,對于能夠使用動態規劃思想來解決的問題,使用動態規劃是比較明智的選擇。 能夠用動態規…

Python(7)-程序執行的原理

程序執行的原理1.計算機中的三個核心部件2.程序執行的原理3.程序的作用1.計算機中的三個核心部件 CPU:中央處理區,超大規模的集成電路,負責處理數據、計算 內存:臨時存儲數據,斷電數據消失,讀取數據快 硬盤…

推薦系統讀書筆記(推薦系統實戰)

隨著信息技術和互聯網的發展,人們逐漸從信息匱乏的時代走入了信息過載的時代。在這個時代,無論是信息消費者還是信息生產者都遇到很大的挑戰;對于消費者,從大量信息中找到自己感興趣的信息是一件非常困難的事情;對于信…

橙白oj 2017級《算法分析與設計》-練習02

注:A題我以為給新生出的,應該賊簡單,是按順序消滅,卡了十幾分鐘,成了最后一個ac的題,真是菜的真實。 Problem A: Description 白細胞是人體與疾病斗爭的“衛士”。當病菌侵入人體體內時,白細胞…

python(9)-變量、input函數

變量、input函數1.變量的定義(不可變對象)2.變量的類型3.變量的命名規范4. 不同類型的數據計算5.類型轉換函數6.input()7.Tips程序是用來處理數據的,而變量是用來存儲數據的。 關于函數,是一個提前準備好的代碼;可以直接使用,不用…

推薦算法--總結(08)

一、推薦系統結構二、推薦引擎算法(Algorithm)1、協同過濾推薦算法1.1 關系矩陣與矩陣計算1.1.1 用戶與用戶(U-U矩陣)1.1.2 物品與物品(V-V矩陣)1.1.3 用戶與物品(U-V矩陣)1.1.4 奇異…

算法總結-1算法入門

1.0 前言 算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。 …

Python(10)- 格式化輸出%

格式化輸出1. 格式化輸出浮點數2. 格式化輸出整數3. 格式化輸出浮點數4. 格式化輸出百分號%變量的格式化輸出:input函數將信息輸出到控制臺,實現變量和文字一起輸出。 %格式化操作符,和不同的字符連用,%s 字符串,%d 十…

FM系列算法解讀(FM+FFM+DeepFM)

在計算廣告中,CTR是非常重要的一環。對于特征組合來說,業界通用的做法主要有兩大類:FM系列和Tree系列。這里我們來介紹一下FM系列。   在傳統的線性模型中,每個特征都是獨立的,如果需要考慮特征與特征之間的相互作用…

二叉樹層序遍歷

層序遍歷序列為:ABCDEFG 思路:棧是先進后出的數據結構,而隊列是先進先出的數據結構。 我們層序遍歷,很明顯,先遇到的節點先打印,不同于前中后序遍歷,我們采用隊列結構。 具體執行過程如下&…

深度學習(01)-- 基礎學習

文章目錄目錄1. 深度學習基礎1.1 深度學習總覽1.2 深度網絡訓練過程1.2.1 傳統神經網絡的訓練方法為什么不能用在深度神經網絡1.2.2 deep learning訓練過程1.3 數學知識:2. 九種深度學習模型2.1 受限玻爾茲曼機RBM2.2 自編碼器AE(降維)2.3 深…

MachineLearning(1)-激活函數sigmoid、損失函數MSE、CrossEntropyLoss

損失函數1.激活函數2.損失函數2.1均方誤差損失函數2.2交叉熵損失函數2.3 NLLLoss()2.4 BCELoss()1.激活函數 全連接網絡又叫多層感知器,多層感知器的基本單元神經元是模仿人類神經元興奮與抑制機制,對其輸入進行加權求和,若超過某一閾值則該…

Java的IO總結

非流式文件類--File類 從定義看,File類是Object的直接子類,同時它繼承了Comparable接口可以進行數組的排序。 File類的操作包括文件的創建、刪除、重命名、得到路徑、創建時間等,以下是文件操作常用的函數。 File類是對文件系統中文件以及文…

深度學習(02)-- ANN學習

文章目錄目錄1.神經網絡知識概覽1.1深度學習頂會1.2相關比賽1.3神經網絡知識概覽1.4神經網絡編程一般實現過程2.簡單神經網絡ANN2.1 數據集:2.2 網絡結構:2.3 代碼實現2.3.1 讀取數據,并做處理2.3.2 構建網絡結構2.3.3 訓練網絡目錄 1.神經網…

python(11)-if語句,斷言assert

分支語句if1.if基本語法2 if語句的嵌套3 比較運算符號4 邏輯運算符:5 整數隨機數初應用6 tip7.斷言assert1.if基本語法 if語句開發中的應用場景:如果條件成立做一件事情,如果條件不成立做另外一件事情。有了if語句,程序有了分支.…

深度學習(03)-- CNN學習

文章目錄目錄1.CNN學習2.Keras深度學習框架目錄 1.CNN學習 卷積神經網絡CNN總結 從神經網絡到卷積神經網絡(CNN)我們知道神經網絡的結構是這樣的: 那卷積神經網絡跟它是什么關系呢?其實卷積神經網絡依舊是層級網絡,…