人の名前で国籍や民族を分析したの論文を読む

ランニングできず   英語できず

(1)  人の名前で国籍や民族を分析したの論文を読む

 「Nationality Classification Using Name Embeddings」

https://arxiv.org/abs/1708.07903v1

 5700万のe-mailとtwitter分析して名前で国籍や民族が判明するか分析した論文です。

 技術的には本論文の手法が精度を(0.58→0.80)を達成した意外に新しいものは無いですが、内容が敏感な問題を扱っているので話題に上っていると考えます。

 手法(NamePrism)としては大量のemailにある姓名をfirstname secondname別にCBOW(Continuous Bag-of-word)やSG(Skip-Gram)でベクトル化しています。これらはWord2vecと同じ考えで文書内の同時に現れる頻度を基にベクトル化表現しています。

 何故ベクトルで言葉の近さを現せるか少し考えてみます。

 文書内での言葉の近さはPMI情報量(Point Wize Mutual Infomation)で定義でることは異存が無いと思います。

 PMI(v,w) =\log  \frac{p(v,w)}{p(v) ・ p(w)}

 ここで

       p(v,w)は言葉vwが共に出現する確率  

       p(v)p(w)は各々の出現する確率

 即ち、余り単独では出現しない言葉なんだが、ペアで出現する場合が多い場合PMI確率が1に近くなります。p(v,w)=p(v) \cdot p(w)が独立ならPMI確率は0となります。

 急に相当難しい話になりますが、PMI情報量が最適なベクトルの内積で表現できる事を示した資料が知られています。

 PMI(v,w)  = \log \frac{p(v,w)}{p(v) p(w)} = \frac{\vec{v}^T \vec{w}}{d} + \mathcal(O)(\epsilon)

  http://chasen.org/~daiti-m/paper/SNLP8-latent.pdf

   Word2vecの作者Micolovは当然上記の数学的なことは知らず試行錯誤でこの方法を編み出したと考えられています。深層学習もこの様な数学的証明を天才がやってくれるのでないでしょうか?

 前置きが長くなりましたが、大量の文書データより5000の名前を100次元のベクトル化してこれを2次元で表示したものが下図となります。

この人種色分けは米国のセンサスデータで色分けしています。中央の灰色は不明を表します。emailの文書なので以下のことが分ります。

 ・各人種間の交流は少ない

 ・白人以外の名前は人種によって固有なものが多い

 ・黒人のエリアが狭いのは黒人固有の名前が少ない 黒人固有の名前を嫌って白人の名前を使っている

 ・中央下部の名前は人種が不明で、ここで混合が発生している

これから考えると米国は分断された社会だが混合も始まっている考えられます。

f:id:mabonki0725:20170905095416p:plain

Twitterの情報を追加すると下記の事が分って興味深いです。

これは人種別の選好を表します。ここでAPIは(Asian Pasific Island)の略ですが殆どインド人を示していると思われます。

・Newsを見るとAPIはBussinessに熱心であることがわかります

・Singerを見るとBlackとAPIは反対です

・政治家を見ると少数民族はトランプを嫌っていることが分ります

f:id:mabonki0725:20170905101630p:plain

名前のベクトル化だけでも、大量の文書を分析すると興味深いことが分かる一方で厳しい現実を見せてくれます。