搜廣推校招面經八十一

OPPO搜廣推一面面經

一、介紹一下PLE模型

在多任務學習(Multi-Task Learning, MTL)中,多個任務共享部分模型結構,以提升整體效果。然而,不同任務間存在 任務沖突(Task Conflict) 問題,即不同任務對參數的優化方向不一致,導致性能下降。

論文:Tang, Hongyan, et al. “Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations.” RecSys 2020.

PLE 的核心思想是:

通過引入多個專家網絡(Experts)并區分共享專家與特定任務專家,結合門控機制(Gating Network)實現任務間知識共享與隔離的平衡

1.1. 核心架構

  • 專家網絡(Experts)
    • Shared Experts:供所有任務共享
    • Task-Specific Experts:只供特定任務使用
  • 門控網絡(Gating Network)
    • 每個任務都有自己的門控網絡,決定該任務在當前層中應從哪些專家中獲取信息
    • 輸出為每個專家的加權系數
  • 塔結構(Tower)
    • 每個任務最終仍保留獨立的塔(MLP),用于完成最終預測

1.2. CGC(Customized Gate Control)結構

  • 為了解決任務之間的“蹺蹺板”效應或負遷移效應,MMoE引入了任務獨有的gate(expert是共享的,但gate是任務獨有的,即不同任務通過gate共享相同的expert)
  • CGC在共享expert之外,新增了task specific expert,即每個任務單獨的expert,這些expert是專門用于對應任務的優化的。CGC既能享受到共享特征帶來的好處,也有專有的expert為不同任務提供獨自的優化空間。每一個任務的Tower網絡都獲取相應任務獨享的專家網絡輸出和共享的專家網絡輸出
    在這里插入圖片描述

1.3. PLE就是Extraction Network + 多層CGC的架構

CGC中門控網絡的個數等于任務的個數,而Extraction Network中除了對應任務的門控網絡外,還有一個共享的門控網絡。高層Extraction Network的輸入不是原始的輸入,而是包含更抽象語義的底層Extraction Network的門控融合輸出。
Extraction Network結構 + CGC結構 如下圖:
在這里插入圖片描述

二、模型一般用什么優化器來訓練,Adam優化器的原理,用過哪些優化器,有過對參數的調整嗎?

感覺用得最多的必然是Adam了,原理介紹見【搜廣推校招面經十三】

三、深度學習怎么防止過擬合,L1和L2正則化的區別

見【搜廣推校招面經二十,搜廣推校招面經十四,搜廣推校招面經三十一】

四、排序模型和分類模型輸入是一樣的嗎,輸出有什么差別

4.1. 輸入:基本一致

排序模型(Ranking Model)和分類模型(Classification Model)在輸入特征方面是類似的,通常都是一組結構化的特征向量,反正都是二維的表格。這些特征可以包括數值型、類別型、文本向量化表示等,經過處理(如歸一化、Embedding)后送入模型。

4.2. 輸出:存在本質差異

項目分類模型(Classification)排序模型(Ranking)
輸出形式各類別的概率或標簽候選項的排序分數或排名
任務目標預測所屬類別判斷多個樣本之間的相對排序
應用示例圖片識別:貓 / 狗 / 鳥推薦系統:為用戶排序商品
損失函數常用CrossEntropyLoss、FocalLossPairwise:Hinge loss、BPR
Listwise:Softmax Cross Entropy、LambdaRank
預測方式選最大概率的類別根據得分排序候選項

4.3. pointwise、pairwise、listwise建模排序模型

見【搜廣推校招面經二十九】
排序任務可以根據建模的方式分為三類:Pointwise、Pairwise 和 Listwise,主要區別在于它們如何構造訓練樣本以及如何定義損失函數。

4.3.1. Pointwise 方法

  • 思想:將排序任務看作回歸或分類問題,分別對每個樣本預測一個相關性得分或標簽。
  • 建模方式
    • 每個樣本是一個獨立的 query-document 對
    • 預測其與 query 的相關性得分或是否點擊(0/1)
  • 常用模型/損失函數
    • 回歸:MSE(Mean Squared Error)
    • 分類:CrossEntropyLoss、LogLoss
  • 缺點
    • 忽略了樣本之間的相對關系,排序效果可能不佳

