91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

X (Twitter) 推薦系統(tǒng)架構(gòu)設(shè)計(jì)深度解析

caicaicc ? 來源:caicaicc ? 作者:caicaicc ? 2026-02-25 23:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

X (Twitter) 推薦系統(tǒng)架構(gòu)設(shè)計(jì)深度解析

本文基于 xai-org/x-algorithm 開源倉(cāng)庫(kù)的源碼分析,系統(tǒng)性地解讀了 X 平臺(tái) "For You" 信息流的推薦算法架構(gòu)、核心機(jī)制與設(shè)計(jì)哲學(xué)。


目錄

  1. 系統(tǒng)架構(gòu)總覽
  2. 召回階段:雙塔模型
  3. 精排階段:Transformer 排序模型
  4. 特征工程:Embedding 與 Hash Trick
  5. 關(guān)鍵設(shè)計(jì)決策
  6. 工程實(shí)踐要點(diǎn)
  7. 總結(jié)與思考

1. 系統(tǒng)架構(gòu)總覽

1.1 核心組件

X 的推薦系統(tǒng)由三個(gè)核心模塊構(gòu)成:

組件技術(shù)棧職責(zé)
Home MixerRustPipeline 編排層,負(fù)責(zé)組裝整個(gè)推薦流水線
PhoenixJAX/PythonML 模型層,提供召回 (Retrieval) 和精排 (Ranking) 模型
ThunderRust實(shí)時(shí)數(shù)據(jù)層,提供 In-Network(關(guān)注的人)推文流

1.2 推薦漏斗

┌─────────────────────────────────────────────────────────────────┐
│                        全量推文庫(kù)                                │
│                       (~數(shù)億條推文)                              │
└───────────────────────────┬─────────────────────────────────────┘
                            │
                            ▼ Thunder (關(guān)注) + Phoenix Retrieval (推薦)
┌─────────────────────────────────────────────────────────────────┐
│                        候選集                                    │
│                       (~1000 條)                                 │
└───────────────────────────┬─────────────────────────────────────┘
                            │
                            ▼ Pre-Scoring Filters (初篩)
┌─────────────────────────────────────────────────────────────────┐
│                        過濾集                                    │
│                       (~500 條)                                  │
└───────────────────────────┬─────────────────────────────────────┘
                            │
                            ▼ Phoenix Scorer (精排 Transformer)
┌─────────────────────────────────────────────────────────────────┐
│                        精排集                                    │
│                       (~32 條)                                   │
└───────────────────────────┬─────────────────────────────────────┘
                            │
                            ▼ Weighted Scorer + Selection
┌─────────────────────────────────────────────────────────────────┐
│                     最終 Feed                                    │
│                    (Top K 展示)                                  │
└─────────────────────────────────────────────────────────────────┘

2. 召回階段:雙塔模型

2.1 為什么需要雙塔?

核心矛盾 :精排模型雖然精準(zhǔn),但計(jì)算復(fù)雜度 O(N),無(wú)法遍歷數(shù)億推文。

解決方案 :雙塔模型通過解耦 (Decoupling) 實(shí)現(xiàn)極速召回。

2.2 雙塔架構(gòu)

┌─────────────────┐                    ┌─────────────────┐
│    User Tower   │                    │  Candidate Tower│
│  (Transformer)  │                    │     (MLP)       │
├─────────────────┤                    ├─────────────────┤
│ - 用戶 ID       │                    │ - 推文 ID       │
│ - 歷史行為序列  │                    │ - 作者 ID       │
│ - 用戶特征      │                    │ - 推文特征      │
└────────┬────────┘                    └────────┬────────┘
         │                                      │
         ▼                                      ▼
    V_user [256]                          V_item [256]
         │                                      │
         └──────────────┬───────────────────────┘
                        │
                        ▼
              Similarity = V_user · V_item
                        │
                        ▼
                   Top-K 召回

2.3 核心優(yōu)勢(shì)

