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
単語分散表現 chiVeの活用方法 at WAP NLP Tech Talk #5
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
WAP
April 28, 2022
Technology
680
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
単語分散表現 chiVeの活用方法 at WAP NLP Tech Talk #5
WAP
April 28, 2022
More Decks by WAP
See All by WAP
単語分散表現と事前学習モデル - chiVe _ chiTra 利活用のための下準備 at WAP NLP Tech Talk #5
waptech
0
1.5k
事前学習モデル chiTra の活用方法 at WAP NLP Tech Talk #5
waptech
0
380
Sudachi Family近況報告 at WAP NLP Tech Talk #5
waptech
0
280
Sudachi近況報告 at WAP NLP Tech Talk #4
waptech
1
560
日本語形態素解析器 SudachiPy の 現状と今後について
waptech
4
8.2k
企業(ワークスアプリケーションズ)での研究開発の楽しさと苦労
waptech
0
410
Sudachi辞書のつくり方
waptech
4
2.7k
chiVe_実用的な日本語単語ベクトル実現にむけて_20201208.pdf
waptech
2
660
Other Decks in Technology
See All in Technology
“ID沼入口” - 基本とセキュリティから始める、考え続けるためのID管理技術勉強会 告知&イントロ
ritou
0
130
そこにあるから地図ができる~位置を示す"モノ"を愉しむ~ - Interface 2026年6月号GPS特集オフ会 / interface_202606_GPS_offline
sakaik
1
120
AI Agentをシステムに組み込む前にゆるく向き合ってみる
hayama17
0
170
脱SaaS!FDEを支えるプロビジョニングと分離設計
knih
0
310
Kotlin 開発のツラミを爆破した話! / Explode the difficulty of Kotlin dev!
eller86
0
110
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
450
組織における AI-DLC 実践
askul
0
180
AIに障害切り分けを全部やってもらった。 。 。 。
estie
0
270
起点・思考・出力で分解する 〜PM業務の自動化設計〜
kazu_kichi_67
2
1.2k
水を運ぶ人としてのリーダーシップ
izumii19
4
1.1k
打造你的 AI 工作流:Agent Skill + MCP 實戰工作坊
appleboy
0
180
はてなのサービス基盤を支える Kubernetes《足腰》
masayoshimaezawa
0
220
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
420
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
640
30 Presentation Tips
portentint
PRO
1
330
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
The Spectacular Lies of Maps
axbom
PRO
1
830
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Technical Leadership for Architectural Decision Making
baasie
3
420
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
620
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
740
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
870
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
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でできること • 足し引き • 単語や文のキョリ • 単語分類、文書分類