4.3.2. Pairwise 方法

  • 思想:將排序任務轉化為二分類問題,學習成對樣本的相對順序(誰排在前面)。
  • 建模方式
    • 輸入為兩個文檔對 (di, dj),同屬于一個 query
    • 模型學習 di 是否比 dj 更相關
  • 常用模型/損失函數
    • RankNet:使用 s i g m o i d ( s c o r e i ? s c o r e j ) sigmoid(score_i - score_j) sigmoid(scorei??scorej?)
    • BPR(Bayesian Personalized Ranking)
    • Hinge loss(如 SVMRank)
  • 缺點
    • 樣本數量為 O(n2),訓練成本高

4.3.3. Listwise 方法

  • 思想:直接以整個候選列表為輸入,優化整個排序列表的質量。
  • 建模方式
    • 訓練樣本為一個 query 對應的多個文檔列表
    • 模型學習整個列表的最優排列順序
  • 常用模型/損失函數
    • ListNet、ListMLE(優化列表似然)
    • LambdaRank、LambdaMART(基于 NDCG 等指標的優化)
  • 優點:更適合優化排序指標(如 NDCG、MAP)

4.3.4. 三種方法對比表

方法輸入粒度損失目標優點缺點
Pointwise單個樣本回歸/分類損失實現簡單,易于訓練無法建模樣本間排序關系
Pairwise樣本對相對順序損失引入相對信息,排序效果好樣本量大,訓練時間較長
Listwise整個樣本列表列表級排序指標排序效果最佳實現復雜,訓練成本高

五、NDCG(Normalized Discounted Cumulative Gain)計算方法

NDCG 是一種常用的排序評估指標,衡量推薦結果的相關性和排序位置。值越高,說明模型越好。其核心思想是:

  • 相關性越高的項排在越前面越好
  • 靠前位置的重要性更高(打折)

🔸Step 1: 計算 DCG(Discounted Cumulative Gain)

對于前 k 個推薦結果,DCG 的定義如下:
公式一(使用等級評分):
D C G @ k = ∑ i = 1 k r e l i log ? 2 ( i + 1 ) DCG@k = \sum_{i=1}^{k} \frac{rel_i}{\log_2(i + 1)} DCG@k=i=1k?log2?(i+1)reli??
公式二(使用指數評分,更重視高相關性):
D C G @ k = ∑ i = 1 k 2 r e l i ? 1 log ? 2 ( i + 1 ) DCG@k = \sum_{i=1}^{k} \frac{2^{rel_i} - 1}{\log_2(i + 1)} DCG@k=i=1k?log2?(i+1)2reli??1?
其中:

  • rel_i:第 i 個位置的真實相關性評分(如:點擊=1,未點擊=0,或等級評分1~5)
  • i:排序位置,從 1 開始

🔸 Step 2: 計算 IDCG(Ideal DCG)

IDCG 是將相關性從高到低理想排序后得到的 DCG,即最優情況下的 DCG:
I D C G @ k = DCG@k?of?ideal?(sorted)?list IDCG@k = \text{DCG@k of ideal (sorted) list} IDCG@k=DCG@k?of?ideal?(sorted)?list

🔺 Step 3: 計算 NDCG(歸一化 DCG)

N D C G @ k = D C G @ k I D C G @ k NDCG@k = \frac{DCG@k}{IDCG@k} NDCG@k=IDCG@kDCG@k?
如果 IDCG@k = 0(全是 0 分相關性),通常設定 NDCG@k = 0。

示例

直接看公式可能不夠清晰,搞個例子。假設模型返回的文檔真實相關性為:

predicted ranking:  [D1, D2, D3, D4, D5]
rel_scores:         [3, 2, 3, 0, 1]   ← rel_i

計算 DCG@5(使用公式二):

