層次softmax函數(hierarchical softmax)


一、h-softmax

在面對label眾多的分類問題時,fastText設計了一種hierarchical softmax函數。使其具有以下優勢

  • (1)適合大型數據+高效的訓練速度:能夠訓練模型“在使用標准多核CPU的情況下10分鍾內處理超過10億個詞匯”,特別是與深度模型對比,fastText能將訓練時間由數天縮短到幾秒鍾。
  • (2)支持多語言表達:利用其語言形態結構,fastText能夠被設計用來支持包括英語、德語、西班牙語、法語以及捷克語等多種語言。

可以認為,FastText= (word2vec中)CBOW + h-softmax;其結構為:輸入 - 隱層 - h-softmax

基本原理

  • 根據標簽(label)和頻率建立霍夫曼樹;(label出現的頻率越高,Huffman樹的路徑越短)
  • Huffman樹中每一葉子結點代表一個label;

 

二、理論分析

層次之間的映射

將輸入層中的詞和詞組構成特征向量,再將特征向量通過線性變換映射到隱藏層,隱藏層通過求解最大似然函數,然后根據每個類別的權重和模型參數構建Huffman樹,將Huffman樹作為輸出。 
這里寫圖片描述

模型的訓練

Huffman樹中每一葉子結點代表一個label,在每一個非葉子節點處都需要作一次二分類,走左邊的概率和走右邊的概率,這里用邏輯回歸的公式表示 

 

如何做到fast

 

參考:fastText原理及應用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM