【字節跳動】數據挖掘面試題0017:推薦算法:雙塔模型,怎么把內容精準地推送給用戶

文章大綱

  • 雙塔模型:推薦算法中的“高效匹配引擎
    • 一、雙塔模型的核心思想:“分而治之” 的匹配邏輯
    • 二、雙塔模型的結構:從特征輸入到相似度輸出
      • 1. 輸入層:特征的 “原材料處理”
      • 2. 塔網絡層:用戶與物品的“個性化編碼”
      • 3. 交互層:向量相似度的“偏好打分”
    • 三、雙塔模型的優勢:為什么成為工業界首選?
      • 1. 高效支持大規模推薦
      • 2. 擅長處理稀疏與高維特征
      • 3. 工程部署友好
    • 四、工業界應用案例
    • 五、場景類比:披薩店精準推薦
      • 雙塔模型本質: 兩邊分開學,最后比相似
      • Python精簡實現(TensorFlow)
      • 精準推送的3個關鍵技巧
        • 1?? 新顧客冷啟動 → 用「元特征」猜喜好
        • 2?? 老顧客精準推薦 → 抓住實時興趣
        • 3?? 避免信息繭房 → 強制多樣性
      • 線上效果對比(真實A/B測試)
      • 面試常見三連問
        • Q1:雙塔為什么比單塔好?
        • Q2:如何應對數據稀疏(比如小眾口味)?
        • Q3:模型多久更新一次?
      • 一句話總結雙塔精髓

在這里插入圖片描述

雙塔模型:推薦算法中的“高效匹配引擎

  • 在推薦系統領域,雙塔模型(Two-Tower Model) 是一種被工業界廣泛應用的深度學習架構,尤其在 大規模推薦場景中占據核心地位
  • 它以“用戶塔”和“物品塔”的雙網絡結構為核心,通過將用戶與物品映射到同一向量空間并計算相似度實現推薦,因高效、易部署的特點成為召回和粗排階段的“標配”。
    在這里插入圖片描述

一、雙塔模型的核心思想:“分而治之” 的匹配邏輯

  • 推薦系統的本質是解決“用戶-物品匹配”問題——即預測用戶對物品的偏好程度。

  • 傳統方法(如協同過濾、邏輯回歸)在處理 海量用戶/物品或高維稀疏特征時,常面臨計算復雜、泛化能力弱 的問題。

  • 雙塔模型的核心創新在于 “分離建模+向量匹配”

      1. 分離建模:將用戶特征和物品特征通過兩個獨立的神經網絡(“塔”)分別處理,避免用戶與物品特征直接交互帶來的 計算爆炸
      1. 向量匹配:將用戶和物品分別映射到低維稠密的向量空間(稱為“用戶向量”和“物品向量”),通過向量相似度(如內積、余弦相似度)衡量用戶對物品的偏好,簡化匹配計算。

形象來說,雙塔模型就像“紅娘”:先分別深入了解“用戶”(用戶塔)和“物品”(物品塔)的特征,再通過兩者的“性格匹配度”(向量相似度)決定是否推薦。

二、雙塔模型的結構:從特征輸入到相似度輸出

雙塔模型的結構可分為輸入層、塔網絡層、交互層三部分。

1. 輸入層:特征的 “原材料處理”

輸入層負責接收用戶和物品的原始特征,并進行初步預處理。

  • 用戶特征包括用戶ID、 demographics(年齡、性別、地域)、行為歷史(點擊/購買物品ID序列)、設備信息(手機型號、系統)等
  • 物品特征:包括物品ID、類別(如“服裝-上衣-T恤”)、屬性(價格、品牌、標簽)、內容特征(文本、圖片 embedding)等。

這些特征可能是離散型(如ID、類別)或連續型(如價格、年齡),需通過嵌入層(Embedding Layer) 統一轉換為低維稠密向量(離散特征通過查表映射,連續特征直接輸入或分箱后嵌入)。

2. 塔網絡層:用戶與物品的“個性化編碼”

“用戶塔”和“物品塔”是兩個獨立的神經網絡(通常為全連接網絡,也可結合CNN、RNN、注意力機制等),負責將預處理后的特征轉化為抽象的向量表示。

  • 用戶塔:聚焦于“用戶偏好建模”,例如通過RNN處理用戶歷史行為序列,捕捉用戶的短期興趣;通過全連接層融合 demographics 特征,捕捉長期偏好;
  • 物品塔:聚焦于“物品特性建模”,例如通過CNN提取物品圖片特征,通過全連接層融合價格、品牌等屬性,生成物品的“身份標簽”向量。

3. 交互層:向量相似度的“偏好打分”

