NLP 字詞向量的平衡演算法(消除「偏見」)

2021-09-29 07:56:10 字數 1276 閱讀 1309

用於nlp領域的消除性別等偏見。問題表徵如下:

為了使得e_w1 and e_w2對bia_orth有同樣的距離

(擴充:nlp為了消除字詞的語義偏見,比如,

給定「工程師」首先想到man而不是woman,即「工程師」和「man」的「距離」更近,

給定「服裝設計師」首先想到woman而不是man,即「服裝設計師」和「woman」的「距離」更近,

所以做了這樣的工作:

(1):計算bia = "man" - "woman"。

(2):把產生偏見的詞,放在bia_orth方向上  -----》更新的向量=向量-向量在bia方向的投影

(3):使得woman和man與bia_orth的距離一樣

本片文章做得是第3步的介紹工作)

#mu在bias_axis方向的投影

mu_b = np.dot(mu,bias_axis) / np.sum(bias_axis*bias_axis) * bias_axis

#mu在bias_axis垂直方向的投影

mu_orth = mu - mu_b

e_w1b = np.dot(e_w1,bias_axis) / np.sum(bias_axis*bias_axis) * bias_axis

e_w2b = np.dot(e_w2, bias_axis) / np.sum(bias_axis * bias_axis) * bias_axis

corrected_e_w1b = np.sqrt(np.abs(1-np.sum(mu_orth))) *\

(e_w1b - mu_b) / np.square(np.linalg.norm(e_w1-mu_orth-mu_b))

corrected_e_w2b = np.sqrt(np.abs(1 - np.sum(mu_orth))) * \

(e_w2b - mu_b) / np.square(np.linalg.norm(e_w2 - mu_orth - mu_b))

e1 = corrected_e_w1b + mu_orth

e2 = corrected_e_w2b + mu_orth

return e1,e2

NLP中的樣本不平衡 長句問題

這次關係抽取任務,在資料方面,遇到了兩個問題。關係最多實體對有4w多個,最少的只有十幾條。句子長度從短句 個位數長度 到300不等。從驗證集分析後,模型對於訓練樣本中關係數目少以及長句均不是有很好地表現。從資料的角度進行提公升自然想到了資料增強。在機器學習中,對於結構化資料的樣本不平衡問題,常見的做...

NLP 秒懂詞向量Word2vec的本質

提綱挈領地講解 word2vec 的理論精髓 學會用gensim訓練詞向量,並尋找相似詞 你不會在本文看到 神經網路訓練過程的推導 hierarchical softmax negative sampling 等 trick 的理論和實現細節 在聊 word2vec 之前,先聊聊 nlp 自然語言處...

NLP系列文章(三) 文字向量的表示方法

雖然one hot和tf idf的表示方式也成為詞向量,但是我們這裡討論的基於詞向量的表示方式是圍繞分布式詞表徵進行的。也就是利用word2vec glove和fasttext等詞向量對文字進行表示,詞向量可以根據任務或者資源的不同隨意選擇,文字表示的方法是通用的。首先我們根據語料庫訓練詞向量,也就...