特性說明
物品向量可預(yù)計(jì)算推文發(fā)布時(shí)即可離線計(jì)算 Embedding,存入向量數(shù)據(jù)庫(kù)
用戶向量實(shí)時(shí)計(jì)算請(qǐng)求時(shí)只需跑一次 User Tower
ANN 極速檢索利用近似最近鄰算法,毫秒級(jí)從億級(jí)候選中檢索 Top-K

2.4 共享向量空間的學(xué)習(xí)

問題 :用戶特征(年齡、性別)和物品特征(文本、圖片)看似不在同一空間,為何能計(jì)算相似度?

答案 :通過監(jiān)督學(xué)習(xí)強(qiáng)行對(duì)齊。

訓(xùn)練數(shù)據(jù): (用戶A, 推文B, 點(diǎn)贊=1)  -- 正樣本
         (用戶A, 推文C, 滑過=0)  -- 負(fù)樣本

Loss Function: 讓 V_A · V_B ↑, 讓 V_A · V_C ↓

結(jié)果: 神經(jīng)網(wǎng)絡(luò)自動(dòng)學(xué)會(huì)把"喜歡籃球的用戶""NBA推文"映射到同一區(qū)域

3. 精排階段:Transformer 排序模型

3.1 與召回的區(qū)別

維度召回 (雙塔)精排 (Transformer)
處理規(guī)模億級(jí) → 千級(jí)百級(jí) → 十級(jí)
交互方式獨(dú)立編碼,僅點(diǎn)積全交互 Attention
精度粗糙精準(zhǔn)
計(jì)算復(fù)雜度O(1)(配合索引)O(N times S)

3.2 輸入序列構(gòu)造

精排模型將所有信息拼接成一個(gè)長(zhǎng)序列:

輸入序列 = [用戶特征 | 歷史記錄1 | ... | 歷史記錄S | 候選推文1 | ... | 候選推文C]

形狀: [Batch, 1 + 128 + 32, 256] = [Batch, 161, 256]

3.3 Candidate Isolation (候選隔離)

問題 :如果候選推文之間可以互相 Attention,評(píng)分會(huì)受批次內(nèi)其他推文影響,不穩(wěn)定。

解決方案 :特殊的 Attention Mask。

Keys (被看的位置)
          ─────────────────────────────────────────────?
          │ 用戶 │       歷史       │      候選        │
    ┌─────┼──────┼──────────────────┼──────────────────┤
Q   │ 用戶│  ?   │  ? ? ? ? ? ? ?   │  ? ? ? ? ? ?    │
u   ├─────┼──────┼──────────────────┼──────────────────┤
e   │ 歷史│  ?   │  ? ? ? ? ? ? ?   │  ? ? ? ? ? ?    │
r   ├─────┼──────┼──────────────────┼──────────────────┤
i   │     │      │                  │  只能看自己       │
e   │ 候選│  ?   │  ? ? ? ? ? ? ?   │  ? ? ? ? ? ?    │
s   │     │      │                  │  ? ? ? ? ? ?    │
    │     │      │                  │  ? ? ? ? ? ?    │
    └─────┴──────┴──────────────────┴──────────────────┘

規(guī)則:
- 候選 → 用戶/歷史: ? (可以看)
- 候選 → 其他候選: ? (不能看)
- 候選 → 自己: ? (可以 Self-Attention)

3.4 多目標(biāo)預(yù)測(cè)

模型不輸出單一分?jǐn)?shù),而是預(yù)測(cè) 所有交互行為的概率

輸出: [B, Num_Candidates, Num_Actions]
     = [32, 32, 15]

Actions:
├── P(favorite)          # 點(diǎn)贊
├── P(reply)             # 評(píng)論
├── P(repost)            # 轉(zhuǎn)發(fā)
├── P(click)             # 點(diǎn)擊
├── P(video_view)        # 視頻觀看
├── P(share)             # 分享
├── P(follow_author)     # 關(guān)注作者
├── P(not_interested)    # 不感興趣 (負(fù)面)
├── P(block_author)      # 屏蔽 (負(fù)面)
├── P(mute_author)       # 靜音 (負(fù)面)
└── P(report)            # 舉報(bào) (負(fù)面)

