美文网首页
[非監督]Word Embedding

[非監督]Word Embedding

作者: RJ阿杰 | 来源:发表于2019-01-18 14:31 被阅读0次

簡介

假設我們有5個類別,我們做one-hot-encoder變成5維的數據,我們可以用Word Embedding將資料分類,變成低於5維的數據。
機器在沒有監督的情況下閱讀大量文件來學習單詞的意義,一個詞可以通過其語境來理解。

  • 能用auto-encoder嗎?
    不容易,因為auto-encoder輸入的資料是word,且每個word是one-hot-encoding本身資料就都是independent,如果我們輸入是一整篇文章,將文章都轉成bag of word,然後文章有這個詞就為1作為輸入,auto-encoder我們可以找到文章的關聯性,但不能單獨分析出詞義。

Word Embedding兩種做法

  • Count based
    類似ALS的做法,Glove Vector,基於頻率去計算詞彙的相似度。

  • Prediction-based
    基於預測,有上下文關聯。
    我們先將詞彙都轉成one-hot-encoding,輸入一個詞彙進行預測下一個(上一個)可能出現詞彙的機率,輸入不同詞彙進行預測,他們的中間層z就可以作為詞彙的Vector。


    我們可以拓展成輸入前10個詞彙,預測下一個詞彙,前10個詞彙的one-hot-encoding串接再一起。

    但我們希望10個詞彙他們的weight是一樣的,這樣前10個詞彙串接順序就不影響預測結果,同時也降低了參數量,如果我們one-hot-encoding有10萬個詞彙,那麼串接10個詞彙參數的數量很驚人,這樣做不一定會影響詞義的判斷,雖然我們排除了順序,但在文章上我們只選定輸入前10個詞彙,不同詞在出現頻率上還是會有不同的。

變形

用前一個與後一個詞彙測中間那個詞彙,或中間預測前後詞彙。


CBOW、Skip-gram

進行類推

Word Embedding與PCA一樣都有類似的現象,因此我們可以輸入中國、日本、東京來類推中國首都。



實作

  • word2vec實作細節
    因為word2vec的輸入特徵為one hot encoder形式,是稀疏矩陣,若使用GPU進行矩陣實作運算會有維度爆炸(運算量過大)、顯存不足的問題,所以我們會使用查找的方式進行運算。
    如下圖batch=1、feature_num=5(15),要乘上hidden(53)降維到feature_num=3,若feature_num超過10000運算量非常龐大,但仔細看圖會發現其實只要輸入為只有0、1的矩陣,那麼矩陣做dot(內積)只是一個查找的動作,如下圖只是從input第四個column索引到hidden第四個row。
#範例
search_list = np.flatnonzero(input)
output = []
for index in search_list :
  output.append(hidden[:,index ])
output = np.array(output)
  • gensim:word2vec
    Github-gist代碼
    使用wiki百科xml頁面備份(使用gensim的WikiCorpus工具),去除xml標籤等等,整理出文章內容,安裝openccpip install opencc-python-reimplemented進行簡繁轉換,使用jieba進行中文分詞,jieba使用中文停用詞1893個,完成前處理。
    使用word2vecSG=0(CBOW模式,1=skip-gram)、window=10(取前後10個詞)、size=280(最後降維到280維)、min_count=5(彙整單詞做one-hot-encoding時,小於5次的單詞不列入),儲存訓練好的model,以及詞典與它的詞向量。
    最後讀取model使用model.wv來取得詞向量。


參考李宏毅老師ML課程
推薦閱讀

相关文章

  • [非監督]Word Embedding

    簡介 假設我們有5個類別,我們做one-hot-encoder變成5維的數據,我們可以用Word Embeddin...

  • [監督式、非監督]KNN、K-mean

    KNN(K Nearest Neighbor) k鄰近算法可以算是一種監督式學習算法,從部分已知的資料來推測未知的...

  • 朋友,說好的日更呢

    那天朋友說,決定日更請監督。而我回覆說,寫就對了,無需監督。因為我也知道,鞭長莫及。監督有用嗎?並沒有。 這是第二...

  • [非監督]PCA(降維)

    Dimension Reduction(降維) 有些時候高維的空間的資料可以以低維空間來表示。 PCA主成分分析(...

  • 2019-04-24

    Embedding和One_hot将词变成向量的例子: 词嵌入(Word Embedding) Word embe...

  • [非監督]t-SNE降維

    Manifold learning Manifold的概念是低維空間的數據被塞在高維空間中,我們的目的就是將X(高...

  • 自然语言处理(NLP)知识整理及概述(三)

    Vector representation and models for word embedding Vecto...

  • Word Embedding

    转载:https://zhuanlan.zhihu.com/p/27830489 作者:YJango目录单词表达O...

  • Word embedding

    1.https://blog.csdn.net/weixin_43112462/article/details/8...

  • Distributional Similarity

    Distributional Similarity 是所有 word embedding 的基础,,

网友评论

      本文标题:[非監督]Word Embedding

      本文链接:https://www.haomeiwen.com/subject/jyuuhqtx.html