Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
単語分散表現 chiVeの活用方法 at WAP NLP Tech Talk #5
WAP
April 28, 2022
Technology
0
250
単語分散表現 chiVeの活用方法 at WAP NLP Tech Talk #5
WAP
April 28, 2022
Tweet
Share
More Decks by WAP
See All by WAP
単語分散表現と事前学習モデル - chiVe _ chiTra 利活用のための下準備 at WAP NLP Tech Talk #5
waptech
0
820
事前学習モデル chiTra の活用方法 at WAP NLP Tech Talk #5
waptech
0
130
Sudachi Family近況報告 at WAP NLP Tech Talk #5
waptech
0
71
Sudachi近況報告 at WAP NLP Tech Talk #4
waptech
1
220
日本語形態素解析器 SudachiPy の 現状と今後について
waptech
4
4.6k
企業(ワークスアプリケーションズ)での研究開発の楽しさと苦労
waptech
0
200
Sudachi辞書のつくり方
waptech
4
1.3k
chiVe_実用的な日本語単語ベクトル実現にむけて_20201208.pdf
waptech
2
370
Other Decks in Technology
See All in Technology
組織に対してSREを適用するとどうなるか
kuniim
9
2.9k
OVN-Kubernetes-Introduction-ja-2023-01-27.pdf
orimanabu
1
400
KyvernoとRed Hat ACMを用いたマルチクラスターの一元的なポリシー制御
ry
0
190
OpenShift.Run2023_create-aro-with-terraform
ishiitaiki20fixer
1
310
AWS re:Invent 2022で発表された新機能を試してみた ~Cloud OperationとSecurity~ / New Cloud Operation and Security Features Announced at AWS reInvent 2022
yuj1osm
1
220
目指せCoverage100%! AutoScale環境におけるSavings Plans購入戦略 / JAWS-UG_SRE_Coverage
taishin
0
510
ラズパイとGASで加湿器の消し忘れをLINEでリマインド&操作
minako__ph
0
150
「一通りできるようになった」その先の話
hitomi___kt
0
130
Google Cloud Workflows: API automation, patterns and best practices
glaforge
0
100
WebLogic Server for OCI 概要
oracle4engineer
PRO
3
880
経営統合をきっかけに会社をエンジニアリングした話 / btconjp-2023
carta_engineering
0
150
CSS Variable をもっと活用する / Kyoto.js 18
spring_raining
2
940
Featured
See All Featured
How to name files
jennybc
47
73k
Optimizing for Happiness
mojombo
365
64k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1.1M
Building Adaptive Systems
keathley
27
1.3k
The Brand Is Dead. Long Live the Brand.
mthomps
48
2.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
226
130k
StorybookのUI Testing Handbookを読んだ
zakiyama
8
3.2k
A better future with KSS
kneath
230
16k
Designing with Data
zakiwarfel
91
4.2k
The World Runs on Bad Software
bkeepers
PRO
59
5.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
10
1.3k
Web Components: a chance to create the future
zenorocha
304
40k
Transcript
© 2022 Works Applications Systems Co., Ltd. 単語分散表現 chiVe の活用方法
ワークス徳島人工知能NLP研究所 Nishihara Daiki 2022年4月27日 全34ページ
© 2022 Works Applications Systems Co., Ltd. はじめに 2 西原大貴(にしはらだいき)
• 2020-21@阪大(修士) NLPの研究 • 2021-22@ワークス徳島 chatbot 開発など 本日は、chiVe の使い方について、説明します。 chiVe の研究的な側面は、Tech Talk #1 参照 https://worksapplications.connpass.com/event/196402/ Sudachi Vector
© 2022 Works Applications Systems Co., Ltd. 1. 分散表現とは?chiVe とは?
© 2022 Works Applications Systems Co., Ltd. 1. 分散表現とは?chiVe とは?
単語分散表現とは(おさらい) 4 単語を数値列(ベクトル)に変換したもの 学習コーパスを使い、周辺の単語から推定して作る。 スダチ → [0.3, 0.1, …, 0.9] カボス → [0.2, 0.1, …, 0.8] 徳島県は ??? の生産量が全国一です。 焼き魚に ??? を書けて食べると最高です。 甘酸っぱい香りが ??? の木からしている。 ??? = [0.3, 0.1, …, 0.9]
© 2022 Works Applications Systems Co., Ltd. 1. 分散表現とは?chiVe とは?
日本語の分散表現リソースの例 5 学習コーパスに偏りが無くかつ商用利用可能な分散表現は、少ない 学習コーパス 形態素解析 商用利用 chiVe NWJC Sudachi+SudachiDict ◦ Apache 2.0 nwjc2vec NWJC MeCab+Unidic ✕ 研究目的に限る hottoSNS-w2v SNS, Wikipedia, Web MeCab+NEologd ✕ 研究目的に限る 朝日新聞単語ベクトル 朝日新聞 MeCab+ipadic ✕ 研究目的に限る HR領域向け単語ベクトル 求人データ MeCab+NEologd ◦ Public Domain Wikipedia2Vec Wikipedia MeCab ◦ Apache 2.0 fastText (多言語) Wikipedia, CC 文字n-gram ◦ MIT
© 2022 Works Applications Systems Co., Ltd. 1. 分散表現とは?chiVe とは?
chiVe の特長:実用で使えるものを目指す 6 GitHub で公開 商用利用可能ライセンス(Apache 2.0) https://github.com/WorksApplications/chiVe 日本語形態素解析器 Sudachi 日本語大規模コーパス NWJC 版 語彙数 v1.2 mc5 3,197,456 v1.2 mc15 1,454,280 v1.2 mc30 912,550 v1.2 mc90 482,223 chiVeは、 • 語彙数 48万~300万 • 大規模な学習データにより高品質 chiVeは、 • 複数粒度(A, B, C単位)に対応 • 表記正規化による表記ゆれの吸収
© 2022 Works Applications Systems Co., Ltd. 1. 分散表現とは?chiVe とは?
chiVeは、どのサイズを使えばいいの? 7 結論: ①語彙数 と ②計算リソース を見て決めればよい ①語彙数によって扱える単語が違う ②大きいモデルは重い 語彙数 gensim版 Magnitude版 v1.2 mc5 3,197,456 3.8 GB 5.5 GB v1.2 mc15 1,454,280 1.7 GB 2.4 GB v1.2 mc30 912,550 1.1 GB 1.5 GB v1.2 mc90 482,223 0.6 GB 0.8 GB v1.2 mc5 (319万語) 雇用の分野における男女の均等な機会及び待遇の確 保等に関する法律 v1.2 mc15 (145万語) v1.2 mc30 (91万語) v1.2 mc90 (48万語) 水先法 労働者派遣事業の適正な運営の確保及び派遣労働者 の保護等に関する法律 男女雇用機会均等法, 労働者派遣法 ロード時間※ [秒] ※google colab で gensim版を読み込む時間
© 2022 Works Applications Systems Co., Ltd. 1. 分散表現とは?chiVe とは?
補足:mc (Min Count) とは? 8 「学習コーパス中の最低出現頻度」のこと • 例えば「mc5」とは、「5回以上出現した単語だけ収録している」ということ • mcが小さいほど、語彙数が大きい 注意点 出現頻度が低い語は、原理上、良質なベクトルを作りにくい • 学習サンプルが少ないので、ヒントとなる周辺単語が少ない • 専門用語を扱いたい場合は、追加学習(ドメイン適応)すると良い → 後で説明します
© 2022 Works Applications Systems Co., Ltd. 2. chiVeでできること
© 2022 Works Applications Systems Co., Ltd. 2. chiVe でできること
①単語の足し引き 10 問1 「父」ー「男性」+「女性」=? 問2 「横浜市」ー「神奈川県」+「北海道」=? 問3 「トランプ」ー「洋風」+「和風」=?
© 2022 Works Applications Systems Co., Ltd. 2. chiVe でできること
①単語の足し引き 11 問1 「父」ー「男性」+「女性」=? chiVeの答え「母」 朝日新聞ベクトルの答え「母」 問2 「横浜市」ー「神奈川県」+「北海道」=? chiVeの答え「札幌市」 朝日新聞ベクトルの答え「札幌」 問3 「トランプ」ー「洋風」+「和風」=? chiVeの答え「花札」 朝日新聞ベクトルの答え「オバマ」 ※長単位が無いので「札幌市」が存在しない ※新聞での「トランプ」は、大統領名の意味が強い? ※学習データの選択は重要
© 2022 Works Applications Systems Co., Ltd. 2. chiVe でできること
②単語の近さを調べる(1/2) 12 2単語間の”キョリ”が、意味の近さを表せそう • 「猫」と「犬」が近い • 「カボス」「スダチ」「柚子」が近い キョリ(猫, 犬) = 0.26 キョリ(猫, 柚子) = 0.73 キョリ(スダチ, 柚子) = 0.32 0.26 0.32 0.73 ※ここでの”キョリ”は、cosine distance を使っています 単語ベクトル空間
© 2022 Works Applications Systems Co., Ltd. 2. chiVe でできること
②単語の近さを調べる(2/2) 13 ”キョリ”が近い単語を探してみる 単語ベクトル空間 ※ここでの”キョリ”は、cosine distance を使っています 1番近い 5番目 に近い 1 カボス(臭橙) 2 レモン 3 青紫蘇 4 シークワーサー 5 柚子 chiVeで「スダチ(酢橘)」に近い単語トップ10 6 ポン酢 7 柑橘 8 大根下ろし 9 蜜柑 10 日向夏
© 2022 Works Applications Systems Co., Ltd. 2. chiVe でできること
③単語を分類(1/2) 14 キョリが近いものをグループ化すれば、 単語のカテゴリ分け(分類)ができる 単語ベクトル空間 Group2 Group1 Group1: 「カボス」「スダチ」「柚子」 Group2: 「猫」「犬」
© 2022 Works Applications Systems Co., Ltd. 2. chiVe でできること
③単語を分類(2/2):実験 15 単語集合をカテゴリに分けるタスクで実験 データセット yamamomo (詳細は Tech Talk #4) https://github.com/WorksApplications/yamaMomo 「スダチ」「犬」「猫」 「カボス」 「犬」「猫」 「スダチ」「カボス」 分散表現 精度 chiVe mc90 61.7 nwjc2vec 61.2 朝日新聞 52.6 実験結果
© 2022 Works Applications Systems Co., Ltd. 2. chiVe でできること
④文ベクトルを作る(1/2) 16 単語ベクトルから、文のベクトルを作れないか? 「スダチ」 [ 0.176 0.070 … -0.044 ] 「を」 [ -0.050 -0.093 … 0.092 ] 「絞る」 [ -0.054 0.153 … 0.075 ] 「。」 [ -0.133 0.041 … 0.108 ] 「スダチを絞る。」 [ ? ? … ? ] ベクトルの合成方法 • 足す • 平均を取る • 最大値を取る など
© 2022 Works Applications Systems Co., Ltd. 2. chiVe でできること
④文ベクトルを作る(2/2) 17 平均を取る例 「スダチ」 [ 0.176 0.070 … -0.044 ] 「を」 [ -0.050 -0.093 … 0.092 ] 「絞る」 [ -0.054 0.153 … 0.075 ] 「。」 [ -0.133 0.041 … 0.108 ] 「スダチを絞る。」 [ -0.016 0.042 … 0.058 ] ベクトル空間
© 2022 Works Applications Systems Co., Ltd. 2. chiVe でできること
⑤教師なし文書分類(1/2) 18 単語の分類と同様に、文(や文書)の分類ができる キョリが近いものをグループ化すれば、 文のトピックで分類できる ベクトル空間 Group1 Group2 Group1: 「大根おろしを添える。」 「スダチを絞る。」 Group2: 「犬を散歩に連れて行く。」 「猫を飼う。」
© 2022 Works Applications Systems Co., Ltd. 2. chiVe でできること
⑤教師なし文書分類(2/2) 19 但し、各グループのトピック名は、 機械には分からない ベクトル空間 Group1: 「大根おろしを添える。」 「スダチを絞る。」 Group2: 「犬を散歩に連れて行く。」 「猫を飼う。」 Group1 Group2 👨焼き魚の話? 🤖??? 👨ペットを飼う話? 🤖???
© 2022 Works Applications Systems Co., Ltd. 2. chiVe でできること
⑥教師あり文書分類(1/2) 20 教師ラベル(トピック名)があれば、学習できる 「大根おろしを添える。」 「スダチを絞る。」 「犬を散歩に連れて行く。」 「猫を飼う。」 魚料理 ペット 「ハムスターに餌を与える。」 🤖分類器 学習データ 未知の評価データ ペット 学習 教師ラベル
© 2022 Works Applications Systems Co., Ltd. 補足 様々な分類タスク 21
• chatbot への問い合わせを分類 • 商品レビュー文の感情予測 「賞与は収入に含む?」 「ログインできない。」 「パスワード忘れた。」 「源泉徴収票はどこ?」 「賞与は収入に含む?」 「源泉徴収票はどこ?」 「ログインできない。」 「パスワード忘れた。」 「この商品使いやすい」 「最高」 「高すぎる」 「この商品使いやすい」 「最高」 「高すぎる」 ★★★ ★
© 2022 Works Applications Systems Co., Ltd. 2. chiVe でできること
まとめ 22 ① 「父」ー「男性」+「女性」=「母」 ⑤⑥ 文書分類 ② キョリ ③ 単語分類 ④ 文ベクトル 魚料理 魚料理 ペット ペット 教 師 な し 教 師 あ り
© 2022 Works Applications Systems Co., Ltd. 3. ドメイン適応
© 2022 Works Applications Systems Co., Ltd. 3. ドメイン適応 ドメイン適応とは
24 公開されている学習済み chiVe を追加学習して、 自分のドメイン(分野)に特化させる (例)農業ドメインに特化させたい場合 (公開) 学習済み chiVe 農業に特化した chiVe 農業ドメインのコーパス 分類タスクなど ドメイン適応
© 2022 Works Applications Systems Co., Ltd. 3. ドメイン適応 追加学習させたいケース
25 1. 近い単語のキョリを離したい (例) 農業分野で、 「スダチ」と「カボス」 を区別したい 2. 専門用語の品質を高めたい NWJCでは低頻度語となるが 特定分野で頻出な単語の品質改善 (例) 航海分野で、 「水先法」が頻出 公開済み chiVe スダチ カボス 柚子 犬 農業特化 chiVe スダチ カボス 犬 柚子 (公開) 学習済み chiVe 航海分野 に特化した chiVe ドメイン適応 ドメイン適応 水先法では、船舶の... 航海分野の社内コーパス
© 2022 Works Applications Systems Co., Ltd. 4. chiVe vs.
chiTra
© 2022 Works Applications Systems Co., Ltd. 4. chiVe vs.
chiTra コスト vs. 精度 27 コスト重視なら chiVe、精度重視なら chiTra 解けるタスク 解きにくいタスク 精度 計算速度 費用面 chiVe 分類系タスク (文書分類など) 生成系タスク (機械翻訳など) ◦ ◎ ◎ chiTra ◎ △ △ 精度 処理時間 主な計算装置 chiVe 89.1 訓練 90秒、評価 0.5秒 CPU ← これで性能十分な時は chiVe chiTra 95.7 訓練 1時間、評価 8秒 CPU+GPU ← 予算がある時は chiTra (例)Livedoor ニュースコーパスでの文書分類
© 2022 Works Applications Systems Co., Ltd. 4. chiVe vs.
chiTra 追加学習の必要性 28 chiVe は、追加学習しなくても使える ドメイン適応すれば、少し性能が上がる chiTra は、追加学習して使う 通常はタスクに合わせてファインチューニング ファインチューニング 学習済み chiTra 社内データに合わせた chiTra 精度 chiVe (公開のもの) 89.1 chiVe (ドメイン適応※) 90.4 chiTra 95.7 Livedoor での文書分類
© 2022 Works Applications Systems Co., Ltd. 5. chiVe を使ってみる
© 2022 Works Applications Systems Co., Ltd. 5. chiVe を使ってみる
インストールは1行! 30 1. Word2Vec を扱うライブラリを1行でインストール 2. 学習済み chiVe をダウンロード GitHubから取ってくる https://github.com/WorksApplications/chiVe 3. 動作確認 $ pip install gensim # gensim を使いたい人 $ pip install pymagnitude # Magnitude を使いたい人 >>> from gensim.models import KeyedVectors >>> chive = KeyedVectors.load('...') >>> chive.most_similar('酢橘', topn=3) [('臭橙', 0.73349), ('レモン', 0.71241), ('青紫蘇', 0.68655)]
© 2022 Works Applications Systems Co., Ltd. 5. chiVe を使ってみる
単語の足し引き 31 問1「父」ー「男性」+「女性」=? 問2「作家」ー「文字」+「絵」=? >>> chive.most_similar(['父', '女性'], negative=['男性'])[0][0] ’母’ >>> chive.most_similar(['作家', '絵'], negative=['文字'])[0][0] ’画家’
© 2022 Works Applications Systems Co., Ltd. 5. chiVe を使ってみる
gensim vs. Magnitude 32 gensim • Word2Vec を扱う昔からあるライブラリ • 使っている人が多く、解説記事なども多い Magnitude • シンプルで速く、使いやすいメソッドが整備 • 未知語のベクトルを作成する機能 • HTTP上でのリモートロードができる gensim 26秒 Magnitude 1秒 chiVe 1.2 mc5 のロード時間 >>> from pymagnitude import Magnitude >>> chive = Magnitude( 'https://sudachi.s3-ap-northeast-1.amazonaws.com/chive/chive-1.2-mc90.magnitude') >>> chive.query('酢橘')
© 2022 Works Applications Systems Co., Ltd. 補足 spaCy/GiNZA での分散表現
33 GiNZA 日本語の係り受け解析や固有表現抽出などが手軽にできる 「単語分散表現を取得する」という目的には GiNZA は不向き • GiNZA のバージョンによってベクトルが違う • 原理上、全語彙が spaCy/GiNZA にあるわけでない ◦ spaCy は軽量化のために一部の語彙を捨てる ◦ GiNZA は C単位なのに、ベクトルは A, B, C単位 → 語彙数が大きいという chiVe の利点を活かしきれない
© 2022 Works Applications Systems Co., Ltd. 本日のまとめ(キーワード) 34 3.
ドメイン適応 • 社内データで追加学習 4. chiVe vs. chiTra • コスト重視の chiVe • 性能重視の chiTra 5. chiVe を使ってみる • gensim, Magunitude 1. 分散表現とは?chiVeとは? • 実用で使える chiVe 2. chiVeでできること • 足し引き • 単語や文のキョリ • 単語分類、文書分類