chiVe: 製品利用可能な日本語単語ベクトル資源の実現へ向けて

C6b97a47d5406cfdef50a5c755751c16?s=47 Sorami Hisamoto
September 10, 2020

chiVe: 製品利用可能な日本語単語ベクトル資源の実現へ向けて

chiVe: Japanese word embedding with Sudachi and NWJC 🌿
https://github.com/WorksApplications/chiVe

第16回テキストアナリティクス・シンポジウム
http://www.ieice.org/~nlc/tm16p.html

***

chiVe: 製品利用可能な日本語単語ベクトル資源の実現へ向けて ~ 形態素解析器Sudachiと超大規模ウェブコーパスNWJCによる分散表現の獲得と改良 ~

事前学習された単語分散表現(単語埋め込み、単語ベクトル)は、自然言語処理において重要な言語資源である。しかし特に日本語では、実用において使い勝手の良いリソースは少ない。我々の取り組む chiVe(チャイブ)は、形態素解析器 Sudachi による複数粒度分割を活用し、100 億語規模コーパス NWJC をもとに学習した単語分散表現である。この資源は商用利用可能なライセンスのもと一般公開している。本稿ではその概要と、その改良へ向けた取り組み、特に、未知語対応、同義語辞書の活用、そしてドメイン適用について解説する。

***

chiVe: Towards Industrial-strength Japanese Word Vector Resources -Constructing and Improving Embedding with Tokenizer "Sudachi" and Ultra-large-scale Web-based Corpus "NWJC"-

Pretrained word embeddings (word vectors, distributed representations) are fundamental and important components for recent neural network based natural language processing. However, there are not many resources available for Japanese language that is useful for the practical purpose. “chiVe” is our attempt to construct useful word embedding resource, using morphological analyzer “Sudachi” that provides multi-granular tokenization results, and 10 billion words scale corpus “NWJC”. We made this resource publicly available under Apache 2.0 license that allows commercial usage. In this article, we describe the overview of the project, and introduce our ongoing work to further improve the resources which includes handling Out-of-Vocabulary words, utilizing the synonym resources, and adapting to specific domains.

C6b97a47d5406cfdef50a5c755751c16?s=128

Sorami Hisamoto

September 10, 2020
Tweet

