理解词嵌入除偏
1. 引入
机器学习已经被用到各行各业做辅助决策了,甚至是制定极其重要的决策。所以,我们应该尽可能的确保它不受非预期形式偏见的影响,比如性别歧视、种族歧视等等。
下面介绍一种减少或消除这些偏见的影响,以消除“性别偏见”为例来说明算法的具体过程。
2. NLP中性别偏见的例子
在NLP中,由于语料的原始作者写作时,可能会自带自己的偏见,所以训练模型得到的词嵌入也会学到这种偏见。比如下图中的一些NLP任务,通过词嵌入,得到的结果(红框中)是具有明显的偏见的。
训练集中的原始语料,是词嵌入带有性别歧视、种族歧视的来源。为了让NLP模型能做到真正的客观、公正,需要消除这些偏见。
这就是词嵌入除偏
(debiasing word embeddings)要解决的问题。
3. 消除性别偏见的方法
以参考1中的方法为例,说明词嵌入除偏
的步骤,见下图:
-
上图A中,说明的是,把各个词的词嵌入(词向量)描绘到一个空间中的分布情况,这里以2维空间为例
-
词嵌入除偏
的第一步,是确定偏执
bias的方向,如上图B中所示。
(1)红色的方向,就是bias的方向,这个方向的计算如图中红色部分文字所示,只需要把具有男性性别含义的词向量与女性相减,取平均,得到的新向量就能表示bias的方向(红色方向)
(2)确定bias的方向后,就可以取与bias正交的方向,作为non-bias的方向(紫色所示)
- 接下来需要做
词性中和
(Neutralize
),是对于那些定义不明确,可能具有偏见的词来进行的,比如doctor.
把这些词的词向量,投影到non-bias方向上,用投影后的新向量来表示原始词,就能去除偏见。如上图C中所示,用绿色的新向量来表示原始词。
有些词本身就具有性别含义,就不用做这个步骤了,比如 he,she。所以上图C只是一个示例,这些性别色彩含义的词其实是不需要做词性中和
的。
- 最后一步,叫做
equalize pairs
(均衡)
对于有一些词对,比如(girl, boy),你只希望性别是他们的区别。
也就是说,我们期望,girl的词向量到non-bias方向的距离(L1),与boy的词向量到non-bias方向的距离(L2)相等。
如上图D中绿色所示,当前L1是不等于L2的,所以会用到一些线性代数的方法,将girl的词向量和boy的词向量移动,让L1=L2。如上图D中红色点所示,用移动后的词向量,表示原始词。
需要用这个步骤来做均衡化的词对,其实是很少很少的。
4. 如何确定某个词是否为中立词
这里有一个技术细节,就要需要确定某个词是否为中立词
。中立词,比如doctor,他不能具有性别偏见(你不能说只有男性能做doctor),也不能含有种族偏见(你也不能说只有白人才能做doctor)。
与此相反,grandmother,就不是中立词,因为只有女性才能是grandmother,这是性别确定
的词。还有beard(胡子),统计上认为男性具有beard的概率更高,所以它可以是性别确定的词。
所以,论文1中作者解决这个问题的思路,是训练一个分类器,来区分哪些词是有明确定义的(性别确定的)
,哪些词不是。
结果表明,英文中,大部分词是中立词
。
这些中立词,就必须通过词性中和
这个步骤来除偏。
5. 总结
减少或者消除机器学习中的偏见问题,是个非常重要的问题。因为这些机器学习算法会用来辅助制定更多的政策。这也是一个很多学者都在研究的新领域。
参考
-
- Bolukbasi T, Chang K W, Zou J, et al. Man is to Computer Programmer as Woman is to Homemaker? Debiasing Word Embeddings[J]. 2016.
-
- AndrewNg的《序列模型》课程,https://mooc.study.163.com/smartSpec/detail/1001319001.htm