經過塔網絡編碼后,用戶和物品分別得到固定維度的向量(如128維、256維),交互層通過相似度函數計算兩者的匹配度,作為推薦分數。常用的相似度函數包括:

  • 內積(Dot Product):最常用,計算簡單(用戶向量 · 物品向量 = Σ(user_i * item_i));
  • 余弦相似度:歸一化后的內積,消除向量模長影響(cosθ = (用戶向量 · 物品向量) / (||用戶向量||·||物品向量||));
  • 歐氏距離/曼哈頓距離:通過距離衡量相似性(距離越小越相似)。

最終輸出的相似度分數越高,代表用戶對物品的潛在偏好越強。

三、雙塔模型的優勢:為什么成為工業界首選?

雙塔模型在推薦系統中被廣泛應用(如電商、短視頻、信息流),核心優勢體現在以下方面:

1. 高效支持大規模推薦

  • 離線計算與在線檢索分離:物品塔的向量可離線預計算并存儲在向量數據庫(如FAISS、Milvus)中,在線推薦時僅需實時計算用戶向量,再通過向量檢索快速召回TopN相似物品,避免實時計算所有用戶-物品對的復雜度;
  • 可擴展性強:新增物品時僅需重新計算該物品的向量,無需更新整個模型,適合物品庫動態變化的場景(如電商新品上架、短視頻實時更新)。

2. 擅長處理稀疏與高維特征

用戶和物品的特征(如ID、標簽)往往是高維稀疏的(例如用戶ID可能有10億級),雙塔模型通過嵌入層將稀疏特征壓縮為低維稠密向量?

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

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

相關文章

7月14日日記

數學類今天考完最后一科英語放假回家了。有點羨慕他們。今天英語成績出來了,我是89分,一開始有點失望,感覺沒有上90,這是一個很好的沖擊4.0 的機會。但是后來一想好像也沒什么可惜的,這個分數還是很高的。舍友小林是90…

js的局部變量和全局變量

全局變量常常定義在函數外,具有全局定義域,在整個js代碼的任何地方都可以使用,這個就叫全局變量局部變量定義在函數內部,只在當前函數的定義域可以被使用,而且不同的函數可以定義相同的局部變量,他們之間相…

C++ 多態詳解:從概念到實現原理----《Hello C++ Wrold!》(14)--(C/C++)

文章目錄前言多態的概念多態的定義和實現虛函數虛函數的重寫(覆蓋)多態的構成條件override 和 final(C11提出)finaloverride重載、覆蓋(重寫)、隱藏(重定義)的對比抽象類接口繼承和實現繼承多態的原理虛函數表(也叫做虛表)引申:虛表的打印多態的原理靜態…

Node.js + Express的數據庫AB View切換方案設計

方案總覽數據導入過程: - 根據控制表判斷當前活躍組(假設當前活躍的是a,那么接下來要導入到b)。 - 清空非活躍表(即b表)的數據,然后將新數據導入到b表。 - 切換控制表,將活…

C++_編程提升_temaplate模板_案例

類模板案例案例描述: 實現一個通用的數組類,要求如下:可以對內置數據類型以及自定義數據類型的數據進行存儲將數組中的數據存儲到堆區構造函數中可以傳入數組的容量提供對應的拷貝構造函數以及operator防止淺拷貝問題提供尾插法和尾刪法對數組中的數據進…

Win11系統安裝Anaconda環境極簡教程

