SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
言語モデル入門
2014年4月18日
藤沼祥成
Overview
• Introduction
– 言語モデルとは?
• 基礎編
– スムージング
– 言語モデルの評価
• 応用編:言語モデルの最近の研究
• ツールキットのお話
今回メインで使用した資料
• Coursera
• IME本
言語モデルって何?
• 人間が用いるであろう言葉らしさ、を確率とし
てモデル化する
• 例:P(<BOS>我輩は猫である<EOS>) >
P(<BOS>は猫である<EOS>)
• IME本210ページより
モデル化するデータは?
• コーパスが整備されている。
• Brownコーパス
• 新聞コーパス(読売、毎日、日経等々)
• Google 日本語 n-gramコーパス
• 日本語書き言葉均衡コーパス(BCCWJ)
• …
言語モデルは何に使うの?
• 例:基本タスク
– 機械翻訳
• 翻訳した日本語は日本語らしいか。
– かな漢字変換
• 変換候補はよく使われる漢字(+送り仮名等)か。
• 例:変化球系タスク
– 翻字(マイケル=Michael)検出(Li+ ACL 2004)
– Twitter上のTopic tracking(Lin+ KDD 2011)
– ユーザのオンラインコミュニティの退会予測
(Danescu-Niculescu-Mizil+ WWW 2013)
Noisy Channel Model
(Bayes Rule applied)
• O: output, I: input
• かな漢字変換
– O: 変換候補, I: ひらがな列
– P(I|O): かな漢字モデル
• 機械翻訳:
– O: 日本語, I: 英語
– P(I|O): 翻訳モデル(言語間の対応)
言語モデル!
• 基礎編:言語モデルとスムー
ジング
シャノンゲーム
• 次の単語はなにがくる?
• I want to go to ______
• P(w | I want to go to)でモデル化しよう!
n-gram言語モデル
• n-1語を文脈として次の後を予測する
• 文字n-gram、単語n-gram、class n-gram
• 例:bigram言語モデル
• P(w_i | w_i-1) = c(w_i, w_i-1) / c(w_i-1)
• P(<BOS>/我輩 / は / 猫 / で / ある/<EOS>)
• =P(我輩| <BOS>) * P(は|我輩) * P(猫|は) *
P(で|猫) * P(ある|で) * P(<EOS> | ある)
スムージング
• コーパスに登場する単語は有限である。
• 例:<BOS>/我輩/は/猫/で/あ/る/<EOS>
• P(私 | <BOS>) = 0
• コーパスに登場していない単語にどう対応す
るか?(=ゼロ頻度問題)
• ⇒解決策:スムージング
スムージングの種類
• 加算スムージング ⇒ 不十分
• n-1, n-2, …と低次のn-gramを用いよう!
• 補完(interpolated)型
– 常に低次を考慮
– Interpolated Kneser-neyスムージング
• バックオフ型
– 高次のngramが存在しない場合、低次を考慮
– Good Turingによる推定値で低次をDiscount
加算スムージング
• 一番単純:定数を頻度に加算する
• n(w):コーパス中の単語の出現回数
• C:コーパス中の全単語の出現回数
• k:加算する定数
• P(w) = (n(w) + k) / (C + kV)
Good Turing 推定:バックオフ型
• 頻度の頻度を用いた、頻度の補正
• N_c: 頻度の頻度
• 例:マグロ:2、鮭:3、こはだ:1, 玉子:1, い
か:1
– 合計8単語
• N_1 = 3, N_2 = 1, N_3 = 1
• 1回しか観測されていない単語を「未知の単
語が観測される確率」と扱う
Good Turing 推定:例
• P_gt(ゼロ頻度) = N_1 / N
• 一回だけ観測された単語:
– c*(こはだ) =2 * N_2 / N_1 = 2/3
– P_gt(一回だけの単語) = 2/3 / 8 = 1/12
• ゼロ頻度:
– P_gt(ゼロ頻度) = 3/8
Kneser-neyスムージング:
Discounting
• Good turingは結局ほ
ぼ0.75ぐらいを
discount
– AP corpus
– (Church & Gale 1991)
• ⇒定数でdiscountすれ
ばいい!
c C*
0 0.000027026
1 0.4457
2 1.260
3 2.237
4 3.236
5 4.23
6 5.19
7 6.21
8 7.24
Kneser-neyスムージング:
overview
• 実験的に一番良いスムージング
• いくつかバリエーションがある
– Interpolated Kneser-ney (Kneser & Ney 1995)
• 今回はこっちを説明
– Modified Kneser-ney(Chen & Goodman 1999)
• アイディアは:
– 学習データで観測したn-gramは学習データ外の
未知データとくらべて頻度が高いのでDiscount
– 直前の単語の種類数を重視
• 例:bigramにおけるKneser-ney
Kneser-neyスムージング:例
• I want to go to ______
– Toyama? Fransisco?
– Fransiscoは頻度が高いが、ほぼSanの後に続く
• 通常の場合:unigramの頻度
– 単語wは現れている頻度は?
• Kneser-neyのアイディア:
– P_continuation: 単語wは直前の単語toの後に
続く単語として、未知の例かどうか?
Kneser-neyスムージングによるバ
イグラム確率
w_i-1の直後に現れる単語
の種類数
Interpolation
weight
全ての単語の直前にくる単
語の種類数
• 言語モデルの評価
パープレキシティ
• 情報理論的距離
• 低いほど言語モデルに近く、高いほどモデル
から遠い
• D: テスト文書
• N: 単語数
• 長さNで正規化しているイメージ
クロスエントロピー
• 実質パープレキシティと同じ
• PP(D) = 2^H(D)
• D_i: 文書Dに含まれる単語
•応用編
発展1:ニューラル言語モデル
(Bengio+ 2003)
• 分散表現
– 単語を固定長のベクトルで表す
• AP newsコーパスではModified Kneser-ney
よりPerplexityが低い
model n Perplexity
Neural LM 6 109
N-gram (Kneser-ney) 3 127
N-gram (Kneser-ney) 4 119
N-gram (Kneser-ney) 5 117
※ただしNeural LMはinterpolated trigramも使用している
発展2:大規模データによる言語モ
デル (Brants+ EMNLP 2007)
• Stupid back off
– 文字通りstupidだが、意外とうまくいく
– Discoutingなし
• 確率ではなくスコア
– α = 0.4
• Unigramは
発展2:大規模データによる言語モ
デル (Brants+ EMNLP 2007)
BLEU
scoreは
stupid
backoffの
方が上!
発展3:ベイズ階層言語モデル
• Hierarchical Dirichlet Language Model (Mackay,
NLE 1998)
– Kneser-neyにPPで勝てない。。。
• Hierarchical Pitman-Yor Language Model (Teh,
ACL 2006)
– Priorをディリクレ過程ではなくPitman-Yor過程に変えたら
Modified Kneser-neyと同じぐらい!
• Nested Pitman-Yor Language Model (持橋+,
ACL 2009)
• ツールキットのお話
主な言語モデルツール
• CMU-Cambridge language model toolkit
– 自分が使ったやつ
– Kneser-neyがないのであまりおすすめしない
• SRI language model toolkit
– Kneser-neyはある
– Bengioらもこれを使った。多分これが一番使わ
れている?
CMU(と多分他のツールもある)
オプション
• 段落や文章の終わりはどう扱う?
• Force back-off
– P(おはよー| <BOS>, <EOS>,!,おはよう) =
P(おはよー | <BOS>)
<BOS> おはよう ! <EOS>
<BOS> おはよー ! <EOS>
実際のコマンド (CMU toolkit)
• -backoff_from_ccs_inc
– Inclusive force back offを指定
– P(おはよー| <BOS>, <EOS>,!,おはよう)
• P(おはよー | <BOS>): inclusive
• P(おはよー): exclusive
• -include_unks
– 未知語をPerplexity算出に含めるか
– 同じ文字トークン(<unk>)として扱うか
– 別々の文字トークン(<unk_1>, <unk_2>…)
参考文献
• 日本語入力を支える技術
• StanfordのNLPの授業
– https://class.coursera.org/nlp/lecture
• NYUの言語モデルの授業スライド
– http://www.cs.nyu.edu/~petrov/lecture2.pdf
• Univ. of Marylandの言語モデルの授業スライド
– http://www.umiacs.umd.edu/~jimmylin/cloud-2010-
Spring/session9-slides.pdf
• Neural Language Modelの授業スライド
– http://www.inf.ed.ac.uk/teaching/courses/asr/2013-
14/asr09-nnlm.pdf

