Upgrade to Pro — share decks privately, control downloads, hide ads and more …

双曲空間への単語埋め込みと QAサービスでの自然言語処理を 用いた推薦システムについて

双曲空間への単語埋め込みと QAサービスでの自然言語処理を 用いた推薦システムについて

【Sansan×エムスリー】自然言語処理勉強会(ライブ配信あり)で発表した内容です。

Ryusuke_Tanaka

April 24, 2019
Tweet

More Decks by Ryusuke_Tanaka

Other Decks in Technology

Transcript

  1. Copyright © 2015 M3, Inc. All Rights Reserved 双曲空間への単語埋め込みと QAサービスでの自然言語処理を

    用いた推薦システムについて エムスリー株式会社 田中 龍亮

  2. 双曲空間
 ざっくりいって
 ユークリッド空間とは距離の測り方が違う空間
 
 
 
 
 
 
 双曲平面もいろいろあるが、MLでは概ねPoincare

    BallやLorentz modelが採用される 
 ←Poincare Ball上の直線(測地線)を2次元平面に 
  起こしてきたもの。 
  結んだ時に直径になる2点では直線だが、 
  そうではない点では曲がって見える 

  3. 階層構造の学習
 一番最初にWordNetのPoincare Ballへの埋め込みを検討した論文[1]では
 明示的に階層構造を与えずに、階層構造を捉えられた
 
 
 (哺乳類の例だが、
 生物学的意味の階層でない) 
 


    外側ほど深い
 レイヤーの単語として
 配置される
 哺乳類
 げっ歯類
 リス
 肉食類
 トラ
 ジャガー
 シェパード
 ビーグル

  4. Poincaré GloVe: Hyperbolic Word Embeddings
 • Alexandru Tifrea, Gary Becigneul,

    Octavian-Eugen Ganea
 • 単語埋め込み手法の一つであるGloVeをPoincare Ball(双曲空間)への
 埋め込みに拡張した方法を提案
 
 • この発表の大きなContributionは次の2点
 ◦ ガウス分布型の単語埋め込みと双曲平面上の埋め込みについて
 測地線が一致することに気づいた(数式を示したのは別の論文)
 ◦ これによってガウス分布型の埋め込みを点で考えることができるようにな り、従来不明瞭だった単語アナロジーを可能にした。
 
 • 理論的なContributionが強い

  5. 単語のガウス分布型埋め込みと
 Poincare Ball埋め込みの対応
 単語のガウス分布型埋め込み:埋め込み表現に広がりを持たせ、包含関係のような階層 構造表現
 →領域で考えたためにw2vではできていたような
 アナロジーを考えるのが難しくなった
 
 
 先の検討から


    ガウス分布型の埋め込み表現をPoincare Ball上では点で考えることができる!
 →分布埋め込みでもアナロジーなどのタスクを従来と同様に考えることができる!
 実際にアナロジーを行うにはジャイロベクトルを用いる

  6. 実験
 English Wikipediaから1.4billion tokens取得 
 189,533のunique tokensの埋め込みを学習 
 
 Word

    Similarity : 類似度 
 Analogy : Google benchmark 
 Hypernymy Evaluation : 上位関係に当たる単語の推論 
 
 初期化
 先に上位50k個のワードの埋め込みから学習し、 
 そのあと190k個のワードの埋め込みを学習した(Init. trickと呼称) 
 

  7. 結果③:Hypernymy evaluation
 縦軸:分散、横軸平均
 
 
 
 
 
 
 上位語ほど分散が大きい:


    下位語を包含するように分布を学習できている
 →Poincare Ball上の学習と分布埋め込みの学習が結びついている

  8. QAサービス
 ・Stack Overflow, Quora, Yahoo!知恵袋...
 
 
 
 
 


    ・今回医療従事者向けのQAサービス検討

  9. Cold-Start problem
 サービス利用したばかりの人には質問や回答の情報がない
 →QAの情報は極力使用しない 
 →他サービスの利用情報を用いる 
 
 
 


    
 
 
 自然言語処理ベースでuserとQを同一空間に埋め込み→推薦 
 →医療情報なので医療ドメインに向いた埋め込みを考えてみる 
 ・診療科
 ・PV
 ・メルマガ開封
 ・....
 
 ・質問内容
 ・キーワード
 ・診療科...
 user1 user2 Q.1 Q.2 埋め込み空間

  10. 医療情報にも階層構造
 例えばICD-10分類(WHOが定めた疾患の分類の国際標準)
 
 
 
 
 
 他にも診療科と疾患の関係も浅い階層構造
 
 →階層構造を考慮できる埋め込みが情報としてよさそう!


    →双曲空間への埋め込みは効果あるのでは???
 消化器系の疾患
 口腔,唾液腺及び顎の疾患 
 食道,胃及び十二指腸の疾患 
 虫唾の疾患
 ヘルニア
 ...
 食道炎
 胃食道逆流症
 食道その他の疾患
 ….

  11. やってみたかった
 論文と同じデータセットで学習した結果(2D)
 
 
 
 
 
 
 
 頻度の小さいワードは外側にくる傾向はあるが、


    Nearest Neighborhoodでは近い単語を拾うことはできなかった
 数学的に煩雑だと、入出力の間違いを見つけづらく、デバッグが難しいという感想 
 ‘word’からの4-NN
 'cavalry': 1.000046 
 'becomes': 1.0000613, 
 'stephen': 1.0000713 
 'nodes': 1.0000918
 青: 頻度上位 200 tokens 
 橙: 頻度下位 200 tokens 
 
 赤: ‘word’ の埋め込み 
 緑: ‘word’ に近い10個