DCG@5 = (2^3 - 1)/log2(1+1) + (2^2 - 1)/log2(2+1) + (2^3 - 1)/log2(3+1) + (2^0 - 1)/log2(4+1) +(2^1 - 1)/log2(5+1)≈ 7/1 + 3/1.5849 + 7/2 + 0/2.3219 + 1/2.5849≈ 7 + 1.892 + 3.5 + 0 + 0.387≈ 12.779

理想排序的相關性:[3, 3, 2, 1, 0],計算 IDCG@5(同樣方法):

IDCG@5 ≈ 7/1 + 7/1.5849 + 3/2 + 1/2.3219 + 0/2.5849≈ 7 + 4.417 + 1.5 + 0.430 + 0≈ 13.347

根據Step3

NDCG@5 = 12.779 / 13.347 ≈ 0.957

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

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

相關文章

LangChain 中主流的 RAG 實現方式

文章目錄 **一、基礎流程實現**1. **全自動索引構建(VectorstoreIndexCreator)**2. **標準問答鏈(RetrievalQA)**3. **Document Chain 手動檢索**4. **load_qa_chain(傳統方式)** **二、高級定制化實現**1…

解決:springmvc工程 響應時,將實體類對象 轉換成json格式數據

問題:一直無法將user對象轉成json格式 按理來說,我在類上使用RestController注解,就可以實現將實體類對象寫入響應體中,并作為json格式傳遞到客戶端,但現實是沒有生效,并且出現404,406&#xf…

【踩坑記錄】stm32 jlink程序燒錄不進去

最近通過Jlink給STM32燒寫程序時一直報錯,但是換一個其他工程就可以燒錄,對比了一下jink配置,發現是速率選太高了“SW Device”,將燒錄速率調整到10MHz以下就可以了

運維打鐵:Mysql 分區監控以及管理

文章目錄 一、簡介二、設計邏輯1、配置文件檢查2、創建邏輯3、 刪除邏輯4、重建表分區邏輯5、recognize maxvalue分區表邏輯6、創建多個未來分區邏輯7、定時檢測分區是否創建成功,否則發送告警郵件。 三、解決的問題四、配置例子與介紹 一、簡介 操作數據庫&#xf…

Appium自動化開發環境搭建

