有沒有更好的解決辦法?


前段時間做過文本分類的一個任務,看了幾篇論文說是用tfidf加權word2vec向量更能體現文本的關鍵特徵,實際做了一下效果確實還行,你可以試試看


不可靠,但是Bert類模型都是這麼乾的。


這種做法就是bag of words模型。對於短文本是OK的。也可以考慮增加詞權重,常用的無監督權重idf,有監督的權重chi2或者pmi。

是一個很好的baseline模型。


加權然後加在一起也算是一種方法。或者考慮另一個方向,用vector 時間的角度cosine值來表達關係。高維度vector之間可能內容和詞頻有很大區別,但是角度有關聯度。

如果你的數據集比較通用,可以考慮一些成熟的text embedding的方案比如bert,gpt什麼的做vectorization。


不可靠,word2vec本身就是無監督學習的,它訓練出來的向量的相似度可能代表語義上的相似或者詞語共現的頻率,其實兩者都是反映詞語共現上的關係,因為模型就是這樣訓練的,向量取平均信息是損失的。

要說到如何用向量表示一段文本的信息,即壓縮信息,難道不是跟你想要保存的信息有關嗎?這就需要用監督學習了,他能保存重要的目標信息,忽略掉無關的。有的做法是用Google開源的預訓練模型bert,在其輸出上添加分類網路。


當然不可靠啦。求平均等於忽視了一些特別「重要」的詞。所謂重要,就是對於分類有決定性意義的詞。所以至少也要加個attention,來自動分配加權的權重吧。或者用contextualized language model來直接獲取整句話的embedding。


我覺得這個問題問的有點不太對。

你不如問 用詞向量平均值表示整段文本可靠么?word2vec使用詞向量平均值是為了訓練快


詞向量平均值表示sentence embedding,是一種詞袋模型,簡單高效,缺點是忽略了語序和不同詞語的重要性,可以通過如tfidf加權,改進。作為一種無監督的baseline,對標題、短文本是可以的。

當然最終可靠不可靠還要看下游任務。根據下游任務其他RNN、Transformer類模型最後一層也可表示句子或篇章。


推薦閱讀:
相关文章