Weitere ähnliche Inhalte

Was ist angesagt?

パターン認識と機械学習入門
パターン認識と機械学習入門パターン認識と機械学習入門
パターン認識と機械学習入門
Momoko Hayamizu
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
Takao Yamanaka
 

Was ist angesagt? (20)

5分で分かる自己組織化マップ
5分で分かる自己組織化マップ5分で分かる自己組織化マップ
5分で分かる自己組織化マップ
 
畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向
 
Semi supervised, weakly-supervised, unsupervised, and active learning
Semi supervised, weakly-supervised, unsupervised, and active learningSemi supervised, weakly-supervised, unsupervised, and active learning
Semi supervised, weakly-supervised, unsupervised, and active learning
 
ELBO型VAEのダメなところ
ELBO型VAEのダメなところELBO型VAEのダメなところ
ELBO型VAEのダメなところ
 
3分でわかる多項分布とディリクレ分布
3分でわかる多項分布とディリクレ分布3分でわかる多項分布とディリクレ分布
3分でわかる多項分布とディリクレ分布
 
数式からみるWord2Vec
数式からみるWord2Vec数式からみるWord2Vec
数式からみるWord2Vec
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
 
Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験
 
パターン認識と機械学習入門
パターン認識と機械学習入門パターン認識と機械学習入門
パターン認識と機械学習入門
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
 