自動化 文章目錄 自動化前言 前言 Appium是一款開源工具,用于自動化iOS、Android和Windows桌面平臺上的本地、移動web和混合應用程序。原生應用是指那些使用iOS、Android或Windows sdk編寫的應用。移動網頁應用是通過移動瀏覽器訪問的網頁應用(appum支持iOS和Chrom…

《R語言SCI期刊論文繪圖專題計劃》大綱

今天開始,我將和大家分享系統且詳細的《R語言SCI期刊繪圖專題教程》,內容會從基礎到高階應用,從配色美學到頂刊風格復現,確保大家可以學到高質量內容!下面是大綱。 📚《R語言SCI期刊論文繪圖專題計劃》 第…

STUN協議 與 TURN協議

STUN(Session Traversal Utilities for NAT,NAT會話穿越應用程序)是一種網絡協議, STUN(Simple Traversal of User Datagram Protocol through Network Address Translators (NATs),NAT的UDP簡單穿越&#…

在vscode終端中運行npm命令報錯

解決方案 這個錯誤信息表明,你的系統(可能是 Windows)阻止了 PowerShell 執行腳本,這是由于 PowerShell 的執行策略導致的。PowerShell 的執行策略控制著在系統上運行哪些 PowerShell 腳本。默認情況下,Windows 可能…

手搓雷達圖(MATLAB)

看下別人做出來什么效果 話不多說,咱們直接開始 %% 可修改 labels {用戶等級, 發帖數, 發帖頻率, 點度中心度, 中介中心度, 帖子類型計分, 被列為提案數}; cluster_centers [0.8, 4.5, 3.2, 4.0, 3.8, 4.5, 4.2; % 核心用戶0.2, 0.5, 0.3, 0.2, 0.1, 0.0, 0.0;…

ViViT: 一種視頻視覺Transformer

摘要 我們提出了基于純transformer的視頻分類模型,借鑒了這種模型在圖像分類中的成功經驗。我們的模型從輸入視頻中提取時空token,然后通過一系列transformer層進行編碼。為了處理視頻中遇到的長序列token,我們提出了幾種高效的模型變種,這些變種將輸入的空間和時間維度進…

嵌入式鴻蒙系統環境搭建與配置要求實現01

各位開發者大家好,今天主要給大家分享一下,鴻蒙系統的環境配置實現。 第一:鴻蒙配置基本要求 對電腦的要求,虛擬機配置建議 200GB 硬盤大小,10GB 內存,4*2CPU。 安裝必要的依賴文件方法: sudo apt-get update && sudo apt-get install binutils git git-lfs g…

【多目標進化算法】常見多目標進化算法一覽

算法全稱核心特點備注NSGA-IINon-dominated Sorting Genetic Algorithm II非支配排序 擁擠度最經典,應用最廣NSGA-IIINon-dominated Sorting Genetic Algorithm III支撐向量引導,適合高維(3目標以上)NSGA-II 的高維擴展版MOEA/DM…

創意無限,從這些視頻素材開始你的創作!

在視頻創作的世界里,找到合適的素材就像是挖掘寶藏,不僅能節省時間,還能讓作品瞬間提升一個檔次。今天,就來給大家分享一些超實用的視頻素材網站,無論是國內的寶藏平臺,還是國外的優質資源,都能…

QT創建新項目(13)

文章目錄 一、本章說明二、QT組件簡介及相關筆記三、項目創建四、QT學習建議一、本章說明 注:本節為【基于STM的環境監測系統(節點+云服務器存儲+QT界面設計)】項目第13篇文章,前面已安裝了QT軟件,本章主要介紹新項目創建及注意事項,QT的初學者相關學習資料 二、QT組件…

Langgraph實戰-Agent-ReAct(Reason+Act)概述

Langgraph實戰-Agent-ReAct(ReasonAct)概述 概述 ReAct 架構將推理與動作相結合,使Agent能夠通過生成想法并基于這些想法執行動作。這種決策透明度使Agent能夠更負責地執行任務,因為它會記錄每一步的推理過程。 這種架構最適合…

論文筆記(七十九)STOMP: Stochastic Trajectory Optimization for Motion Planning

STOMP: Stochastic Trajectory Optimization for Motion Planning 文章概括摘要一、引言二、相關工作三、STOMP 算法A. 探索B. 軌跡更新 四、機械臂的運動規劃A. 設置B. 代價函數1)障礙物代價:2)約束代價:3)扭矩代價&a…

MCU開發學習記錄9 - 通用定時器學習與實踐(HAL庫) -RGBLED控制、定時器輸入捕獲、主從定時器移相控制-STM32CubeMX

本文將介紹通用定時器的概念、相關函數以及STM32CubeMX生成定時器的配置函數以及對生成定時器的配置函數進行分析(包括結構體配置、相關寄存器配置)。 本文以TIM2/TIM5、TIM3/TIM4為基礎介紹通用定時器(包含通用定時器全部功能&#…

Java學習手冊:TCP 協議基礎

一、TCP 協議概述 TCP(Transmission Control Protocol,傳輸控制協議)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議,它在 IP 協議的基礎上提供了可靠的 數據傳輸服務。TCP 通過三次握手建立連接,通過四次揮手…

刪除排序數組中的重復項--LeetCode

題目 給你一個非嚴格遞增排列的數組 nums ,請你原地刪除重復出現的元素,使每個元素 只出現一次 ,返回刪除后數組的新長度。元素的 相對順序 應該保持 一致 。然后返回 nums 中唯一元素的個數。 考慮 nums 的唯一元素的數量為 k &#xff0c…

【Elasticsearch】入門篇

Elasticsearch 入門 前言 官方地址:Elastic — 搜索 AI 公司 | Elastic ES 下載地址:Past Releases of Elastic Stack Software | Elastic 文檔:什么是 Elasticsearch?|Elasticsearch 指南 簡介 Elasticsearch 是一個分布式、…