3.5 加權(quán)打分

WeightedScorer 將多目標(biāo)概率組合為最終分?jǐn)?shù):

text{Score} = sum_{i} w_i times P(text{action}_i)

  • 正面行為(點(diǎn)贊、轉(zhuǎn)發(fā)):正權(quán)重
  • 負(fù)面行為(屏蔽、舉報(bào)):負(fù)權(quán)重

優(yōu)勢(shì) :業(yè)務(wù)層可通過調(diào)整權(quán)重快速改變推薦策略,無(wú)需重新訓(xùn)練模型。


4. 特征工程:Embedding 與 Hash Trick

4.1 三張 Embedding Table 架構(gòu)

X 的 Phoenix 模型使用了 三張獨(dú)立的 Embedding Table

┌─────────────────────────────────────────────────────────────────┐
│                    Embedding Table 架構(gòu)                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────────┐                                        │
│  │   User Table        │  用戶 IDEmbedding                   │
│  │   [N_user, D]       │  例如: [10,000,000, 256]               │
│  └─────────────────────┘                                        │
│                                                                 │
│  ┌─────────────────────┐                                        │
│  │   Post Table        │  推文 IDEmbedding                   │
│  │   [N_post, D]       │  例如: [100,000,000, 256]              │
│  │                     │  (歷史推文和候選推文共用此表)            │
│  └─────────────────────┘                                        │
│                                                                 │
│  ┌─────────────────────┐                                        │
│  │   Author Table      │  作者 IDEmbedding                   │
│  │   [N_author, D]     │  例如: [50,000,000, 256]               │
│  │                     │  (歷史作者和候選作者共用此表)            │
│  └─────────────────────┘                                        │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

代碼依據(jù) (recsys_model.py):

class RecsysEmbeddings(NamedTuple):
    user_embeddings: ...              # 來自 User Table
    history_post_embeddings: ...      # 來自 Post Table
    candidate_post_embeddings: ...    # 來自 Post Table (同一張表)
    history_author_embeddings: ...    # 來自 Author Table
    candidate_author_embeddings: ...  # 來自 Author Table (同一張表)

注意 :用戶和作者雖然本質(zhì)上都是 UserID,但使用的是 不同的表 。User Table 代表"讀者的興趣畫像",Author Table 代表"作者的內(nèi)容風(fēng)格/人設(shè)"。

4.2 Hash Trick 完整流程

4.2.1 配置參數(shù)

@dataclass
class HashConfig:
    num_user_hashes: int = 2    # 用戶 ID 用 2 個(gè) Hash 函數(shù)
    num_item_hashes: int = 2    # 推文 ID 用 2 個(gè) Hash 函數(shù)
    num_author_hashes: int = 2  # 作者 ID 用 2 個(gè) Hash 函數(shù)

4.2.2 從原始 ID 到 Embedding 的完整流程

推文 ID 為例:

┌─────────────────────────────────────────────────────────────────┐
                 推文 ID  Embedding 完整流程                     
├─────────────────────────────────────────────────────────────────┤
                                                                 
  原始推文 ID: 1757483920193847296 (Snowflake 格式)               
                                                                
                                                                
  ┌─────────────────────────────────────────────────────────┐    
                 Hash 函數(shù) (2 個(gè)不同的 seed)                    
    hash1 = xxhash64(tweet_id, seed=1) % TABLE_SIZE            
    hash2 = xxhash64(tweet_id, seed=2) % TABLE_SIZE            
                                                               
    假設(shè) TABLE_SIZE = 10,000,000                               
    hash1 = 888                                                
    hash2 = 1024                                               
  └─────────────────────────────────────────────────────────┘    
                                                                
                                                                
  post_hashes = [888, 1024]   # 形狀: [2]                        │
                                                                
                                                                
  ┌─────────────────────────────────────────────────────────┐    
                 Embedding Table 查表                           
                                                               
    Post_Table[888]   V1 = [0.12, -0.34, ..., 0.56]  [256]    
    Post_Table[1024]  V2 = [0.78, 0.23, ..., -0.11]  [256]    
  └─────────────────────────────────────────────────────────┘    
                                                                
                                                                
  post_embeddings = [V1, V2]   # 形狀: [2, 256]                  │
                                                                 
