本文繼續介紹一種基於有監督學習的詞權重計算方法。有監督學習相比於無監督學習的效果一般會更好,但也存在需要大量標註樣本、模型難以更新,結果難以debug的等問題。有監督學習一般有樣本構造、特徵表示、模型訓練、模型評估四部分。
1)樣本構造
樣本構造之前需要定義任務的形式。如果把詞權重看成分類任務,則可以按二分類(term重要為1,不重要0)或者多分類(term的重要等級)進行標註;如果是排序任務,則可以按pair-wise去標註樣本,即標註兩個term間那個term更重要;如果是迴歸任務,則需要標註每個term的權重。但是人工標註需要大量的時間,並且可能存在模稜兩可的情況,因此可以採用自動的方法去構建樣本。這裡介紹一種基於百度元搜的迴歸方法,去擬合query中的詞在搜索結果裡的term recall weight,
#doc(query)指搜索結果中doc數目,#doc(query,term)是搜索結果中包含term的doc數目。
2)特徵表示
特徵表示現在比較流行的是embedding表示,在該任務中,可以分為把query和term表示低維embedding向量,然後用query embedding和term embedding的距離表示成向量,如下圖,term和query距離比較近,則表示該term比較重要,相反比較遠,則沒有那麼重要。
fea(term,query) = embedding(term) - embedding(query)
3)模型訓練
因為是迴歸任務,這裡可以採用linear regression或者GBRT,不過不同的模型對效果的影響並不大,因為任務的瓶頸還是在於樣本構造和特徵表示。
4)模型評估
模型評估一般分為直接評估和間接評估。直接評估採用模型本身的準確率或者人工評測,間接評估通常把詞權重作為一種中間結果用於某個任務裡面,通過任務的評價指標來反應詞權重的質量。
原文轉自:https://mp.weixin.qq.com/s?__biz=MzU2OTQyOTMxOQ==&mid=2247483914&idx=1&sn=6d9a63f367d023a8729f8eb3e350bc14&chksm=fcff9e22cb881734b807858e8165103df4712fd8bf0e1421fb63120839a041061662a7d4f9b9&scene=21#wechat_redirect