変分ベイズ法の説明
変分ベイズ法の説明変分ベイズ法の説明
変分ベイズ法の説明
 
POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用
 
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
 
深層生成モデルと世界モデル, 深層生成モデルライブラリPixyzについて
深層生成モデルと世界モデル,深層生成モデルライブラリPixyzについて深層生成モデルと世界モデル,深層生成モデルライブラリPixyzについて
深層生成モデルと世界モデル, 深層生成モデルライブラリPixyzについて
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
深層学習 勉強会第5回 ボルツマンマシン
深層学習 勉強会第5回 ボルツマンマシン深層学習 勉強会第5回 ボルツマンマシン
深層学習 勉強会第5回 ボルツマンマシン
 
【メタサーベイ】Video Transformer
 【メタサーベイ】Video Transformer 【メタサーベイ】Video Transformer
【メタサーベイ】Video Transformer
 

Andere mochten auch

自然言語処理はじめました - Ngramを数え上げまくる
自然言語処理はじめました - Ngramを数え上げまくる自然言語処理はじめました - Ngramを数え上げまくる
自然言語処理はじめました - Ngramを数え上げまくる
phyllo
 
自然言語処理のためのDeep Learning
自然言語処理のためのDeep Learning自然言語処理のためのDeep Learning
自然言語処理のためのDeep Learning
Yuta Kikuchi
 

Andere mochten auch (10)

言語モデル入門 (第二版)
言語モデル入門 (第二版)言語モデル入門 (第二版)
言語モデル入門 (第二版)
 
DL Hackerson 2
DL Hackerson 2DL Hackerson 2
DL Hackerson 2
 
自然言語処理はじめました - Ngramを数え上げまくる
自然言語処理はじめました - Ngramを数え上げまくる自然言語処理はじめました - Ngramを数え上げまくる
自然言語処理はじめました - Ngramを数え上げまくる
 