└─────────────────────────────────────────────────────────────────┘

4.3 Reshape 操作:多向量合并

查表得到多個(gè)向量后,需要通過 Reshape (展平) 合并為單個(gè)向量:

# 查表后的原始形狀
history_post_embeddings.shape = [B, S, 2, 256]
#                                ^  ^  ^   ^
#                                |  |  |   └── Embedding 維度 D
#                                |  |  └── num_item_hashes = 2
#                                |  └── 歷史序列長(zhǎng)度 S (如 128)
#                                └── Batch 大小 B

# Reshape: 把最后兩維 [2, 256] 展平成 [512]
history_post_embeddings_reshaped = embeddings.reshape((B, S, 2 * 256))
# 結(jié)果形狀: [B, S, 512]

本質(zhì) :把兩個(gè) 256 維向量首尾相接成一個(gè) 512 維向量。

V1 = [0.12, -0.34, ..., 0.89]  # 256 維
V2 = [0.78, 0.23, ..., 0.45]   # 256 維

V_combined = [V1 | V2] = [0.12, -0.34, ..., 0.89, 0.78, 0.23, ..., 0.45]
# 512 維

所有實(shí)體的 Reshape

實(shí)體Reshape 前Reshape 后
用戶[B, 2, 256][B, 512]
歷史推文[B, S, 2, 256][B, S, 512]
歷史作者[B, S, 2, 256][B, S, 512]
候選推文[B, C, 2, 256][B, C, 512]
候選作者[B, C, 2, 256][B, C, 512]

4.4 單條推文的特征構(gòu)建

Reshape 后,還需將多個(gè)維度的特征 拼接并投影

┌─────────────────────────────────────────────────────────────────┐
│                      單條推文特征向量                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────┐   ┌─────────────┐   ┌─────────────┐   ┌──────┐ │
│  │  推文 ID    │   │  作者 ID    │   │   用戶行為   │   │ 場(chǎng)景 │ │
│  │ (Hash x2)  │   │ (Hash x2)  │   │ (Multi-Hot) │   │(枚舉)│ │
│  └──────┬──────┘   └──────┬──────┘   └──────┬──────┘   └──┬───┘ │
│         │                 │                 │              │     │
│         ▼                 ▼                 ▼              ▼     │
│      [512]             [512]             [256]          [256]   │
│         │                 │                 │              │     │
│         └────────┬────────┴────────┬────────┴──────┬───────┘     │
│                  │                                              │
│                  ▼ Concatenate                                  │
│              [1536]                                             │
│                  │                                              │
│                  ▼ Linear Projection                            │
│              [256]  ────? 進(jìn)入 Transformer                       │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

4.5 OOV (Out-of-Vocabulary) 問題的解決

4.5.1 Hash Trick 本身就是 OOV 解決方案

核心洞察 :使用 Hash Trick 后, 不存在真正的 OOV 。

def get_embedding(any_id: int, table_size: int) - > int:
    # 無(wú)論 ID 是什么,總能映射到表中的某一行
    return hash(any_id) % table_size

任何新 ID 都會(huì)被 Hash 函數(shù)映射到 [0, TABLE_SIZE) 范圍內(nèi),不會(huì)出現(xiàn)"找不到"的情況。

4.5.2 沖突帶來的"隱式 OOV"

雖然技術(shù)上沒有 OOV,但新 ID 會(huì) 繼承舊 ID 的 Embedding (Hash 沖突):

新推文 X (剛發(fā)布,從未訓(xùn)練過)
    
     Hash
槽位 888 (之前被老推文 A 訓(xùn)練過)
    
     查表
Embedding = 老推文 A 的語(yǔ)義向量 (可能完全不相關(guān))

4.5.3 X 的三層防御機(jī)制

層 1:Multi-Hash 組合唯一性