Transcript

  1. chiVe: 製品利用可能な日本語単語ベクトル資源の実現へ向けて 形態素解析器Sudachiと超大規模ウェブコーパスNWJCによる分散表現の獲得と改良 2020年9月10日 ◦久本空海, 山村崇, 勝田哲弘, 竹林佑斗, 高岡一馬, 内田佳孝

    ワークスアプリケーションズ 岡照晃, 浅原正幸 国立国語研究所 第16回テキストアナリティクス・シンポジウム チャ イ ブ
  2. 概要 • chiVe: 製品利用可能な日本語分散表現リソース ◦ 100億語規模のWebコーパス NWJC ◦ 形態素解析器 Sudachi

    による複数粒度分割 ◦ Apache 2.0 ライセンスで一般公開、商用利用可能 • chiVeの更なる改良 ◦ 未知語の取り扱い ◦ 同義語辞書の活用 ◦ ドメイン適応 2 github.com/WorksApplications/chiVe
  3. 事前学習済みの単語分散表現 • “単語ベクトル Word Vector”, “単語埋め込み Word Embedding” • コーパス(ラベル無しデータ)から、単語間の共起に基づき獲得

    ◦ 単語ごとの、数百次元程度の実数値ベクトル ◦ word2vec, GloVe, fastText などが一般的 • 様々なタスクで活用可能 ◦ 「対象タスクと直接関係がない(大規模)コーパス」を活用 • 公開リソースを利用することで、手軽に恩恵を得られる 3
  4. 主な日本語の分散表現リソース 様々なリソースが公開されているが、商用利用に難点ある場合も多い 4 学習コーパス 付記 chiVe NWJC 形態素解析器Sudachiによる複数粒度分割を活用(後述) nwjc2vec NWJC

    100億語規模コーパスNWJCを利用 hottoSNS-w2v SNS, Wikipedia, Web 大規模なSNSやWebデータで学習、基本的に研究目的に限る 朝日新聞単語ベクトル 朝日新聞 朝日新聞のテキストで学習、基本的に研究目的に限る HR領域向け単語ベクトル 求人データ 求人検索エンジン「スタンバイ」のデータ Wikipedia2Vec Wikipedia 記事とリンクから、単語とエンティティの分散表現 係り受けに基づく日本語単語埋込 Wikipedia 単語系列の前後ではなく係り受け関係 fastText Wikipedia, CommonCrawl サブワード(文字n-gram)、157言語 BPEmb Wikipedia Byte Pair Encodingによる教師無し分割、275言語
  5. chiVe: 製品利用可能な日本語分散表現リソース • 100億語規模の超大規模Webコーパス NWJC (国語研) • 形態素解析器 Sudachi による複数粒度分割(ワークス)

    • Apache 2.0 ライセンスで一般公開、商用利用可能 5 Sudachiによる複数粒度分割の例 A単位 カ ン ヌ 国 際 映 画 祭 カ ン ヌ 国 際 映 画 祭 カ ン ヌ 国 際 映画 祭 B単位 C単位 用途によって 欲しい単位は違う チャ イ ブ
  6. 複数粒度の分割結果に基づく日本語単語分散表現 • 一文に、異なる単位の対象語・文脈語: 全て学習に利用 • 学習アルゴリズム自体は既存のものを利用 6 ※ 詳細は (真鍋+

    2019) • → 各種タスクで、他の分散表現と比べて若干の向上 • → 固有表現や複合語: その構成語との類似度が高くなることを確認
  7. chiVe の一般公開 • github.com/WorksApplications/chiVe • Apache2.0: 商用利用可能 • NLPライブラリ GiNZA

    や spaCy にも導入済 • 複数バージョン ◦ v1.0: Sudachi Full辞書 ◦ V1.1: Sudachi Core辞書, 表記統制 ◦ 複数の頻度足切りバージョンを用意 7
  8. chiVe の更なる改良へ向けて 品質と利便性の向上へ向けて継続的に取り組んでいる 今回は3点紹介; 8 1. 未知語の取り扱い 2. 同義語辞書の活用 3.

    ドメイン適応
  9. 改良トピック1. 未知語の取り扱い 未知語(事前学習用コーパスに存在しない語)は大きな課題 • ナイーブな対処法 ◦ その語を無視する ◦ ランダムな「未知語ベクトル」を割り当てる •

    未知語がタスクにおいて重要な場合、精度へ大きく影響 • 全ての語を含むコーパスを用意することは非現実的 9
  10. 未知語に関する先行研究 未知語の「構成要素」から推定 • サブワード: 語の文字n-gram ◦ 接頭・接尾辞は強力なヒント ◦ スペル誤りにも対応可能 •

    漢字部首, 読み, バイト列, ... 10 MIMICK (Pinter+ 2017) 文字から未知語ベクトルを生成 ※ 図は(Pinter+ 2017)より引用
  11. 提案手法: 既知の構成語から未知の複合語 • Sudachiの複数粒度分割を活用 • 複合語ベクトル生成モデル ◦ 入力: 既知の構成語ベクトル ◦

    出力: 生成ベクトル ◦ 「既知の複合語ベクトル」を模倣 • 文字n-gramより 有効なケースがありうると想定 11
  12. 予備的な実験の結果 • 約4万のB,C単位語chiVeベクトル ◦ 訓練セットでは損失減少 ◦ 検証セットではかなり早期より再上昇 ◦ → うまく汎化できていない

    • 「生成ベクトルの近傍」上位10件に元ベクトルがある割合 ◦ 検証/評価セットで約30% ◦ それほどうまく模倣生成できていない • 模倣は不十分でも「下流タスク」では有用かもしれない 12
  13. 生成ベクトルの類似例 「地方労働委員会」の近傍語と類似度 ※ 構成は「地方 / 労働 / 委員 / 会」

    13 元ベクトル 生成ベクトル 1 1.000 地方労働委員会 0.695 人事委員会 2 0.745 中央労働委員会 0.690 労使委員会 3 0.656 公益委員会 0.682 労働政策審議会 4 0.652 地労委 0.673 地方労働委員会 5 0.643 労働委員会 0.668 組合法 • そもそも、構成語から複合語の意味が成り立たないケースもある? • 「名詞句」と「複合動詞」では勝手が違うはず • 例: 見合わせる = 見る + 合う ? 模倣元ベクトルが 最上位ではない
  14. 提案手法の問題点と今後の予定 • 実用上の難点 ◦ 未知語が「既知の構成語」から構成されている必要がある ◦ 構成語系列のスパンを特定する必要がある ◦ 利用時にモデルによる生成が必要 •

    今後の予定 ◦ 改良機構の模索、成功・失敗例の分析 ◦ 文字・サブワードレベルからの未知語対応 ◦ 種類(名詞句、複合動詞、...)や文字種(漢字、カタカナ語、...)に適した手法の検討 14
  15. 改良トピック2. 同義語辞書の活用 • Sudachi同義語辞書 ◦ 専門家が人手整備した言語資源 ◦ 約6万の同義語対、詳細化した同義関係の情報を付与 ◦ 商用利用可能なライセンスで一般公開済、継続的に更新

    15
  16. 同義語資源からRealtion Embeddingを獲得 • Relation Embedding ◦ 「語彙の関係」自体を明示的に学習 • Sudachi同義語辞書、日本語WordNet、分類語彙表を活用 •

    TransE (Bordes+ 2013) などの手法を利用 • 応用の想定 ◦ 分散表現の可読性向上 ◦ 同義語辞書の拡張時の補助 ◦ 下流タスクの精度向上 16 h t r (head, relation, tail)
  17. 改良トピック3. ドメイン適応 • ドメインにより単語の意味が異なることがある ◦ 例: 「Java」コーヒー関連? プログラミング関連? • しかし、ドメインのデータが小さいことが多々ある

    • 検討手法: ドメイン類似度推定モデルによるデータの自動獲得 17 分散表現の 学習 大規模コーパス ドメインコーパス 類似データ ① 検索ステップ ② 学習ステップ 類似度 推定モデル
  18. まとめ • chiVe: 製品利用可能な日本語分散表現リソース ◦ 100億語規模のWebコーパス NWJC ◦ 形態素解析器 Sudachi

    による複数粒度分割 ◦ Apache 2.0 ライセンスで一般公開、商用利用可能 • chiVeの更なる改良 ◦ 未知語の取り扱い ◦ 同義語辞書の活用 ◦ ドメイン適応 18 github.com/WorksApplications/chiVe 質問・議論のための Slack もあります!