搜尋意圖: 如果你在找「高基數特徵 是什麼」或「高基數特徵 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。
TL;DR: 高基數特徵(High Cardinality)指某個類別型特徵包含大量不同取值的情況,例如用戶 ID、商品 SKU、地理位置等可能有數萬至數百萬種取值,直接進行 One-Hot 編碼會導致維度爆炸,需
實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。
下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。
高基數特徵(High Cardinality)指某個類別型特徵包含大量不同取值的情況,例如用戶 ID、商品 SKU、地理位置等可能有數萬至數百萬種取值,直接進行 One-Hot 編碼會導致維度爆炸,需
核心概念
「基數(Cardinality)」在資料庫和統計學中指一個集合中不重複元素的數目。特徵的基數即該特徵列中唯一取值的數量:
- 低基數:性別(男/女)、月份(1–12)、評分等級(1–5)
- 中等基數:縣市(22 縣市)、職業類別(數十種)
- 高基數:用戶 ID(數百萬)、商品 SKU、URL、IP 地址、自然語言詞彙
沒有硬性門檻定義「多少算高」,通常超過數百種取值且佔特徵空間主要部分的類別特徵即可視為高基數。
運作原理
為何高基數是問題?
傳統的 One-Hot 編碼為每個類別建立一個二元維度。若特徵有 N 種取值,One-Hot 後的向量長度為 N。N = 1,000,000(百萬商品)時,One-Hot 向量將有一百萬個維度,且幾乎全為零(極度稀疏),導致:
- 記憶體用量暴增
- 訓練時間顯著拉長
- 許多取值出現次數極少(長尾分布),統計信號不足
- 線性模型難以從中學習有效的權重
主要處理策略
- 目標編碼(Target Encoding)
用該類別對應的目標變數(如轉換率)的統計量(均值、中位數)替換原始類別值。例如,將「城市」特徵替換為該城市用戶的平均購買金額。優點:捕捉類別與目標的直接關係;缺點:容易過擬合(需搭配 Leave-One-Out 或交叉驗證計算)。
- 嵌入向量(Embedding)
為每個類別學習一個低維稠密向量表示(如 32 維),類似 NLP 中的詞嵌入。深度學習模型(如神經網路推薦系統)普遍採用此方法,能捕捉類別之間的語意相似性。Embedding 本身作為模型參數,與下游任務聯合訓練。
- 頻率編碼(Frequency / Count Encoding)
用類別在訓練集中出現的次數或頻率替換原始值。低頻類別(長尾)對應較小的數值,有助於模型學習「罕見類別」和「常見類別」的差異。
- 特徵雜湊(Feature Hashing / Hashing Trick)
使用雜湊函數將所有類別值映射至固定長度的向量(如 2¹⁸ 維),避免維度隨基數線性成長。代價是可能發生雜湊碰撞(不同類別映射到同一維度),但在實際應用中影響通常較小。
- 低頻合併(Rare Category Grouping)
將出現次數低於閾值的類別統一歸為一個「其他(Other)」類別,減少有效基數。適合在目標編碼或 One-Hot 前進行前處理。
實際應用
廣告點擊率(CTR)預測
廣告場景中,廣告 ID、用戶 ID、應用 ID 均為高基數特徵,且資料量龐大。DeepFM、Wide & Deep 等模型透過 Embedding 將高基數特徵壓縮至低維空間,再進行特徵交叉學習。
電商推薦系統
商品 SKU(可達百萬級)和用戶 ID 是推薦系統中最典型的高基數特徵。協作過濾和深度推薦模型均依賴 Embedding 技術將 SKU 和用戶映射至相同的潛在空間,計算相似度進行推薦。
自然語言處理
詞彙表本身就是高基數類別特徵,詞嵌入(Word Embedding)即高基數特徵的嵌入處理方案,是 NLP 中最成功的特徵工程實踐之一。
常見誤區
誤區一:直接 One-Hot 就好,現代硬體撐得住
儘管 GPU 記憶體持續增大,在百萬級基數特徵上進行 One-Hot 仍然是低效的選擇:稀疏矩陣的 batch 訓練效率遠低於稠密 Embedding,且 One-Hot 無法捕捉類別間的語意關係,而 Embedding 能學習到「iPhone 15 和 iPhone 14 相似」這類語意資訊。
誤區二:目標編碼不會過擬合
若使用全部訓練資料計算每個類別的目標均值,模型在訓練集上看到的已是「含有標籤資訊的特徵」,會導致嚴重的資料洩漏(Data Leakage)。MUST 使用 Leave-One-Out 計算或在交叉驗證的每個 Fold 內分別計算,確保編碼過程不洩漏驗證集標籤。
誤區三:特徵雜湊碰撞嚴重影響效能
在實際大規模應用(如搜尋廣告系統)中,使用 2¹⁸ 至 2²² 的雜湊空間通常已能將碰撞率控制在可接受範圍內,且被碰撞合併的類別對最終效能影響有限。Google、Facebook 等公司的生產系統廣泛採用 Feature Hashing。
與相關技術的比較
| 處理方法 | 維度數 | 訓練成本 | 捕捉類別相似性 | 資料洩漏風險 | 適用場景 |
|---|---|---|---|---|---|
| One-Hot | 等於基數 N | 高(稀疏) | 否 | 無 | 低基數(< 50) |
| 目標編碼 | 1 | 低 | 間接(透過目標) | 高(需防範) | 監督任務、中高基數 |
| Embedding | 自訂(16–512) | 中 | 是(語意) | 無 | 深度學習、超高基數 |
| 頻率編碼 | 1 | 低 | 否 | 低 | 快速基線、高基數 |
| Feature Hashing | 固定(自訂) | 低 | 否(碰撞) | 無 | 大規模線上系統 |
常見問題
高基數特徵為什麼不能直接用 One-Hot 編碼?
One-Hot 編碼的維度等於類別數量。若某特徵有 100 萬種取值(如商品 SKU),One-Hot 後每個樣本的特徵向量長度變為 100 萬,且 99.9999% 的位置都是 0。這導致三個問題:記憶體爆炸(大型資料集無法載入)、計算低效(稀疏矩陣乘法相較稠密 Embedding 效率差)、統計信號不足(長尾類別出現次數極少,模型無法學習可靠的權重)。更深層的問題是 One-Hot 假設所有類別彼此完全無關,無法表達「MacBook Pro 和 MacBook Air 是同類產品」這類類別間的語意相似性,而 Embedding 能透過訓練自動學習這種關係。
如何判斷一個高基數特徵應該用目標編碼還是 Embedding?
判斷依據主要有兩點:模型類型和基數大小。若使用的是梯度提升樹(XGBoost、LightGBM)等非深度學習模型,通常選目標編碼或頻率編碼,因為這類模型不支援 Embedding 層。若使用神經網路類模型,Embedding 是常用選擇,因為它能與整個網路端到端聯合訓練,直接最佳化下游任務目標,並捕捉類別語意關係。基數超過數千時,Embedding 的維度壓縮優勢更加明顯;基數在數十至數百時,兩種方法效果差異較小,可以交叉驗證比較。目標編碼使用時務必防止資料洩漏。
iPAS 考題中高基數特徵常考哪些知識點?
iPAS 考題中高基數特徵通常以特徵工程和資料前處理的題目形式出現,核心考點有三:一是辨識問題(「以下哪個特徵屬於高基數」:用戶 ID、商品 SKU、IP 地址是正確選項;性別、月份是低基數);二是處理方法選擇(「對高基數特徵,One-Hot 的缺點是什麼,應使用哪些替代方案」:目標編碼、Embedding、Feature Hashing);三是目標編碼的資料洩漏問題(「直接對全訓練集計算目標均值作為編碼,有何風險」:資料洩漏,需在交叉驗證 Fold 內分別計算)。