# 新推文 X
hash1(X) = 888   # 撞了老推文 A
hash2(X) = 5001  # 撞了老推文 B

# 組合 (888, 5001) 是全新的,提供了區(qū)分度

層 2:Author Embedding 兜底

# 新推文 X 的特征
post_embedding = 噪聲 (推文 ID 是新的)
author_embedding = 準(zhǔn)確 (作者是老用戶)

# Transformer 會(huì)自動(dòng) attend 到更可靠的信號(hào)

層 3:在線學(xué)習(xí)快速修正

t=0:    Embedding 是噪聲
t=5min: 收集到 1000 次反饋
t=10min: 梯度下降更新 Table[888] 和 Table[5001]
t=15min: Embedding 已包含推文 X 的真實(shí)語(yǔ)義

4.6 Hash 沖突的容忍性

關(guān)鍵洞察 :推薦是 概率排序任務(wù) ,不需要精確語(yǔ)義匹配。

對(duì)比LLM 詞向量推薦系統(tǒng) ID Embedding
映射方式一對(duì)一多對(duì)一 (Hash 沖突)
是否允許沖突? 不允許? 可容忍
任務(wù)類型精確生成概率排序
錯(cuò)誤代價(jià)句子完全錯(cuò)亂Top-3 變 Top-5,可接受

沖突為何不致命

  1. Multi-Hash 組合沖突率極低 ($10^{-12}$)
  2. 沖突是隨機(jī)噪聲,統(tǒng)計(jì)上被正確信號(hào)淹沒
  3. 有正則化效果,防止過擬合單條推文

4.7 開源代碼中的特征缺失

重要發(fā)現(xiàn) :X 開源的代碼中 沒有顯式的內(nèi)容特征 (文本 Embedding、圖片特征)。

模型主要依賴:

  • 協(xié)同過濾信號(hào) :用戶行為(點(diǎn)贊、轉(zhuǎn)發(fā)等)
  • 隱式語(yǔ)義學(xué)習(xí) :相似內(nèi)容被相似用戶喜歡 → Embedding 自動(dòng)靠近

冷啟動(dòng)兜底 :依賴 Author Embedding 。新推文雖然 ID 是噪聲,但作者是老用戶,可提供初始語(yǔ)義。

4.8 完整的 Embedding 流程圖

┌─────────────────────────────────────────────────────────────────────────────┐
│                    X Phoenix Embedding 完整架構(gòu)                              │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  原始輸入                                                                    │
│  ┌──────────┐ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐│
│  │ UserID   │ │ History TweetIDs │ │ History AuthorIDs│ │ Candidate IDs   ││
│  └────┬─────┘ └────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘│
│       │                │                    │                    │          │
│       ▼                ▼                    ▼                    ▼          │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                        Hash 函數(shù) (xxhash64, 2個(gè)seed)                    ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│       │                │                    │                    │          │
│       ▼                ▼                    ▼                    ▼          │
│  user_hashes      post_hashes          author_hashes        post_hashes    │
│   [B, 2]          [B, S, 2]             [B, S, 2]           [B, C, 2]      │
│       │                │                    │                    │          │
│       ▼                ▼                    ▼                    ▼          │
│  ┌────────────┐  ┌────────────┐      ┌────────────┐      ┌────────────┐    │
│  │ User Table │  │ Post Table │      │Author Table│      │ Post Table │    │
│  │ [N_u, 256] │  │ [N_p, 256] │      │ [N_a, 256] │      │ (同一張表)  │    │
│  └─────┬──────┘  └─────┬──────┘      └─────┬──────┘      └─────┬──────┘    │
│        │               │                   │                   │           │
│        ▼               ▼                   ▼                   ▼           │
│   [B, 2, 256]    [B, S, 2, 256]      [B, S, 2, 256]      [B, C, 2, 256]   │
│        │               │                   │                   │           │
│        ▼               ▼                   ▼                   ▼           │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                     Reshape → 展平最后兩維                              ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│        │               │                   │                   │           │
│        ▼               ▼                   ▼                   ▼           │
│    [B, 512]       [B, S, 512]         [B, S, 512]         [B, C, 512]     │
│        │               │                   │                   │           │
│        ▼               ▼                   ▼                   ▼           │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │         Concat (拼接多維度特征) + Linear Projection → [256]             ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│        │                                                                    │
│        ▼                                                                    │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                        Transformer                                      ││
│  │             [User | History_1 | ... | Candidate_1 | ...]                ││
│  │             形狀: [B, 1 + S + C, 256] = [B, 161, 256]                   ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

