Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
双曲空間への単語埋め込みと QAサービスでの自然言語処理を 用いた推薦システムについて
Search
Ryusuke_Tanaka
April 24, 2019
Technology
0
580
双曲空間への単語埋め込みと QAサービスでの自然言語処理を 用いた推薦システムについて
【Sansan×エムスリー】自然言語処理勉強会(ライブ配信あり)で発表した内容です。
Ryusuke_Tanaka
April 24, 2019
Tweet
Share
More Decks by Ryusuke_Tanaka
See All by Ryusuke_Tanaka
医師向けQAサイトのための推薦システム開発
ryusuketa
1
1.7k
An Effective Approach to Unsupervised Machine Translationの紹介
ryusuketa
0
120
Universal Decompositional Semantics on Universal Dependencies
ryusuketa
0
85
Learning Dual Retrieval Module for Semi-supervised Relation Extractionの紹介
ryusuketa
0
80
動画視聴を整数倍(最大値)で_効率化するchrome extension作った
ryusuketa
0
80
Other Decks in Technology
See All in Technology
The Cake Is a Lie... And So Is Your Login’s Accessibility
leichteckig
0
110
AIツールでどこまでデザインを忠実に実装できるのか
oikon48
6
3.2k
ガバメントクラウド(AWS)へのデータ移行戦略の立て方【虎の巻】 / 20251011 Mitsutosi Matsuo
shift_evolve
PRO
2
190
社内報はAIにやらせよう / Let AI handle the company newsletter
saka2jp
8
1.3k
「AI駆動PO」を考えてみる - 作る速さから価値のスループットへ:検査・適応で未来を開発 / AI-driven product owner. scrummat2025
yosuke_nagai
3
810
防災デジタル分野での官民共創の取り組み (2)DIT/CCとD-CERTについて
ditccsugii
0
170
プロポーザルのコツ ~ Kaigi on Rails 2025 初参加で3名の登壇を実現 ~
naro143
1
210
Adminaで実現するISMS/SOC2運用の効率化 〜 アカウント管理編 〜
shonansurvivors
4
430
職種別ミートアップで社内から盛り上げる アウトプット文化の醸成と関係強化/ #DevRelKaigi
nishiuma
2
160
ユーザーの声とAI検証で進める、プロダクトディスカバリー
sansantech
PRO
1
120
Developer Advocate / Community Managerなるには?
tsho
0
120
関係性が駆動するアジャイル──GPTに人格を与えたら、対話を通してふりかえりを習慣化できた話
mhlyc
0
140
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Done Done
chrislema
185
16k
It's Worth the Effort
3n
187
28k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
19
1.2k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Side Projects
sachag
455
43k
Code Review Best Practice
trishagee
72
19k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Docker and Python
trallard
46
3.6k
Transcript
Copyright © 2015 M3, Inc. All Rights Reserved 双曲空間への単語埋め込みと QAサービスでの自然言語処理を
用いた推薦システムについて エムスリー株式会社 田中 龍亮
自己紹介 ・田中 龍亮(りゅうすけ) ・入社24日目 ・新卒2年目なので第二新卒的なsomething ・学生時代の研究: 音信号からの音源方向の推定(部分空間法ベース) ・twitter やりたい ・今回は論文:Poincaré GloVe:
Hyperbolic Word Embeddingsの 紹介と医療ドメインへの転用について
双曲空間 ざっくりいって ユークリッド空間とは距離の測り方が違う空間 双曲平面もいろいろあるが、MLでは概ねPoincare
BallやLorentz modelが採用される ←Poincare Ball上の直線(測地線)を2次元平面に 起こしてきたもの。 結んだ時に直径になる2点では直線だが、 そうではない点では曲がって見える
なぜ単語埋め込みにいいか ・単語の階層構造を考慮した埋め込みを実現したい →木構造やネットワークを埋め込む →これらは大きくなるほど埋め込み先に大きな空間が必要 ・2次元ユークリッド平面の場合、 半径rの円を考えた時に面積は半径に対してr^2 ・2次元Poincare Ballの場合、 半径r(r<1)に対して面積は1/{(1-r)^2}
半径を1とした時に同じ次元でも無限の面積を持つ空間を作ることが できるので広い空間を必要とする木構造埋め込みに適切
階層構造の学習 一番最初にWordNetのPoincare Ballへの埋め込みを検討した論文[1]では 明示的に階層構造を与えずに、階層構造を捉えられた (哺乳類の例だが、 生物学的意味の階層でない)
外側ほど深い レイヤーの単語として 配置される 哺乳類 げっ歯類 リス 肉食類 トラ ジャガー シェパード ビーグル
Poincaré GloVe: Hyperbolic Word Embeddings • Alexandru Tifrea, Gary Becigneul,
Octavian-Eugen Ganea • 単語埋め込み手法の一つであるGloVeをPoincare Ball(双曲空間)への 埋め込みに拡張した方法を提案 • この発表の大きなContributionは次の2点 ◦ ガウス分布型の単語埋め込みと双曲平面上の埋め込みについて 測地線が一致することに気づいた(数式を示したのは別の論文) ◦ これによってガウス分布型の埋め込みを点で考えることができるようにな り、従来不明瞭だった単語アナロジーを可能にした。 • 理論的なContributionが強い
Poincaré GloVe Glove:単語の共起頻度+行列分解ベースの埋め込み法 ユークリッド空間上のGloVeコスト関数 内積を変形すると距離の差に置き換え可→Poincare Ball上の距離にする Poincaré
ball上のGloVeコスト関数(ノルムはバイアスに吸収させる) nonlinearityの決定はヒューリスティック(実験ではcosh^2とx^2を比較)
Poincare Ball上の距離の取り方 Poincare Ball上の距離 複数のPoincare Ballの直積の距離(の二乗)
それぞれのPoincare Ball上の距離の和
Fisher距離とPoincare上半平面上の測地線 Diagonal Gaussian分布のFisher 距離(Fisher情報量をリーマン計量とした時に 定義される測地線、尤度間の距離)とPoincare上半平面上の距離は対応関係あり[4]
Poincare 上半平面と Poincare Ballの間の写像は定義可能 分布間の距離をPoincare Ball上で測ることが可能
単語のガウス分布型埋め込みと Poincare Ball埋め込みの対応 単語のガウス分布型埋め込み:埋め込み表現に広がりを持たせ、包含関係のような階層 構造表現 →領域で考えたためにw2vではできていたような アナロジーを考えるのが難しくなった 先の検討から
ガウス分布型の埋め込み表現をPoincare Ball上では点で考えることができる! →分布埋め込みでもアナロジーなどのタスクを従来と同様に考えることができる! 実際にアナロジーを行うにはジャイロベクトルを用いる
実験 English Wikipediaから1.4billion tokens取得 189,533のunique tokensの埋め込みを学習 Word
Similarity : 類似度 Analogy : Google benchmark Hypernymy Evaluation : 上位関係に当たる単語の推論 初期化 先に上位50k個のワードの埋め込みから学習し、 そのあと190k個のワードの埋め込みを学習した(Init. trickと呼称)
結果①、Similarity どのタスクでも精度改善
結果②、Analogy どのタスクでも精度改善
結果③:Hypernymy evaluation 縦軸:分散、横軸平均 上位語ほど分散が大きい:
下位語を包含するように分布を学習できている →Poincare Ball上の学習と分布埋め込みの学習が結びついている
結果③:Hypernymy evaluation スピアマン順位相関スコア(推定上下関係と実際の上下関係の相関)
outstandingではないが高いスコア
QAサービス ・Stack Overflow, Quora, Yahoo!知恵袋...
・今回医療従事者向けのQAサービス検討
QAサービスでのユーザの要望 1. 質問したらはやく答えてほしい 2. 類似した質問に対する回答を見つけたい 3. 回答の信頼性を測りたい(これはサービス提供側かも) など...
1. 2.は推薦システムと同じ考え方によって実現可能
質問の推薦システム ・ある質問をした時、 当然専門性の高い人に回答してほしい ・ex. 合併症を患った時の投薬の種類や量について (自専門ではカバーしきれない知識を要求される場合 ・質問内容に専門がマッチする人をみつけてその人に回答をお願いする! ・回答してくれそうな人への質問の推薦システム構築 ・→質問に該当する専門家で、よく回答する人を見つけれこればいい?
Cold-Start problem サービス利用したばかりの人には質問や回答の情報がない →QAの情報は極力使用しない →他サービスの利用情報を用いる
自然言語処理ベースでuserとQを同一空間に埋め込み→推薦 →医療情報なので医療ドメインに向いた埋め込みを考えてみる ・診療科 ・PV ・メルマガ開封 ・.... ・質問内容 ・キーワード ・診療科... user1 user2 Q.1 Q.2 埋め込み空間
医療情報にも階層構造 例えばICD-10分類(WHOが定めた疾患の分類の国際標準) 他にも診療科と疾患の関係も浅い階層構造 →階層構造を考慮できる埋め込みが情報としてよさそう!
→双曲空間への埋め込みは効果あるのでは??? 消化器系の疾患 口腔,唾液腺及び顎の疾患 食道,胃及び十二指腸の疾患 虫唾の疾患 ヘルニア ... 食道炎 胃食道逆流症 食道その他の疾患 ….
やってみた
やってみたかった Poincare Gloveを成功させたい人生だった
やってみたかった 論文と同じデータセットで学習した結果(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個
まとめ ・Poincare GloVeを紹介した ー理論的知見を得た ・医療ドメインのQAサービスへの応用を考えた ・再現できませんでした 論文が小保方ってなければ僕の実力不足・・・