Labs 導讀
隨著互聯網的發展,企業可以獲得越來越多的數據,這些數據可以用于幫助企業更好的了解用戶,即客戶畫像,也可以用來改善用戶的體驗。但這些數據中可能存在大量沒有標記的數據。如果所有數據均采用人工標記的方式則存在兩方面的缺點,一是花費的時間成本較高,人工標記效率低,數據量越大需要雇傭的人越多,時間也會越長,成本越高,二是隨著用戶規模的增大,人工標記的速度很難趕上數據的增長。
Part 01、什么是半監督學習
半監督學習是指使用既有有標簽的數據又有無標簽的數據訓練模型。半監督學習通常會基于有標簽的數據構建屬性空間,再從無標簽的數據中提取有效信息填充(或重構)屬性空間。因此,通常半監督學習的初始訓練集會劃分為有標簽的數據集D1和無標簽數據集D2,然后通過預處理、特征提取等基本步驟后訓練半監督學習模型,然后將訓練好的模型用于生產環境,為用戶提供服務。
Part 02、半監督學習的假設
為了實現標簽數據有效補充有標簽數據中的“有用”信息,對數據分部等方面做出一些假設。半監督學習的基礎假設是p(x)中包含p(y|x)的信息,即無標簽的數據應該包含對于標簽預測有用的且與有標簽的數據不相同的或者很難從有標簽的數據中提取出來的信息。此外,還存在一些服務于算法的假設。例如,相似性假設(平滑假設)是指在數據樣本構建的屬性空間中,相近或相似的樣本具有相同的標簽;低密度分離假設是指在數據樣本少的地方存在一個決策邊界能區分不同標簽的數據。
以上假設主要目的是為了表明有標簽的數據與無標簽的數據來源于相同的數據分布。
Part 03、半監督學習算法分類
半監督學習算法眾多,可大致分為直推式學習(transductive learning)和 歸納式學習(Inductive model),二者區別在于用于模型評估的測試數據集的選擇。直推式的半監督學習是指需要預測標簽的數據集就是用于訓練的無標簽數據集,學習的目的是為了進一步提高預測結果的準確性。歸納式學習則是為完全未知的數據集預測標簽。
此外,常見的半監督學習算法的步驟為:第一步會在有標簽的數據上訓練模型,然后用這個模型給無標簽的數據打上偽標簽,然后將偽標簽和有標簽的數據組合成新的訓練集,在這個訓練集上訓練一個新的模型,最后用這個模型給預測數據集打上標簽。
Part 04、總結
半監督學習的最大的問題是在很多情況下,模型的性能依賴于有標簽的數據集,并且對于有標簽數據集的質量要求較高,甚至半監督學習模型預測準確度與基于有標簽數據集的有監督模型的結果相差不大,反而半監督模型為了有效提取無標簽數據中的有效信息,會消耗更多的資源。因此,半監督學習的發展方向是提高算法的魯棒性以及數據提取的有效性。
目前半監督學習領域中比較熱門的是PU-Learning(positive-unlabeled learning),這類算法的主要應用場景是只有正和無標簽數據的數據集。其優點是在一些場景下,我們容易獲得比較可靠的正標簽數據集,并且數據量相對較大。例如,垃圾郵件檢測中很容易獲得正常郵件。