[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS
[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS
[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS
 
未出現事象の出現確率
未出現事象の出現確率未出現事象の出現確率
未出現事象の出現確率
 
CRF を使った Web 本文抽出
CRF を使った Web 本文抽出CRF を使った Web 本文抽出
CRF を使った Web 本文抽出
 
[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS
[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS
[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS
 
Prophet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツールProphet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツール
 
SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)
 
自然言語処理のためのDeep Learning
自然言語処理のためのDeep Learning自然言語処理のためのDeep Learning
自然言語処理のためのDeep Learning
 

Ähnlich wie 言語モデル入門

ナイーブベイズによる言語判定
ナイーブベイズによる言語判定ナイーブベイズによる言語判定
ナイーブベイズによる言語判定
Shuyo Nakatani
 
大規模日本語ブログコーパスにおける言語モデルの構築と評価
大規模日本語ブログコーパスにおける言語モデルの構築と評価大規模日本語ブログコーパスにおける言語モデルの構築と評価
大規模日本語ブログコーパスにおける言語モデルの構築と評価
Yahoo!デベロッパーネットワーク
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
Shuyo Nakatani
 
A scalable probablistic classifier for language modeling: ACL 2011 読み会
A scalable probablistic classifier for language modeling: ACL 2011 読み会A scalable probablistic classifier for language modeling: ACL 2011 読み会
A scalable probablistic classifier for language modeling: ACL 2011 読み会
正志 坪坂
 

Ähnlich wie 言語モデル入門 (10)

質問応答システム入門
質問応答システム入門質問応答システム入門
質問応答システム入門
 
Tree-to-Sequence Attentional Neural Machine Translation (ACL 2016)
Tree-to-Sequence Attentional Neural Machine Translation (ACL 2016)Tree-to-Sequence Attentional Neural Machine Translation (ACL 2016)
Tree-to-Sequence Attentional Neural Machine Translation (ACL 2016)
 
ナイーブベイズによる言語判定
ナイーブベイズによる言語判定ナイーブベイズによる言語判定
ナイーブベイズによる言語判定
 
Jacet2014ykondo_final
Jacet2014ykondo_finalJacet2014ykondo_final
Jacet2014ykondo_final
 
大規模日本語ブログコーパスにおける言語モデルの構築と評価
大規模日本語ブログコーパスにおける言語モデルの構築と評価大規模日本語ブログコーパスにおける言語モデルの構築と評価
大規模日本語ブログコーパスにおける言語モデルの構築と評価
 
Paraphrasing rules for automatic evaluation of translation into japanese
Paraphrasing rules for automatic evaluation of translation into japaneseParaphrasing rules for automatic evaluation of translation into japanese
Paraphrasing rules for automatic evaluation of translation into japanese
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
A scalable probablistic classifier for language modeling: ACL 2011 読み会
A scalable probablistic classifier for language modeling: ACL 2011 読み会A scalable probablistic classifier for language modeling: ACL 2011 読み会
A scalable probablistic classifier for language modeling: ACL 2011 読み会
 
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
 
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
 

Mehr von Yoshinari Fujinuma (15)

Probabilistic Graphical Models 輪読会 Chapter 4.1 - 4.4
Probabilistic Graphical Models 輪読会 Chapter 4.1 - 4.4Probabilistic Graphical Models 輪読会 Chapter 4.1 - 4.4
Probabilistic Graphical Models 輪読会 Chapter 4.1 - 4.4
 
IT業界における英語とプログラミングの関係性
IT業界における英語とプログラミングの関係性IT業界における英語とプログラミングの関係性
IT業界における英語とプログラミングの関係性
 
Kuromoji FST
Kuromoji FSTKuromoji FST
Kuromoji FST
 
Liさん
LiさんLiさん
Liさん
 
冨田さん
冨田さん冨田さん
冨田さん
 
藤沼さん
藤沼さん藤沼さん
藤沼さん
 
Yokoさん
YokoさんYokoさん
Yokoさん
 
Panotさん
PanotさんPanotさん
Panotさん
 
大橋さん
大橋さん大橋さん
大橋さん
 
研究室紹介用ポスター
研究室紹介用ポスター研究室紹介用ポスター
研究室紹介用ポスター
 
Minhさん
MinhさんMinhさん
Minhさん
 
Pascualさん
PascualさんPascualさん
Pascualさん
 
Pontusさん
PontusさんPontusさん
Pontusさん
 
hara-san's research
hara-san's researchhara-san's research
hara-san's research
 
Tweet Recommendation with Graph Co-Ranking
Tweet Recommendation with Graph Co-RankingTweet Recommendation with Graph Co-Ranking
Tweet Recommendation with Graph Co-Ranking
 

Kürzlich hochgeladen

Kürzlich hochgeladen (10)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

言語モデル入門