5. 關(guān)鍵設(shè)計(jì)決策

5.1 純模型驅(qū)動(dòng),無(wú)手工特征

X 的 README 明確聲明:

We have eliminated every single hand-engineered feature and most heuristics from the system.

  • 優(yōu)勢(shì) :簡(jiǎn)化數(shù)據(jù) Pipeline,減少特征工程負(fù)擔(dān)
  • 代價(jià) :完全依賴用戶行為,冷啟動(dòng)問題嚴(yán)重

5.2 技術(shù)棧分工

技術(shù)原因
Pipeline 編排Rust高并發(fā)、低延時(shí)、內(nèi)存安全
ML 模型JAX高性能自動(dòng)微分、TPU 原生支持
實(shí)時(shí)數(shù)據(jù)流Rust + Kafka處理百萬(wàn)級(jí) TPS

5.3 召回與精排的邊界

  • 召回 (Retrieval) :極致效率,用雙塔"粗篩"
  • 精排 (Ranking) :極致精度,用 Transformer"細(xì)選"
  • 關(guān)鍵約束 :精排只處理 ~32 個(gè)候選,嚴(yán)格控制計(jì)算量

6. 工程實(shí)踐要點(diǎn)

6.1 Embedding Table 管理

策略說明
表大小百萬(wàn)到億級(jí),平衡沖突率與內(nèi)存
熱門物品專屬行高頻訪問的推文/作者可分配獨(dú)立索引
在線學(xué)習(xí)新推文幾分鐘內(nèi)根據(jù)反饋修正 Embedding

6.2 分布式 ID 生成 (Snowflake)

64-bit ID 結(jié)構(gòu):
┌───────┬───────────────────┬────────────┬──────────────┐
│ 1 bit41 bits        │  10 bits   │   12 bits    │
│ sign  │ timestamp (ms)    │ machine ID │  sequence    │
└───────┴───────────────────┴────────────┴──────────────┘

特性: 全局唯一、時(shí)間有序、高性能、去中心

6.3 開源代碼的局限

以下模塊被排除,未開源:

pub mod clients; // 后端服務(wù)通信
pub mod params;  // 模型權(quán)重參數(shù)
pub mod util;    // 工具函數(shù) (含 Hash 實(shí)現(xiàn))

7. 總結(jié)與思考

7.1 架構(gòu)設(shè)計(jì)要點(diǎn)

  1. 分層漏斗 :召回→粗排→精排→混排,逐層收窄,逐層精細(xì)
  2. 效率與精度的權(quán)衡 :雙塔換速度,Transformer 換精度
  3. 協(xié)同過濾為主 :依賴用戶行為信號(hào),而非內(nèi)容理解
  4. 工程約束驅(qū)動(dòng)設(shè)計(jì) :候選數(shù)量、歷史長(zhǎng)度嚴(yán)格受限

7.2 開放問題

問題思考
內(nèi)容特征缺失生產(chǎn)系統(tǒng)是否有額外的 Content Embedding 通道?
冷啟動(dòng)新作者 + 新推文如何處理?是否有探索機(jī)制?
實(shí)時(shí)性在線學(xué)習(xí)的更新頻率?Embedding 漂移如何控制?

7.3 對(duì)實(shí)踐的啟示

  1. 不必追求完美匹配 :推薦是概率任務(wù),容錯(cuò)性高
  2. Hash Trick 是性價(jià)比之選 :用可控的精度損失換取巨大的空間節(jié)省
  3. 用戶行為是最強(qiáng)信號(hào) :協(xié)同過濾在工業(yè)界依然有效
  4. Transformer 適合精排 :在候選集收窄后才能發(fā)揮威力