Win11系統安裝Anaconda環境極簡教程 📥 第一步:下載 Anaconda 安裝包 打開瀏覽器,訪問 Anaconda 官網,選擇View All Installers 選擇所需版本(此文以2024.02-1為例),點擊進行下載(…

Datawhale AI夏令營-基于帶貨視頻評論的用戶洞察挑戰賽

一.賽事目標基于星火大模型Spark 4.0 Ultra,對視頻和評論的數據進行商品識別,情感分析,歸類分析,最終為帶貨效果進行評價。并通過優化模型來提高評價準確度二.賽事環境1.基礎平臺:星火大模型Spark 4.0 Ultra2.賽事數據…

如何基于FFMPEG 實現視頻推拉流

文章目錄 前言環境準備為什么選擇 FFmpeg什么是nginx 1.7.11.3 GryphonNginx的conf配置啟動nginx推流命令接收視頻流Untiy播放視頻流最后前言 我們經常會有在電腦上實現推拉流的需求,Unity 和Unreal 都提供了基于WebRTC 的視頻流方案,效果還不錯,但是當我們需要推拉整個電腦…

飛算JavaAI:從情緒價值到代碼革命,智能合并項目與定制化開發新范式

目錄一、飛算 JavaAI 是什么?二、飛算JavaAI:安裝登錄2.1 IDEA插件市場安裝(推薦)2.2 離線安裝包三、飛算JavaAI核心功能:一鍵生成完整工程代碼功能背景3.1 理解需求3.2 設計接口3.3 表結構自動設計3.4 處理邏輯&#…

Python 基礎語法與數據類型(十一) - 類 (class) 與對象 (實例)

文章目錄1. 什么是類 (Class)?1.1 定義一個類2. 什么是對象 (Object) 或實例 (Instance)?2.1 創建對象(實例化)3. 訪問屬性和調用方法4. 類屬性 vs 實例屬性5. self 的重要性總結練習題練習題答案前幾篇文章我們學習了變量、數據類…

精準數據檢索+數據飛輪自驅優化,彩訊AI知識庫助力企業知識賦能和效率創新

近兩年,人工智能技術的精細化發展,讓知識庫概念重新成為“熱門詞匯”,騰訊ima等智能工作臺產品為個人用戶打造專屬知識庫,而面向B端市場,企業AI知識庫也逐步成為企業集中存儲與管理核心文檔、數據、經驗和流程的知識中…

打破空間邊界!Nas-Cab用模塊化設計重構個人存儲邏輯

文章目錄前言1. Windows安裝Nas-Cab2. 本地局域網連接Nas-Cab3. 安裝Cpolar內網穿透4. 固定Nas-Cab 公網地址"數據管理不該受制于硬件形態或地理邊界。這個開源方案證明:當功能模塊化且可擴展時,私有云可以像水一樣滲透進所有設備——現在就去Git倉…

Sigma-Aldrich細胞培養基礎知識:細胞培養的安全注意事項

細胞培養實驗室風險評估風險評估的主要目的是防止人員受傷,保護財產,并避免對個人和環境的傷害。在許多國家,法律要求進行風險評估。例如,英國的《英國職業健康與安全法案(1974年)》就是一個例子。歐洲共同…

Imx6ull用網線與電腦連接

理解工作方式沒有路由器時,可以使用,只要保持虛擬機的兩個網卡一個與電腦在同一網,一個與板子在同一網段(保持通信)就可以從虛擬機往板子下載第一步:查看電腦連接的網絡這一步是在找到主機ip地址這兩步在其他同類教程里一樣的第二步:設置以太…

力扣454.四數相加Ⅱ

給你四個整數數組 nums1、nums2、nums3 和 nums4 &#xff0c;數組長度都是 n &#xff0c;請你計算有多少個元組 (i, j, k, l) 能滿足&#xff1a;0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0示例 1&#xff1a;輸入&#xff1a;nums1 [1,2], nums2 …

Joplin:一款免費開源、功能強大且注重隱私的筆記軟件

Joplin 是一款免費開源、功能強大且注重隱私的筆記和待辦事項應用程序&#xff0c;它的設計目標是成為 Evernote 等流行筆記應用的強大替代品&#xff0c;尤其適合重視數據所有權和隱私的用戶。 功能特性 Joplin 的核心定位與優勢如下&#xff1a; 完全開源&#xff1a;代碼公…

滲透前四天總結

目錄 一.DNS DNS 基本概述 DNS解析過程 二.HTTPS TLS握手過程 RSA加密 對稱加密&#xff1a; 非對稱加密&#xff1a; RSA加密過程 三.使用xdebug調試php 四.信息收集 一.DNS DNS 基本概述 DNS&#xff1a;域名系統(DomainNameSystem)因特網的一項核心服務&#xf…

Python----NLP自然語言處理(中文分詞器--jieba分詞器)

一、介紹文本語料在輸送給NLP模型前&#xff0c;需要一系列的預處理工作&#xff0c;才能符合模型輸入的要求。對于NLP來說&#xff0c;他學習一篇人類書寫的文章不是整體的來學習&#xff0c;而是一個詞一個詞的來學習。所以文本預處理的第一個步驟就是對文本進行分詞處理。&a…

深入了解linux系統—— 進程信號的保存

信號 信號&#xff0c;什么是信號&#xff1f; 在現實生活中&#xff0c;鬧鐘&#xff0c;紅綠燈&#xff0c;電話鈴聲等等&#xff1b;這些都是現實生活中的信號&#xff0c;當鬧鐘想起時&#xff0c;我就要起床&#xff1b;當電話鈴聲想起時&#xff0c;我就知道有人給我打電…

Redis 事務錯誤處理機制與開發應對策略

&#x1f4d8; Redis 事務錯誤處理機制與開發應對策略一、Redis 事務基礎回顧 Redis 中的事務由以下三組命令構成&#xff1a;命令作用說明MULTI開始一個事務&#xff0c;進入命令入隊模式命令集所有后續命令不會立即執行&#xff0c;而是入隊等待提交EXEC提交事務&#xff0c;…