各模型的優缺點:
one-hot 表示 :維度災難、語義鴻溝;靜態表證
矩陣分解(lsa):利用全域性語料特徵,但 svd 求解計算複雜度大;靜態表證
基於 nnlm/rnnlm 的詞向量:詞向量為副產物,存在效率不高等問題;靜態表證
word2vec、fasttext:優化效率高,但是基於區域性語料;靜態表證
glove:基於全域性預料,結合了 lsa 和 word2vec 的優點;靜態表證
elmo:雙向lstm;動態特徵
gpt:單向transformer;動態特徵
bert:雙向transformer;動態特徵
通過詞之間的相鄰關係構建網路,然後用pagerank
其中,pr(vi)表示結點vi的rank值,in(vi)表示結點vi的前驅結點集合,out(vj)表示結點vj的後繼結點集合,d為damping factor用於做平滑。
textrank將某乙個詞與其前面的n個詞、以及後面的n個詞均具有圖相鄰關係(類似於n-gram語法模型),從而構建了乙個無向圖,並將共現作為無向圖邊的權值。textrank的迭代計算公式如下:
該公式比pagerank多了乙個權重項wji,用來表示兩個節點之間的邊連線有不同的重要程度,即共現程度。
lsa(latent semantic analysis)潛在語義分析,也被稱為lsi(latent semantic index)。基本思想就是把高維的文件document降到低維空間,即潛在語義空間,從而可以從文字中發現隱含的語義維度-'topic'或者'concept'資訊。具體步驟如下:
1. 分析文件集合,建立term-document矩陣a
2. 對term-document矩陣a進行奇異值分解
3. 對svd分解後的矩陣進行降維
4. 使用降維後的矩陣構建潛在語義空間,或重建term-document矩陣
有2種模型:cbow是根據上下文**當前中間詞,skip-gram是根據當前中間詞**上下文。
word2vec通過將上下文關係轉化為多分類任務,進而訓練邏輯回歸模型,這裡的類別數量|v|詞庫大小。
實際應用中由於需要**詞典中所有詞,效率太低,為了使得模型便於訓練,提出了hierarchical softmax和negative sampling兩種改進方法。hierarchical softmax 實質上生成一顆帶權路徑最小的哈夫曼樹,讓高頻詞搜尋路勁變小;negative sampling 更為直接,實質上對每乙個樣本中每乙個詞都進行負例取樣;
優點:1. word2vec 是無監督學習,不需要人工標註
2. nnlm是根據前文生成下乙個單詞,而word2vec分為根據上下文**中間詞,或根據某乙個詞**上下文
fasttext模型架構和word2vec中的cbow很相似, 不同之處是fasttext**標籤(有監督學習)而cbow**的是中間詞,即模型架構類似但是模型的任務不同。
trick :1. 為保留一定的次序資訊,引入n-gram 2. 應用層次softmax
global vectors for word representation
1. 根據語料庫(corpus)構建乙個共現矩陣x
矩陣中的每乙個元素xij代表單詞i和上下文單詞j在特定大小的上下文視窗(context window)內共同出現的次數。一般而言,這個次數的最小單位是1,但是glove不這麼認為:它根據兩個單詞在上下文視窗的距離d,提出了乙個衰減函式(decreasing weighting):decay=1/d用於計算權重,也就是說距離越遠的兩個單詞所佔總計數(total count)的權重越小。
2. 構建詞向量(word vector)和共現矩陣(co-ocurrence matrix)之間的近似關係,**的作者提出以下的公式可以近似地表達兩者之間的關係:
這個loss function的基本形式就是最簡單的mean square loss,只不過在此基礎上加了乙個權重函式f(xij),共現次數越多的單詞i和j的f值越高。
優點or特點:
1. 相對lsa來說,lsa是使用co-occurance matrix的,但lsa是基於svd的,計算複雜度高。同時,lsa對所有單詞的統計權重都是一致的。
2. 相對word2vec來說,glove使用了全域性資訊(co-occurance matrix)
3. 無監督學習,雖然實際上可以認為glove 還是有 label 的,即共現次數
4. word2vec 損失函式實質上是帶權重的交叉熵,權重固定;glove 的損失函式是最小平方損失函式,權重可以做對映變換。
缺點:
主要思想:elmo第一使用了多層lstm,第二增加了後向語言模型(backward lm)。
gpt 使用單向 transformer 的 decoder 結構,並對 transformer decoder 進行了一些改動,原本的 decoder 包含了兩個 multi-head attention 結構,gpt 只保留了 mask multi-head attention,如下圖所示。
bert與gpt非常的相似,都是基於transformer的二階段訓練模型,都分為pre-training與fine-tuning兩個階段,都在pre-training階段無監督地訓練出乙個可通用的transformer模型,然後在fine-tuning階段對這個模型中的引數進行微調,使之能夠適應不同的下游任務。
雖然bert與gpt看上去非常的相似,但是它們的訓練目標和模型結構和使用上還是有著些許的不同:
2個任務: masked language model (mlm) 和 next sentence prediction (nsp)
QPainterPath表徵折線
繪圖中經常需要繪製多條線段形成的折線,然而要是想用qpainterpath的moveto和lineto來實現的話,很容易陷入乙個陷阱,繪製出來的結果可能如下 img 根本原因在於繪圖引擎認為連續的lineto是用來描繪多邊形的,而不是用來描繪折線的,那麼當path結束時,就會形成由拐點來描述的多邊形...
句子語義表徵 句子向量
大體上可以分為無監督方式和監督方式 無監督句子語義表徵方法 一種最經典的方法是在one hot詞語語義表徵的基礎上使用bag of words技術。缺點 一是它丟失了詞語在句子中的順序資訊 二是它忽略了詞語的語義資訊,每個詞的one hot表徵都是等距離的。2 類似的還有用word2vec來替換on...
夢的表徵 抽象的思維
夢的表徵 抽象的思維 夢的解析 讀後感 據我所知,人類最擅長的一件事就是抽象了。現在人工智慧領域所做的工作,最常見的就是利用各種數學的模型解決一些現實生活中的問題。比如,我做過分析的一些東西 資料探勘技術裡面的聚類和分類。初始接觸這些東西時的感覺就是玄之又玄,莫名其妙。當一步步接觸之後,給我更多的是...