附錄:核心代碼文件索引

文件路徑職責(zé)
精排模型phoenix/recsys_model.pyPhoenixModel 定義
召回模型phoenix/recsys_retrieval_model.py雙塔模型定義
Transformerphoenix/grok.py注意力機(jī)制與 Mask
Pipelinehome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs流水線編排
打分器home-mixer/scorers/weighted_scorer.rs多目標(biāo)加權(quán)

本文檔基于 xai-org/x-algorithm 開源代碼分析,結(jié)合推薦系統(tǒng)工程實(shí)踐整理。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4784

    瀏覽量

    98082
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    685

    瀏覽量

    31331
  • 系統(tǒng)架構(gòu)
    +關(guān)注

    關(guān)注

    1

    文章

    73

    瀏覽量

    24228
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    軟件架構(gòu)設(shè)計(jì)教程

    軟件架構(gòu)設(shè)計(jì)教程
    發(fā)表于 09-26 15:27

    汽車電子電氣架構(gòu)設(shè)計(jì)及優(yōu)化措施

    的工具用科學(xué)合理的工具來優(yōu)化汽車設(shè)計(jì),并有效達(dá)到開發(fā)出新型電子電氣架構(gòu)的目的。因此,汽車生產(chǎn)商需要在電子電氣架構(gòu)設(shè)計(jì)的基礎(chǔ)上進(jìn)行相應(yīng)的系統(tǒng)優(yōu)化工作,從而使得汽車的架構(gòu)設(shè)計(jì)更加先進(jìn)與成熟
    發(fā)表于 10-18 22:10

    影響RF系統(tǒng)架構(gòu)設(shè)計(jì)的參數(shù)特性探討

    簡(jiǎn)介今天可以使用的高集成度先進(jìn)射頻設(shè)計(jì)可讓工程師設(shè)計(jì)出性能水平超過以往的RF系統(tǒng),阻隔、靈敏度、頻率控制和基帶處理領(lǐng)域的最新進(jìn)展正在影響RF系統(tǒng)架構(gòu)設(shè)計(jì),本文旨在探討某些參數(shù)特性,以及它們對(duì)
    發(fā)表于 06-21 07:08

    功能安全---AUTOSAR架構(gòu)深度解析 精選資料分享

    AUTOSAR架構(gòu)深度解析本文轉(zhuǎn)載于:AUTOSAR架構(gòu)深度解析AUTOSAR的分層式設(shè)計(jì),用于
    發(fā)表于 07-23 08:34

    基于ARM架構(gòu)設(shè)計(jì)的M1芯片

    提升巨大,也讓配備 M1 芯片的 Mac 跨入完全不同的層次。由于M1芯片是基于ARM架構(gòu)設(shè)計(jì),所以無(wú)法安裝x86版本的Windows。著名的虛擬機(jī)軟件parallels desktop推出了基于m1
    發(fā)表于 07-23 09:02

    AUTOSAR架構(gòu)深度解析 精選資料推薦

    AUTOSAR架構(gòu)深度解析本文轉(zhuǎn)載于:AUTOSAR架構(gòu)深度解析目錄AUTOSAR
    發(fā)表于 07-28 07:40

    AUTOSAR架構(gòu)深度解析 精選資料分享

    AUTOSAR架構(gòu)深度解析本文轉(zhuǎn)載于:AUTOSAR架構(gòu)深度解析AUTOSAR的分層式設(shè)計(jì),用于
    發(fā)表于 07-28 07:02

    對(duì)嵌入式系統(tǒng)中的架構(gòu)設(shè)計(jì)的理解

    【閱讀這篇文章,你能了解到什么】1. 從事嵌入式開發(fā)12年的我,對(duì)架構(gòu)設(shè)計(jì)的理解;2. 對(duì)嵌入式系統(tǒng)中的架構(gòu)設(shè)計(jì)要刻意訓(xùn)練;3. 嵌入式系統(tǒng)開發(fā)過程中的一些小技巧;4. 一個(gè)用于智能家
    發(fā)表于 11-08 08:23

    系統(tǒng)架構(gòu)設(shè)計(jì)的詳細(xì)講解

    上一篇,我們討論了故障度量和安全機(jī)制的ASIL等級(jí)。本篇我們來聊一聊系統(tǒng)架構(gòu)設(shè)計(jì)相關(guān)內(nèi)容。01系統(tǒng)架構(gòu)設(shè)計(jì)和TSC當(dāng)我們開始寫TSC時(shí),會(huì)涉及到下圖中一系列的內(nèi)容:當(dāng)我們完成前三期(鏈
    的頭像 發(fā)表于 12-24 14:33 ?2741次閱讀

    SYS.3的系統(tǒng)架構(gòu)設(shè)計(jì)

    系統(tǒng)架構(gòu)設(shè)計(jì) 過程ID:SYS.3 過程名稱:系統(tǒng)架構(gòu)設(shè)計(jì) ? 過程目的:系統(tǒng)架構(gòu)設(shè)計(jì)過程目的,
    的頭像 發(fā)表于 02-13 16:02 ?3674次閱讀

    深度:嵌入式系統(tǒng)的軟件架構(gòu)設(shè)計(jì)!資料下載

    電子發(fā)燒友網(wǎng)為你提供深度:嵌入式系統(tǒng)的軟件架構(gòu)設(shè)計(jì)!資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-25 08:43 ?21次下載
    <b class='flag-5'>深度</b>:嵌入式<b class='flag-5'>系統(tǒng)</b>的軟件<b class='flag-5'>架構(gòu)設(shè)</b>計(jì)!資料下載

    面向運(yùn)載火箭能源子系統(tǒng)架構(gòu)設(shè)計(jì)方法

    面向運(yùn)載火箭能源子系統(tǒng)架構(gòu)設(shè)計(jì)方法
    發(fā)表于 06-30 16:57 ?5次下載

    架構(gòu)與微架構(gòu)設(shè)計(jì)

    下面將從芯片的架構(gòu)設(shè)計(jì)、微架構(gòu)設(shè)計(jì)、使用設(shè)計(jì)文檔、設(shè)計(jì)分區(qū)、時(shí)鐘域和時(shí)鐘組、架構(gòu)調(diào)整與性能改進(jìn)、處理器微架構(gòu)設(shè)計(jì)策略等角度進(jìn)行說明,并以視頻H.264編碼器設(shè)計(jì)為例。
    的頭像 發(fā)表于 05-08 10:42 ?2112次閱讀
    <b class='flag-5'>架構(gòu)</b>與微<b class='flag-5'>架構(gòu)設(shè)</b>計(jì)

    商城庫(kù)存系統(tǒng)中心架構(gòu)設(shè)計(jì)與實(shí)踐案例

    本文探討的vivo官方商城庫(kù)存架構(gòu)設(shè)計(jì),從整個(gè)vivo大電商庫(kù)存架構(gòu)來看,vivo官方商城庫(kù)存系統(tǒng)涉及銷售層內(nèi)部架構(gòu)以及銷售層與調(diào)度層的交互。
    發(fā)表于 08-30 10:59 ?2419次閱讀
    商城庫(kù)存<b class='flag-5'>系統(tǒng)</b>中心<b class='flag-5'>架構(gòu)設(shè)</b>計(jì)與實(shí)踐案例

    GPU架構(gòu)深度解析

    GPU架構(gòu)深度解析從圖形處理到通用計(jì)算的進(jìn)化之路圖形處理單元(GPU),作為現(xiàn)代計(jì)算機(jī)中不可或缺的一部分,已經(jīng)從最初的圖形渲染專用處理器,發(fā)展成為強(qiáng)大的并行計(jì)算引擎,廣泛應(yīng)用于人工智能、科學(xué)計(jì)算
    的頭像 發(fā)表于 05-30 10:36 ?1869次閱讀
    GPU<b class='flag-5'>架構(gòu)</b><b class='flag-5'>深度</b><b class='flag-5'>解析</b>