Press "Enter" to skip to content

认知的测量 | 向量距离vs语义投影

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

近期活动

 

词嵌入中蕴含着人类的认知信息,如类比、贫富、性别等。以往的词嵌入大多是比较一个概念中两组反义词与某对象的距离计算认知信息。

 

多个词语之间体现类比信息

 

 

 

词语体现贫富阶级、性别化信息

 

 

在昨天 使用cntext训练Glove词嵌入模型 的基础上,我们可以挖掘词向量模型中的认知信息。在文中,通过两个函数实现两个小案例

 

– 多个对象在某概念的远近 ,职业与性别,某个职业是否存在亲近男性,而排斥女性

 

– 多个对象在某 概念的分 量 (fen,一声)的多少 , 人类语言中留存着对不同动物体积的认知 记忆,如小鼠大象。动物词在词向量空间中是否能留存着这种大小的记忆

 

使用cntext.Text2Mind类中的两种方法可以挖掘出人类认知信息

 

.Text2Mind.sematic_distance(words, c_words1, c_words2)  向量距离

 

.Text2Mind.sematic_projection(words, c_words1, c_words2)  向量投影

 

tm.sematic_distance(words, c_words1, c_words2)

 

分别计算words与c_words1、c_words2语义距离,返回距离差值。

 

例如

 

male_concept = ['male', 'man', 'he', 'him']
female_concept = ['female', 'woman', 'she', 'her']
software_engineer_concept  = ['engineer',  'programming',  'software']
d1 = distance(male_concept,  software_engineer_concept)
d2 = distance(female_concept,  software_engineer_concept)

 

如果d1-d2<0,说明在语义空间中,software_engineer_concept更接近male_concept,更远离female_concept。

 

换言之,在该语料中,人们对软件工程师这一类工作,对女性存在刻板印象(偏见)。

 

下载glove_w2v.6B.100d.txt链接: https://pan.baidu.com/s/1MMfQ7M0YCzL9Klp4zrlHBw 提取码: 72l0

 

import cntext as ct
#Note: this is a word2vec format model
tm = ct.Text2Mind(w2v_model_path='glove_w2v.6B.100d.txt')
engineer = ['program', 'software', 'computer']
mans =  ["man", "he", "him"]
womans = ["woman", "she", "her"]
#在语义空间中,工程师更接近于男人,而不是女人。
#in semantic space, engineer is closer to man, other than woman.
tm.sematic_distance(words=animals, 
                    c_words1=mans, 
                    c_words2=womans)

 

Run

 

-0.38

 

-0.38 意味着工程师更接近于男人,而不是女人。

 

tm.sematic_projection(words, c_words1, c_words2)

 

语义投影, 根据两组反义词c_words1, c_words2构建一个概念(认知)向量, words中的每个词向量在概念向量中投影,即可得到认知信息。

 

分值越大,word越位于c_words2一侧。

 

下图是语义投影示例图,本文算法和图片均来自 “Grand, G., Blank, I.A., Pereira, F. and Fedorenko, E., 2022. Semantic projection recovers rich human knowledge of multiple object features from word embeddings. Nature Human Behaviour , pp.1-13.”

 

 

例如,人类的语言中,存在尺寸、性别、年龄、政治、速度、财富等不同的概念。每个概念可以由两组反义词确定概念的向量方向。

 

以尺寸为例,动物在人类认知中可能存在体积尺寸大小差异。

 

animals = ['mouse', 'cat', 'horse',  'pig', 'whale']
smalls = ["small", "little", "tiny"]
bigs = ["large", "big", "huge"]
# In size conception, mouse is smallest, horse is biggest.
# 在大小概念上,老鼠最小,马是最大的。
tm.sematic_projection(words=animals, 
                      c_words1=smalls, 
                      c_words2=bigs)

 

Run

 

[('mouse', -1.68),
 ('cat', -0.92),
 ('pig', -0.46),
 ('whale', -0.24),
 ('horse', 0.4)]

 

在这几个动物尺寸的感知上,人类觉得老鼠体型是最小,马的体型是最大。

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。