SlideShare une entreprise Scribd logo
1  sur  116
Télécharger pour lire hors ligne
自然言語処理における argmax 操作

             NISHIKAWA Hitoshi
             NISHIKAWA Hitoshi




2011/07/23        DSIRNLP #1     1
目的
• NLP タスクの全体像をご説明差し上げ、ご理解いた
      タ ク 全体像をご説 差 上げ ご理解 た
  だき、皆様の学習の一助とする
   – NLP とは何ぞや
   – 他の分野との関係
   – 構成要素、 NLP の世界観
• NLP タスクのうち、特に argmax 操作(デコード)と呼
                  g
  ばれる操作についてお話差し上げ、モデル開発の
  一助とする



2011/07/23      DSIRNLP #1          2
目次
       概    分
1. NLPの概要(10分)
   1. 他分野との関係、 NLP の諸技術(5分)
      他分野  関係、      諸技術( 分)
   2. モデル、パラメタ、デコード(5分)
2. デコード(30分)
2 デコ ド(30分)
   1. 近似解法(5分)          特
                        特にココを中心に
                            を中
   2. 動的計画法(5分)           お話します
   3 整数計画法(20分)
   3.
3. まとめ

2011/07/23     DSIRNLP #1          3
自然言語処理
• 自然
  自然言語を計算機で処理する一連の技術
      を計算機 処 する 連 技術
   – 自然言語を対象にする、という対象に焦点をあて
     た呼称(分類)
   – 隣接領域:音響信号処理(音全般の処理 エコー
     隣接領域:音響信号処理(音全般の処理、エコ
     キャンセラなど)、音声処理(人間が発する音の
     処理、音声認識など)、画像処理(画像の処理)
     処理 音声認識など) 画像処理(画像の処理)
   – この名前には「目的」は含まれない
       • テキストマイニングは「目的」指向の呼称



2011/07/23      DSIRNLP #1     4
他の分野との関係

   目的                対象                 処理

    検索

                    自然言語                データ構造・
                     処理                 アルゴリズム
             要素技術                要素技術
 マイニング




2011/07/23          DSIRNLP #1                   5
自然言語処理
• 自然言語で記述された文章を、適当な中間表現に
  変換する
• 適当な中間表現を自然言語に変換する




2011/07/23    DSIRNLP #1   6
中間表現?
 • 文章を読むと 何らかの場景が思い浮かぶ
   文章を読むと、何らかの場景が思い浮かぶ
 • それを適当な形で表現したもの
東川さんは西川さんを殴りました。西川さんに愚弄されたからです。

                         原因
              殴る                     愚弄する
動作主                対象         動作主           対象

   東川さん        西川さん            西川さん    東川さん

 2011/07/23             DSIRNLP #1               7
東川さんは西川さんを殴りました。西川さんに愚弄されたからです。

                                            談話構造解析
                          原因

述語項構造                                       述語項構造
解析            殴る                     愚弄する      解析

 動作主               対象          動作主          対象

    東川さん       西川さん             西川さん   東川さん


                    係り受け解析

                      形態素解析

    ※中間表現は応用に応じて適当な粒度で設定する
    ※中間表現は応用に応じ 適当な粒度 設定する
 2011/07/23             DSIRNLP #1               8
解析と生成
• 中間表現への変換を解析、中間表現から自然言語への変換
  中間表現   変換を解析、中間表現 ら自然言語 変換
  を生成と呼ぶ

• 解析                   • 生成
   –   形態素解析                  – 深層生成
   –   係り受け解析                  • 内容選択
                               • 談話生成
   –   述語項構造解析
   –   照応解析                   – 表層生成
                               • 文境界決定
   –   談話構造解析
                               • 参照表現生成
                               • 語彙化



2011/07/23       DSIRNLP #1               9
自然言語処理タスクを解く
• 解析、生成を問わず、それぞれのタスクは、与えら
          ず   ぞ
  れた入力を所望の出力に変換する関数を設計し、
  該関数を計算することに帰着される
  該関数を計算する と 帰着される

•   X : 入力
                y = arg max f ( x; w)
                               x
•   Y : 出力
    Y : 出力
•   f(x; w) : パラメタ w の下で x を実数に写像する関数
•                          を最大化する
    argmaxx f(x;w) : f(x;w)を最大化する x 


2011/07/23       DSIRNLP #1             10
基本的な発想
• 無数の解候補それぞれに得点を与えて、一
  番得点が高いものを選んでくる
        今日 は いい 天気 です 。
                 y = arg max f ( x; w)
                              x
51点     名詞 助詞 形容詞 名詞 助動詞 記号
45点     名詞 助詞 名詞 名詞 助動詞 記号

40点     名詞 名詞 名詞 名詞 助動詞 記号

2011/07/23       DSIRNLP #1        11
NLP の 3 ステップ
             NLP の 3 ステップ
1. モデルを作る:この式を計算すれば問題が
   解けるという式を作る
2. パラメタを推定する:良い候補に高い得点を
   与えるように、式に含まれるパラメタを推定
   与えるように 式に含まれるパラメタを推定
   する
3. デコードする:式を機械に計算させて問題を
   解く


2011/07/23       DSIRNLP #1   12
全体像
              入力
               力                     言語知識




                   モデル               コーパス

                       パラメタ
  離散最適化

                   デコード         連続最適化


• いろんなことを勉強しないとご飯が
  食べられなくて大変
                                出力
• 今日は特にデコードについてお話
  今日は特にデコ ドについてお話

 2011/07/23        DSIRNLP #1               13
デコード
• 式(モデル)とパラメタが与えられたときに、そ
  の式を計算すること
• 自然言語処理タスクの場合は、離散的な解
  空間の中で目的関数を最大化する解を探索
  すること
• 当然、効率的に探索したい



2011/07/23   DSIRNLP #1   14
• ここからデコードのお話をします
      デ  ド お話を ます




2011/07/23   DSIRNLP #1   15
デコード
• 式(モデル)とパラメタが与えられたときに、そ
  の式を計算すること
• 自然言語処理タスクの場合は、離散的な解
  空間の中で目的関数を最大化する解を探索
  すること
• 当然、効率的に探索したい



2011/07/23   DSIRNLP #1   16
例題:品詞同定
• 形態素に分割済みの文字列の品詞を同定す
  ることを考える
         今日 は いい 天気 です 。
       名詞 助詞 形容詞 名詞 助動詞 記号



• これを例題として、3つのアプローチをお話し
   れを例題と       プ   をお話
  ます
2011/07/23     DSIRNLP #1    17
以下のモデルを仮定する
  • 1次のマルコフモデル、パラメタも推定済とする
     次     n
             デ パ  タも推定済 する
         y = arg max{∑ yoko(hi , hi +1 ) + tate(ki , ki +1 )}
 横方向       横方向の得点           i =0
 の得点
                        2                       2         4        5
     4         3                       5
始端       名詞        助詞        形容詞           名詞       助動詞       記号       終端

縦方向        4        5              4            5     3        5
の得点
         今日 は               いい 天気 です                          。    計:51点

         縦方向の得点と横方向の得点の和がこの品詞列のスコアとする
         縦方向の得点:形態素「今日」はどのくらい名詞っぽいか
         横方向の得点:「名詞」のあとに「助詞」はどのくらいあらわれやすいか
  2011/07/23                       DSIRNLP #1                          18
単純化
 • 縦得点は横得点 足
   縦得点は横得点に足してしまえる
               まえる
                       2                  2         4        5
     4        3                  5
始端       名詞       助詞       形容詞       名詞       助動詞       記号        終端

          4        5         4        5         3        5
         今日 は              いい 天気 です                     。
                                                             計:51点

                       7                            7        10
     4        7                  9        7
始端       名詞       助詞       形容詞       名詞       助動詞       記号        終端



         今日 は              いい 天気 です                     。
                                                             計:51点
 • これで問題が単純になる
 2011/07/23 DSIRNLP #1                                           19
グラフの探索
 • ルートに応じて得点がある
                                                             計:51点

                       7                                7        10
     4        7                  9            7
始端       名詞       助詞       形容詞           名詞       助動詞       記号        終端


                       5             7                           計:47点
                           名詞


         今日 は              いい 天気 です
                                  す                         。

 • 得点が最大のルートを探し出したい
 2011/07/23                  DSIRNLP #1                            20
グラフの探索
                ラ  探索
      名詞      名詞    名詞        名詞   名詞    名詞


      動詞      動詞    動詞        動詞   動詞    動詞


始端    形容詞     形容詞   形容詞      形容詞   形容詞   形容詞    終端

      助詞      助詞    助詞        助詞   助詞    助詞

      助動詞     助動詞   助動詞      助動詞   助動詞   助動詞


      記号      記号    記号        記号   記号    記号


     今日
     今        は     いい        天気
                               気    です
                                     す     。
  始端をスタ ト地点、終端を
  始端をスタート地点、終端をゴールとして、いずれかのノードを6回通過するルートの
                 ルとして、いずれかのノ ドを6回通過するル トの
  中で、一番高いスコアが得られるルートを探し出したい
 2011/07/23          DSIRNLP #1                21
全探索
• 真
  真正面から愚直に解くとどうなるか?
          直 解く どうなる
• 7つの形態素、6種類の品詞があるため、
  6^7≒28万の選び方(ルート)がありうる
   – 入力に対して指数的に選び方が増える
• 28万ルートのスコアを全て計算し、最大のス
  コアを持つルートを出力すればいい
• 20形態素の文が入力されると3 6*10^15
  20形態素の文が入力されると3.6*10^15
• さすがにちょっと無理そう
2011/07/23   DSIRNLP #1     22
大体の方針
                 動的計画法 で多項式時間に
                     落ちるか?
                                            N
                   Y
                 問題の規模は                 厳密解は不要か?
                  小さいか?

                                        Y       N
             Y         N



    動的計画法                      近似解法             整数計画法


       2                   1                    3

2011/07/23                 DSIRNLP #1                   23
近似解法
• 貪欲法
• ビームサーチ
  ビ ムサ チ




2011/07/23   DSIRNLP #1   24
貪欲法
 • 一番それっぽいものを逐次的に選んでいく方法
    番それ ぽ も を逐次的 選ん  く方法                                     計:51点
                       7                            7        10
     4        7                  9        7
始端       名詞       助詞       形容詞       名詞       助動詞       記号        終端

 3       動詞       名詞
              5
 • ただし最適な解を発見 きる保証はな
   ただし最適な解を発見できる保証はない
                                                             計:51点
                       7   形容詞   9                           10
     4        7                           7         7
始端       名詞       助詞                 名詞       助動詞       記号        終端
                           名詞
                       9            5
                                                        計:49点
 2011/07/23                  DSIRNLP #1                       25
ビームサーチ
 • 上位k個の仮説を保持しながら行う幅優先探索
 • 保持する仮説数をビーム幅という




始端




 • プライオリティキューにスコアを優先度として、そこま
   での仮説(ル ト)を放り込んでいく
   での仮説(ルート)を放り込んでいく
 2011/07/23    DSIRNLP #1   26
ビームサーチ
 • 上位k個の仮説を保持しながら行う幅優先探索
 • 保持する仮説数をビーム幅という

              名詞
     4
始端   3        動詞

     2        形容詞
              …




 • プライオリティキューにスコアを優先度として、そこま
   での仮説(ル ト)を放り込んでいく
   での仮説(ルート)を放り込んでいく
 2011/07/23          DSIRNLP #1   27
ビームサーチ
 • 上位k個の仮説を保持しながら行う幅優先探索
 • 保持する仮説数をビーム幅という

              名詞
     4
始端   3        動詞

     2
              ×
              形容詞
              …




 • プライオリティキューにスコアを優先度として、そこま
   での仮説(ル ト)を放り込んでいく
   での仮説(ルート)を放り込んでいく
 2011/07/23          DSIRNLP #1   28
ビームサーチ
 • 上位k個の仮説を保持しながら行う幅優先探索
 • 保持する仮説数をビーム幅という
                             名詞
                    4+7
              名詞    4+5      動詞
     4              4+4     形容詞

始端   3        動詞
                    3+9
                             形容詞
     2
              ×
              形容詞
                    3+5      助詞
                              …
              …




 • プライオリティキューにスコアを優先度として、そこま
   での仮説(ル ト)を放り込んでいく
   での仮説(ルート)を放り込んでいく
 2011/07/23               DSIRNLP #1   29
ビームサーチ
 • 上位k個の仮説を保持しながら行う幅優先探索
 • 保持する仮説数をビーム幅という
                             名詞
                    4+7
              名詞    4+5      ×
                             動詞
     4              4+4      ×
                            形容詞

始端   3        動詞
                    3+9
                             形容詞
     2
              ×
              形容詞
                    3+5
                             ×
                             助詞
                              …
              …




 • プライオリティキューにスコアを優先度として、そこま
   での仮説(ル ト)を放り込んでいく
   での仮説(ルート)を放り込んでいく
 2011/07/23               DSIRNLP #1   30
ビームサーチ
 • 上位k個の仮説を保持しながら行う幅優先探索
 • 保持する仮説数をビーム幅という
                             名詞        動詞
                    4+7
              名詞    4+5      ×
                             動詞        助詞
     4              4+4      ×




                                       …
                            形容詞

始端   3        動詞
                    3+9                助動詞
                             形容詞
     2
              ×
              形容詞
                    3+5
                             ×
                             助詞
                                       名詞
              …




                              …




                                       …
                                       …
 • プライオリティキューにスコアを優先度として、そこま
   での仮説(ル ト)を放り込んでいく
   での仮説(ルート)を放り込んでいく
 2011/07/23               DSIRNLP #1         31
大体の方針
                 動的計画法 で多項式時間に
                     落ちるか?
                                            N
                   Y
                 問題の規模は                 厳密解は不要か?
                  小さいか?

                                        Y       N
             Y         N



    動的計画法                      近似解法             整数計画法


       2                   1                    3

2011/07/23                 DSIRNLP #1                   32
動的計画法
• 実は、ある種の性質をもった問題(漸化式で
  書ける問題) あれ 、ちょ
  書ける問題)であれば、ちょっとした工夫で計      夫 計
  算量を減らせる
• その方法(枠組)を動的計画法 (Dynamic
                        (Dynamic 
  programming (DP) )という
• この問題の場合、指数的な計算量(品詞数^
  形態素数)を線形の計算量(形態素数 (品詞
  形態素数)を線形の計算量(形態素数*(品詞
  数^2))まで減らすことができる

2011/07/23    DSIRNLP #1        33
ゴールから眺めてみる
• 単純化 ため品詞 種
  単純化のため品詞2種(A,B)、3形態素(1,2,3)とする
                    態素       とする

              A       A           A


    始端                                   終端


              B       B           B


              形態素
              形態素1   形態素
                     形態素2         形態素
                                  形態素3




2011/07/23           DSIRNLP #1               34
ゴールから眺めてみる
• 単純化 ため品詞 種
  単純化のため品詞2種(A,B)、3形態素(1,2,3)とする
                    態素       とする

              A       A           A

                                              15
    始端                                   終端


              B       B           B


              形態素
              形態素1   形態素
                     形態素2         形態素
                                  形態素3




2011/07/23           DSIRNLP #1                    35
ゴールから眺めてみる
• 単純化 ため品詞 種
  単純化のため品詞2種(A,B)、3形態素(1,2,3)とする
                    態素       とする
                                  12
              A       A           A
                                         3
                                                  15
    始端                                       終端


              B       B           B      3

                                    11
              形態素
              形態素1   形態素
                     形態素2         形態素
                                  形態素3

• 終端は、単に、A、Bまでのルートの最大のスコアが
  わかればよい
2011/07/23           DSIRNLP #1                        36
ゴールから眺めてみる
• 単純化 ため品詞 種
  単純化のため品詞2種(A,B)、3形態素(1,2,3)とする
                    態素       とする
                                  12
              A       A           A
                                         3
                                                  15
    始端                                       終端


              B       B           B      3

                                    11
              形態素
              形態素1   形態素
                     形態素2         形態素
                                  形態素3

• 終端は、単に、A、Bまでのルートの最大のスコアが
  わかればよい
2011/07/23           DSIRNLP #1                        37
ゴールから眺めてみる
• ゴ
  ゴールが3番目のAだとしたら……?
     が 番   だ  た
                                  12
              A       A           A


    始端


              B       B


              形態素
              形態素1   形態素
                     形態素2         形態素
                                  形態素3




2011/07/23           DSIRNLP #1          38
ゴールから眺めてみる
• ゴ
  ゴールが3番目のAだとしたら……?
     が 番   だ  た
                     8             12
                           3
              A       A            A


    始端
                               4

              B       B
                      8
              形態素
              形態素1   形態素
                     形態素2          形態素
                                   形態素3




2011/07/23           DSIRNLP #1           39
ゴールから眺めてみる
• ゴ
  ゴールが3番目のAだとしたら……?
     が 番   だ  た
                     8             12
                           3
              A       A            A


    始端
                               4

              B       B
                      8
              形態素
              形態素1   形態素
                     形態素2          形態素
                                   形態素3




2011/07/23           DSIRNLP #1           40
ゴールから眺めてみる
• ゴ
  ゴールが2番目のBだとしたら……?
     が 番   だ  た

              A


    始端


              B       B
                      8
              形態素
              形態素1   形態素
                     形態素2         形態素
                                  形態素3




2011/07/23           DSIRNLP #1          41
ゴールから眺めてみる
• ゴ
  ゴールが2番目のBだとしたら……?
     が 番   だ  た
              3
              A


    始端               5


              B           B
                     3
               4          8
              形態素
              形態素1       形態素
                         形態素2         形態素
                                      形態素3




2011/07/23               DSIRNLP #1          42
ゴールから眺めてみる
• ゴ
  ゴールが2番目のBだとしたら……?
     が 番   だ  た
              3
              A


    始端               5


              B           B
                     3
               4          8
              形態素
              形態素1       形態素
                         形態素2         形態素
                                      形態素3




2011/07/23               DSIRNLP #1          43
ゴールから眺めてみる
• ゴ
  ゴールが1番目のAだとしたら……?
     が 番   だ  た
              3
              A


    始端




              形態素
              形態素1   形態素
                     形態素2         形態素
                                  形態素3




2011/07/23           DSIRNLP #1          44
ゴールから眺めてみる
• ゴ
  ゴールが1番目のAだとしたら……?
     が 番   だ  た
                 3
                 A
             3

    始端




                 形態素
                 形態素1   形態素
                        形態素2         形態素
                                     形態素3




2011/07/23              DSIRNLP #1          45
マルコフ性につけ込む
• 一つ前の形態素に至るまでの最大のスコア
   判   れ 、自分ま    ア 最大値
  が判っていれば、自分までのスコアの最大値
  がわかる
• 一つ前の形態素に至るまでの最大のスコア
   つ前の形態素に至るまでの最大のスコア
  は、更にその一つ前の形態素のスコアが判
  ればよい
• 始点はスコア0と判明しているので、始点から
  始点はス ア0と判明しているので、始点から
  順繰りに計算できる

2011/07/23      DSIRNLP #1   46
探索
• まず始端
  まず始端からスタート
         タ
                 3
                 A
             3

    始端

             4
                 B
                  4
                 形態素
                 形態素1   形態素
                        形態素2         形態素
                                     形態素3




2011/07/23              DSIRNLP #1          47
探索
• A、Bともに始端から来る(あたりまえ)
      も 始端  来る あた ま
                 3
                 A
             3

    始端

             4
                 B
                  4
                 形態素
                 形態素1   形態素
                        形態素2         形態素
                                     形態素3




2011/07/23              DSIRNLP #1          48
探索
• 形態素2のAに注目
   態素    注
                 3
                        5
                 A               A
             3
                            3
    始端

             4
                 B
                  4
                 形態素
                 形態素1           形態素
                                形態素2         形態素
                                             形態素3




2011/07/23                      DSIRNLP #1          49
探索
• 形態素2のAに注目
   態素    注
                 3              8
                        5
                 A               A
             3
                            3
    始端

             4
                 B
                  4
                 形態素
                 形態素1           形態素
                                形態素2         形態素
                                             形態素3




2011/07/23                      DSIRNLP #1          50
探索
• 形態素2のBに注目
   態素    注
                 3              8
                        5
                 A               A
             3
                            3
    始端
                            5
             4
                 B               B
                        3
                  4
                 形態素
                 形態素1           形態素
                                形態素2         形態素
                                             形態素3




2011/07/23                      DSIRNLP #1          51
探索
• 形態素2のBに注目
   態素    注
                 3              8
                        5
                 A               A
             3
                            3
    始端
                            5
             4
                 B               B
                        3
                  4              8
                 形態素
                 形態素1           形態素
                                形態素2         形態素
                                             形態素3




2011/07/23                      DSIRNLP #1          52
探索
• 形態素3のAに注目
   態素    注
                 3              8
                        5             3
                 A               A            A
             3                            4
                            3
    始端
                            5
             4
                 B               B
                        3
                  4              8
                 形態素
                 形態素1           形態素
                                形態素2          形態素
                                              形態素3




2011/07/23                      DSIRNLP #1           53
探索
• 形態素3のAに注目
   態素    注
                 3              8             12
                        5             3
                 A               A            A
             3                            4
                            3
    始端
                            5
             4
                 B               B
                        3
                  4              8
                 形態素
                 形態素1           形態素
                                形態素2          形態素
                                              形態素3




2011/07/23                      DSIRNLP #1           54
探索
• 形態素3のBに注目
   態素    注
                 3              8                 12
                        5             3
                 A               A                A
             3                                4
                            3
    始端
                            5                 2
             4
                 B               B                B
                        3                 3
                  4              8
                 形態素
                 形態素1           形態素
                                形態素2              形態素
                                                  形態素3




2011/07/23                      DSIRNLP #1               55
探索
• 形態素3のBに注目
   態素    注
                 3              8                 12
                        5             3
                 A               A                A
             3                                4
                            3
    始端
                            5                 2
             4
                 B               B                B
                        3                 3
                  4              8                 11
                 形態素
                 形態素1           形態素
                                形態素2              形態素
                                                  形態素3




2011/07/23                      DSIRNLP #1               56
探索
• 終端 注
  終端に注目
                 3              8                 12
                        5             3
                 A               A                A
             3                                4          3
                            3
    始端                                                       終端
                            5                 2
             4                                           3
                 B               B                B
                        3                 3
                  4              8                 11
                 形態素
                 形態素1           形態素
                                形態素2              形態素
                                                  形態素3




2011/07/23                      DSIRNLP #1                        57
探索
• 終端 注
  終端に注目
                 3              8                 12
                        5             3
                 A               A                A
             3                                4          3
                            3
    始端                                                       終端
                            5                 2
             4                                           3
                 B               B                B
                        3                 3
                  4              8                 11
                 形態素
                 形態素1           形態素
                                形態素2              形態素
                                                  形態素3




2011/07/23                      DSIRNLP #1                        58
計算量
• 各
  各ステップで必要な計算量は 品詞数^2
      プ 必 な計算量    詞数
• 形態素の数だけそれを繰り返すため、合計
  (品詞数^2)*形態素数
• ナイ ブな計算が(品詞数 形態素数)だ た
  ナイーブな計算が(品詞数^形態素数)だった
  ことを考えると、劇的に速くなる
   – 指数→線形




2011/07/23   DSIRNLP #1   59
DP の実装:DP 表を埋めるコードを書く
   DP の実装:DP 表を埋めるコードを書く
                  3               8                 12
                        5               3
                  A               A                 A
             3                                  4          3
                             3
    始端                                                           終端
                             5                  2
             4                                             3
                  B               B                 B
                         3                  3
                  4               8                  11
                 形態素1            形態素2               形態素3
                      形態素1            形態素2              形態素3
       品詞A            スコア:3  スコア:8                      スコア:12
                      一つ前:始点 一つ前:A                      一つ前:B
       品詞B            スコア:4  スコア:8                      スコア:11
                      一つ前:始点 一つ前:A                      一つ前:B
                 • ヘンゼルとグレーテル=探索の寓話
                 • ポイ タを失うと道 迷う
                   ポインタを失うと道に迷う
2011/07/23                       DSIRNLP #1                           60
動的計画法が適用できれば
    必ず多項式時間に落ちるのか?
• No.
• 動的計画法が適用できるが、多項式のオーダまで
  計算量が落ちない問題がある
• 例:巡回セールスマン問題
  例:巡回セ ルスマン問題
• Held‐Karp Algorithms (Held+ SIAM62)で階乗のオー
  ダが指数まで落ちるが、まだ指数オーダなので、更
  ダが指数まで落ちるが まだ指数オーダなので 更
  にビームサーチと組み合わせるなどする
• SMT のデコ ド (Till
       のデコード (Tillmann+ CL03)等で事例がある
                           + CL03)等で事例がある


2011/07/23        DSIRNLP #1              61
DP + 枝刈り
             DP + 枝刈り
• 品詞 定 品詞数は
  品詞同定:品詞数はせいぜい100くらいなので、各ス
             ぜ     くら な  各
  テップでの演算はせいぜい10000回
• 音声認識:品詞ではなく単語を同定するため、数万(
  大語彙)の単語数を考えると、計算は何と1億回以
  上……
• さすがにつらくなってくるため、いろんな方法で枝刈
  り
• 近年はWFSTを用いて探索空間を効率的に表現


2011/07/23     DSIRNLP #1   62
大体の方針
                 動的計画法 で多項式時間に
                     落ちるか?
                                            N
                   Y
                 問題の規模は                 厳密解は不要か?
                  小さいか?

                                        Y       N
             Y         N



    動的計画法                      近似解法             整数計画法


       2                   1                    3

2011/07/23                 DSIRNLP #1                   63
整数計画法
• 離散的な解空間を持つ最適化問題を解く枠
  組
• まず整数条件がない場合:線形計画法のお
  話をします
• そのあと整数条件がある場合:整数計画法の
  お話をします



2011/07/23    DSIRNLP #1   64
Linear Programming (LP)
             Linear Programming (LP)
•   線形計画
•   形式的には以下のような形をしている問題を解く方法を線形計画法とい
    う
•   目的関数が非線形なときは非線形計画(Nonlinear Programming, NLP)と
    目的関数が非線形なときは非線形計画(Nonlinear Programming NLP)と
    いい、SVMのパラメタ推定など(凸2次計画)
             T
    min c x       目的関数
      x
                           xを解(解ベクトル)という
    s.t. Ax ≤ b   制約
                           cは係数
                         Aは行列、bはベクトル


             制約を満たしつつ、目的関数を最小化する
             ベクトルxを探すような問題=線形計画問題
                それを解く方法=線形計画法
2011/07/23                 DSIRNLP #1            65
例
•   以下のような問題を考える
•   max y=x1+2x2
•   s.t. x <=5.7, x <=3.2, x >=0, x
    s t x1<=5 7 x2<=3 2 x1>=0 x2>=0               cT       x       目的関数
                                                    ⎛ x1 ⎞
•   先程の記法で書くと、
                                    max y   = (1 2 )⎜ ⎟ = x1 + 2 x2
                                                    ⎜x ⎟
    (maxにして)                        x1 , x2
                                                    ⎝ 2⎠
                                       ⎛1 0⎞               ⎛ 5. 7 ⎞
                                       ⎜         ⎟         ⎜ ⎟      制約
•   解はx1=5 7 x2=3 2
        =5.7, x =3.2                   ⎜ 0 1 ⎟⎛ x1 ⎞ ⎜ 3.2 ⎟
                                   s.t.⎜          ⎜ ⎟≤⎜ ⎟
                                                  ⎜x ⎟
                                                                    連立方程式
•   というのはすぐわかる                           − 1 0 ⎟⎝ 2 ⎠         0     になっている
                                       ⎜         ⎟         ⎜ ⎟
                                       ⎜ 0 − 1⎟            ⎜ 0 ⎟
                                       ⎝         ⎠         ⎝ ⎠
                                              A        x       b

  線形計画法は目的関数に含まれる変数(x
  線形計画法は目的関数に含まれる変数( 1、x2)を操作して
                         )を操作して、
   制約を満たす、最良の変数の組み合わせを探せば解ける 66
2011/07/23    DSIRNLP #1
図で考える
 • 目的関数の変数の値域(制約によって定義される)によって
       数 変数 値    約    定義
   平面(多角形、xが3次元なら空間(多面体))が定義される
   (実行可能領域という)       増加
x2
             制約x2<=3.2
                                       y=x1+2x2なので 右上に行く
                                                なので、右上に行く
 3
                                       ほどyの値が高い
                                       つまり小数解はここ
 2                                     x1=5.7, x2=3.2
                                          5.7,    3.2
              実行可能領域
                                             整数解は
     1                                       x1とx2が共に
                                 制約x1<=5.7   整数の点(青点)
                                             なのでx1=5, x2=3
     0   1    2    3     4   5    x1
             実行可能領域内の点として解は定義される
         一番よい点(最適解)は実行可能領域の境界上のどこかにある 67
 2011/07/23         DSIRNLP #1
単体法 (simplex method)
             (simplex method)
• 線 計 問題を解く方法
  線形計画問題を解く方法
• 必ず多項式時間で解けると証明されているわけで
  はないが、実用上高速に問題を解けることが多い
• 可能領域のある頂点を出発点として、境界の辺に
  沿って目的関数を増やす方向に解を探す




2011/07/23      DSIRNLP #1      68
z
                         図でみると:
                                  max 4x+3y+2z
                 3                s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3;
                                  x+y+z <= 8;




                     0
                          4
                              x
      3
y
     この三角形の面が
       x+y+z = 8



    2011/07/23            DSIRNLP #1                                    69
z
                         図でみると:
                                  max 4x+3y+2z
                 3                s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3;
                                  x+y+z <= 8;

                                    1. x=0, y=0, z=0 からスタート
                                       傾きが大きい x を制約にぶつかるまで
                                       増やす
                     0
                          4
                              x
      3
y
     この三角形の面が
       x+y+z = 8



    2011/07/23            DSIRNLP #1                                    70
z
                         図でみると:
                                  max 4x+3y+2z
                 3                s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3;
                                  x+y+z <= 8;

                                    1. x=0, y=0, z=0 からスタート
                                       傾きが大きい x を制約にぶつかるまで
                                       増やす
                     0              2. 次に傾きが大きい y を制約にぶつかる
                                       まで増やす
                          4
                              x
      3
y
     この三角形の面が
       x+y+z = 8



    2011/07/23            DSIRNLP #1                                    71
z
                         図でみると:
                                  max 4x+3y+2z
                 3                s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3;
                                  x+y+z <= 8;

                                    1. x=0, y=0, z=0 からスタート
                                       傾きが大きい x を制約にぶつかるまで
                                       増やす
                     0              2. 次に傾きが大きい y を制約にぶつかる
                                       まで増やす
                          4         3. 次に傾きが大きい z を制約にぶつかる
                                       次 傾き 大き          を制約 ぶ る
                              x        まで増やす
      3
y
     この三角形の面が
       x+y+z = 8



    2011/07/23            DSIRNLP #1                                    72
z
                         図でみると:
                                  max 4x+3y+2z
                 3                s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3;
                                  x+y+z <= 8;

                                    1. x=0, y=0, z=0 からスタート
                                       傾きが大きい x を制約にぶつかるまで
                                       増やす
                     0              2. 次に傾きが大きい y を制約にぶつかる
                                       まで増やす
                          4         3. 次に傾きが大きい z を制約にぶつかる
                                       次 傾き 大き            を制約 ぶ る
                              x        まで増やす
      3
                                    4. x=4, y=3, z=1 で 27
y
     この三角形の面が
       x+y+z = 8



    2011/07/23            DSIRNLP #1                                    73
z
                         図でみると:
                                       max 4x+3y+2z
                         25            s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3;
      23         3
                                       x+y+z <= 8;

                                         1. x=0, y=0, z=0 からスタート
                                            傾きが大きい x を制約にぶつかるまで
                                            増やす
                     0                   2. 次に傾きが大きい y を制約にぶつかる
                                            まで増やす
                              4          3. 次に傾きが大きい z を制約にぶつかる
                                            次 傾き 大き            を制約 ぶ る
                                   x        まで増やす
      3
                                         4. x=4, y=3, z=1 で 27
y
     この三角形の面が
       x+y+z = 8              27



    2011/07/23                DSIRNLP #1                                     74
z
                         図でみると:
                                       max 4x+3y+2z
                         25            s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3;
      23         3
                                       x+y+z <= 8;

                                         1. x=0, y=0, z=0 からスタート
                                            傾きが大きい x を制約にぶつかるまで
                                            増やす
                     0                   2. 次に傾きが大きい y を制約にぶつかる
                                            まで増やす
                              4          3. 次に傾きが大きい z を制約にぶつかる
                                            次 傾き 大き            を制約 ぶ る
                                   x        まで増やす
      3
                                         4. x=4, y=3, z=1 で 27
y
     この三角形の面が
       x+y+z = 8                         ポイント:n変数の問題はn次元空間の探
                              27         索となり、最適解は必ずn個の制約面が交
                                         わるところ(頂点)にある

    2011/07/23                DSIRNLP #1                                     75
z
                               図でみると:
                                                  max 4x+3y+2z
                                    25            s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3;
      23         3
                                                  x+y+z <= 8;

                                                    1. x=0, y=0, z=0 からスタート
                                                       傾きが大きい x を制約にぶつかるまで
                                                       増やす
                     0                              2. 次に傾きが大きい y を制約にぶつかる
                                                       まで増やす
                                         4          3. 次に傾きが大きい z を制約にぶつかる
                                                       次 傾き 大き            を制約 ぶ る
                                              x        まで増やす
      3
                                                    4. x=4, y=3, z=1 で 27
y
     この三角形の面が
       x+y+z = 8                                    ポイント:n変数の問題はn次元空間の探
                                         27         索となり、最適解は必ずn個の制約面が交
          x <= 4; y <= 3; x + y + z <= 8 の          わるところ(頂点)にある
          3つの制約面に阻まれている
    2011/07/23                           DSIRNLP #1                                     76
スラック変数
                                                     max 4x+3y+2z
max 4x+3y+2z                                         s.t. 0<= x; 0<= y; 0<=z;
s.t. 0<= <
s t 0< x <= 4; 0<= y <= 3; 0< z <= 3;
               0<    <     0<= <                     x <= 4; y <= 3; z <= 3;
x+y+z <= 8;                                          x+y+z <= 8;

                               max 4x + 3y + 2z
                               s.t. 0<= x; 0<= y; 0<=z;
                               x + λ1 = 4; y + λ2 = 3; z + λ3 = 3;
                               x + y + z + λ4 = 8;
 スラック変数ラムダλを導入
  ラック変数ラ ダ を導入
                               0<= λ1 0<= λ2 0<= λ3; 0<=
                               0 λ1; 0 λ2; 0 λ3 0 λ4




 2011/07/23                      DSIRNLP #1                                     77
z
                   スラック変数の意味
                           max 4x + 3y + 2z
                                       y
                           s.t. 0<= x; 0<= y; 0<=z;
                           x + λ1 = 4; y + λ2 = 3; z + λ3 = 3;
                           x + y + z + λ4 = 8;
                           0<= λ1; 0<= λ2; 0<= λ3; 0<= λ4




                       x

y




    2011/07/23       DSIRNLP #1                                  78
z
                   スラック変数の意味
                                          max 4x + 3y + 2z
                                                      y
                                          s.t. 0<= x; 0<= y; 0<=z;
     0 <=λ3                               x + λ1 = 4; y + λ2 = 3; z + λ3 = 3;
                                          x + y + z + λ4 = 8;
                    0<=y                  0<= λ1; 0<= λ2; 0<= λ3; 0<= λ4


        0<=x
        0<          0 <=λ4            解空間(多面体の中)を形作る7つの面それぞれが
                                      上の 0<= x,y,z,λ1-4 に対応している

                 0<=z
                 0<
                                      x

y                            0 <=λ1
        0 <=λ2




    2011/07/23                    DSIRNLP #1                                    79
z
                   スラック変数の意味
                                           max 4x + 3y + 2z
                                                       y
                                           s.t. 0<= x; 0<= y; 0<=z;
     0 <=λ3                                x + λ1 = 4; y + λ2 = 3; z + λ3 = 3;
                                           x + y + z + λ4 = 8;
                    0<=y                   0<= λ1; 0<= λ2; 0<= λ3; 0<= λ4


        0<=x
        0<          0 <=λ4      解空間(多面体の内側)を形作る7つの面それぞれが
                                上の 0<= x,y,z,λ1-4 に対応している

                 0<=z
                 0<
                                      x

y                            0 <=λ1       ポイント:解は、この7変数のうち
        0 <=λ2
                                          3つが0になっている


    2011/07/23                    DSIRNLP #1                                     80
スラック変数
                                                       max 4x+3y+2z
  max 4x+3y+2z                                         s.t. 0<= x; 0<= y; 0<=z;
  s.t. 0<= <
  s t 0< x <= 4; 0<= y <= 3; 0< z <= 3;
                 0<    <     0<= <                     x <= 4; y <= 3; z <= 3;
  x+y+z <= 8;                                          x+y+z <= 8;

                                 max 4x + 3y + 2z
                                 s.t. 0<= x; 0<= y; 0<=z;
                                 x + λ1 = 4; y + λ2 = 3; z + λ3 = 3;
                                 x + y + z + λ4 = 8;
   スラック変数ラムダλを導入
    ラック変数ラ ダ を導入
                                 0<= λ1 0<= λ2 0<= λ3; 0<=
                                 0 λ1; 0 λ2; 0 λ3 0 λ4

        max 4x + 3y + 2z
        s.t. 0<= x; 0<= y; 0<=z;
        λ1 = 4 - x; λ2 = 3 - y; λ3 = 3 - z;
スラック変数を λ4 = 8 - x - y - z;
左辺に移項   0<= λ1 0<= λ2 0<= λ3; 0<=
        0 λ1; 0 λ2; 0 λ3 0 λ4

    2011/07/23                     DSIRNLP #1                                     81
シンプレックス表
      実装上は、シンプレックス表を次々と書き換えて求解する
max 4x + 3y + 2z                                  この3つの値が0、すなわち
                                                  この3つの値が0 すなわち
s.t. 0<= x; 0<= y; 0<=z;                          x,y,zは0以上という制約にひっかかっている
λ1 = 4 - x; λ2 = 3 - y; λ3 = 3 - z;
λ4 = 8 - x - y - z;
                  z                                          切片 x     y    z 
0<= λ1; 0<= λ2; 0<= λ3; 0<= λ4
                                      ひ      こ    f(x,y,z)   0  4     3    2
                                      っか     ちら
                                                  λ1 
                                                  λ1         4   ‐1
                                                                  1
                                      か      の    λ2         3        ‐1
                                      っ      制
                                      てな          λ3         3             ‐1
                                        い    約
                                             に    λ4         8   ‐1   ‐1   ‐1
                                             は
                                                  現在は原点(       ,y , )におり、
                                                  現在は原点(x=0,y=0,z=0)におり、
                                                  スコアは0(f(x,y,z)の行の切片)ということを
                                                  シンプレックス表で表現できる
                                              x

y
    2011/07/23                              DSIRNLP #1                          82
z   探索方向の決定
x,y,z いずれ
                                         切片 x
                                            x     y    z 
                                                       z
の方向に移
動するか?                         f(x,y,z)   0  4     3    2
                              λ1         4   ‐1   0    0
                              λ2         3   0    ‐1   0
                              λ3         3   0    0    ‐1
                            λ4 
                            λ4    8   ‐1
                                       1 ‐1
                                          1  ‐1
                                              1
                         シンプレックス表から、
                         • xは4まで増やせる(4まで増やすとλ1が
                        x 0となり、制約に阻まれる)
                         • yは3まで増やせる(3まで増やすとλ2が
y                          0となり制約に阻まれる)
                         • zも3まで増やせる(3まで増やすとλ3が0
                            も3まで増やせる(3まで増やすと 3が0
                           となり制約に阻まれる)
     x,y,zそれぞれの係数から、xは4まで増やすことによって16、yは3まで増やすことに
     よって9 zは3まで増やすことによって6 目的関数の値が増える→xを増やす
     よって9、zは3まで増やすことによって6、目的関数の値が増える→xを増やす

    2011/07/23         DSIRNLP #1                           83
z   ピボット要素の特定
                  この‐1の要素を
                   の 1の要素を                切片 x
                                             x     y    z 
                                                        z
                  ピボットと呼ぶ      f(x,y,z)   0  4     3    2
                               λ1         4   ‐1   0    0
                               λ2         3   0    ‐1   0
                               λ3         3   0    0    ‐1
                               λ4 
                               λ4         8   ‐1
                                               1   ‐1
                                                    1   ‐1
                                                         1
                       • xを増やしたとき、λ1の行の制約と、λ4
                         の行の制約がxの増加を阻む
                     x • λ1の行の制約に先にひっかかる
                         λ1の行の制約に先にひっかかる:
             0 <=λ1の
y            制約に阻まれる 切片が4、係数が-1であるため、xを4ま
                         で増やしたところで制約にぶつかる
                       • この行と列の交わる場所の要素を
                         ピボット要素と呼ぶ
幾何的には、x=4の平面にまずぶつかる
ちなみにλ4の制約は上の図の 三角形に直方体を切り取っている面に相当(p 78)参照
ちなみにλ4の制約は上の図の、三角形に直方体を切り取っている面に相当(p.78)参照

2011/07/23              DSIRNLP #1                           84
シンプレックス表の書き換え
           z
                                                      切片 x     y    z 
                                           f(x,y,z)
                                           f(     )   0  4     3    2
                                           λ1         4   ‐1   0    0
     x=0, y=0, z=0
                                           λ2         3   0    ‐1   0
                                           λ3         3   0    0    ‐1
                     λ1=0, y=0, z=0
                                           λ4         8   ‐1   ‐1   ‐1

                                            ピボット

                                 • λ1とxを入れ替える
                                      x
                                 • Xをλ1で表す(λ1の行のxを左辺に移項):
                         0 <=λ1の   λ1 = 4 - x → x = 4 - λ1
y
                         制約に阻まれる • f(x y z) に上式を代入:
                         制約 阻      f(x,y,z)
                                   f = 4x + 3y + 2z = 4(4-λ1) + 3y + 2z
                                   = 16 – 4λ1 + 3y + 2z
                                 • λ4の行にも代入
                                      の行 も代入
                                   λ4= 4 + λ1 - y - z
    2011/07/23                        DSIRNLP #1                         85
シンプレックス表の書き換え
           切片 x     y    z               • λ1の行とxの列を入れ替える
f(x,y,z)   0  4     3    2               • Xをλ1で表す(λ1の行のxを左辺に移項):
                                           λ1 = 4 - x → x = 4 - λ1
λ1         4   ‐1   0    0
                                         • f(x,y,z) に上式を代入:
λ2 
λ2         3   0    ‐1
                     1   0                 f = 4x + 3y + 2z = 4(4-λ1) + 3y + 2z
λ3         3   0    0    ‐1                f = 16 – 4λ1 + 3y + 2z
λ4         8   ‐1   ‐1   ‐1              • λ4の行にも代入
                                           λ4= 4 + λ1 - y - z

                                             切片 λ1       y     z 
                              f(x,y,z)       16 ‐4       3     2
                              x              4     ‐1    0     0
                              λ2 
                              λ2             3     0     ‐1
                                                          1    0
                              λ3             3     0     0     ‐1
                              λ4             4     1     ‐1    ‐1


2011/07/23                    DSIRNLP #1                                  86
掃き出し法
     • 計算機では掃き出す法を使って行列を書き換える
            切片            x         y          z    • λ1の行をc倍してλ4の行に足し、λ4のx列の要素を0にす
f(x,y,z)        0         4         3         2       ることを考える
      λ1 
      λ         4        ‐1         0         0
                                                    • x列の係数から、-1倍して足せば良いことがわかる
                                                      x列の係数から、 1倍して足せば良いことがわかる
      λ2        3         0         ‐1        0
                                                         • -1 = -(-1/-1)
                                                    • λ4 - λ1= 8 – x – y – z + (-1(4 – x)) = 4 – y – z
      λ3        3         0         0         ‐1
                                                    • λ4 = 4 + λ1 – y – z
      λ4 
      λ         8        ‐1         ‐1        ‐1

                                                    • 同様にf(x,y,z)の行も掃き出す
            切片      λ1         y         z          • X列の係数から、4倍して足せばいいことがわかる
f(x,y,z) 16         ‐4         3         2               • 4 = -(4/-1)
x           4       ‐1         0         0          • f + 4λ1 = 4x + 3y + 2z + 4 (4 – x) = 16 + 3y + 2z
λ2          3       0          ‐1        0          • f = 16 – 4λ1 + 3y + 2z
λ3          3       0          0         ‐1
λ4          4       1          ‐1        ‐1
                                                    • λ1の行はピボット要素の符号を反転させたもので割る(単
                                                      にλ1とxを入れ替えるだけなので)
                                                    • λ1 = 4 – x → x = 4 – λ1

     2011/07/23                                             DSIRNLP #1                                    87
図でみると
        z                                    切片 x     y    z 
                                  f(x,y,z)   0  4     3    2
                                  λ1         4   ‐1   0    0
                                  λ2 
                                  λ2         3   0    ‐1   0
                 x = 0, y = 0,    λ3         3   0    0    ‐1
                     z = 0        λ4         8   ‐1   ‐1   ‐1
             x
y
        z
                                             切片 λ1
                                                λ1    y     z 
                                                            z
                                  f(x,y,z)   16 ‐4    3     2
                                  x          4   ‐1   0     0
                 λ1 = 0, y = 0,   λ2         3   0    ‐1    0
                     z = 0        λ3         3   0    0     ‐1
             x                    λ4 
                                  λ4         4   1    ‐1    ‐1
y
2011/07/23             DSIRNLP #1                               88
単体法のアルゴリズム
1. ピボ
   ピボット要素を見つける
        素を   る
   – 列の要素(先の例ではx,y,z)の係数、制約からど
     列 要素(先 例 は ,y, ) 係数、制約 ら
     の変数の値をどれだけを増やせば一番目的関
     数 値 増 る 調 る
     数の値が増えるか調べる
   – 値がこれ以上増やせなければおしまい!
2. 掃き出し法を使ってシンプレックス表を書き
2 掃き出し法を使 てシンプレ クス表を書き
   換える
3. 1に戻る(シンプル!)

2011/07/23      DSIRNLP #1   89
整数計画問題
   (Integer Linear Programming Problem)
• 整数計画問題
• 解が取り得る値が整数(さっきの青点)である線形計画問題
   – 特に解が取り得る値が2値(0か1)を0‐1整数計画問題という
     特に解が取り得る値が2値(0か1)を0 1整数計画問題という
• NLPへの応用
   – 最小全域木:Dependency Parsing (Riedel+ EMNLP06)(Martins+ 
     ACL09)
   – ナップサック問題:自動要約(McDonald+ ECIR07) (Takamura+ EACL09)
   – 巡回セ ルスマン問題 SMT(G
     巡回セールスマン問題:SMT(Germann+ ACL01)(Zaslavskiy+ ACL09)、
                                       ACL01)(Z l ki ACL09)
     Sentence Ordering(Althaus+ ACL04)
   – などなど

             言語処理タスクの解ベクトルは整数
              →整数計画問題として定式化
2011/07/23               DSIRNLP #1                      90
凸包(Convex hull)
         凸包(Convex hull)
  • 整数条件下での実行可能領域を考える           ※ただし凸包
                                を求めるのは
                                難しい
                     制約     凸包


                                ポイント:
                                整数解<=小数解
                                が必ず成立




           与えられた点集合を含む最小の多面体
2011/07/23    (2次元だと多角形)=凸包
                   DSIRNLP #1       91
線形計画緩和 (Linear Programming Relaxation)
       (Linear Programming Relaxation)

• 逆に、整数計画問題から整数条件を取り除くと、問
  題が緩和される(易しくなる)
• このことを線形計画緩和(relaxation)という
• 緩和問題の最適解=元問題の最適解のことがある
  緩和問題の最適解 元問題の最適解のことがある
• また、一般に小数解の近傍を探せば整数解がある
  →緩和して問題を簡単にして解ける場合がある



             線形計画問題を解く際のテクニックの つ
             線形計画問題を解く際のテクニックの一つ
2011/07/23          DSIRNLP #1       92
品詞同定を整数計画法で表現
      3  8                                        12
                        5             3
                 A               A                A
             3                                4          3
                            3
    始端                                                       終端
                            5                 2
             4                                           3
                 B               B                B
                        3                 3
                  4              8                 11
                 形態素1           形態素2              形態素3




2011/07/23                      DSIRNLP #1                        93
品詞同定を整数計画法で表現
      3  8                                          12
                          5               3
                   A     x2         A    x6         A
              3                                4          3
                        x3     3        x7
             x0                                          x10
    始端                                                           終端
             x1         x4     5        x8      2          x11
             4                                             3
                   B     x5         B    x9         B
                           3               3
                   4                8                11
                  形態素1             形態素2             形態素3
  それぞれの辺に変数xを割り当て、式を立てる(x0-11は全て0か1)
   max {3*x0 + 4*x1 + 5*x2 + 5*x3 + 3*x4 + 3*x5 + 3*x6 + 2*x7 + 4*x8
   + 3*x9 + 3*x10 + 3*x11 }
  同時に選んではいけない辺を制約で表現
    s.t. x0+x1 = 1 x2+x3+x4+x5 = 1 x6+x7+x8+x9 = 1 x10+x11 = 1
      t 0 1 1; 2 3 4 5 1; 6 7 8 9 1; 10 11 1;
   同時に選ばないといけない辺を制約で表現(x0が選ばれているがx2もx3も選ば
   れていないというような場合を防ぐ
    s.t. x0=x2+x3; x1=x4+x5; x2=x6+x7;x3=x8+x9;x4=x6+x7;…
2011/07/23                         DSIRNLP #1                          94
指数的な計算量
• maxx {a*x0 + b*x1 + c*x2 + d*x3}
  s.t. x  {0, 1}
          { , }
• 4つの変数が0と1を取りうるため、 2^4 = 16 通
  りがある
• 4つならばいいが100変数だったら? 2^100 
  ≒ 1.3*10^30 となり、ちょっと無理そう



2011/07/23     DSIRNLP #1       95
分枝限定法 (branch and bound method)
       (branch and bound method)

• 整数計 法を解く
  整数計画法を解くアルゴリズム
            ゴ ズ
• 総当たり は大変なので、解空間を分割し、
  総当たり……は大変なので、解空間を分割し、
  分割した空間の上限を計算、探索が不要な
  空間を見切る
• 基本的な作戦:場合分けをして、明らかに最
  適解を含まない領域を探索しない



2011/07/23    DSIRNLP #1       96
例題:ナップサック問題
• 袋 お菓 を詰めた
  袋にお菓子を詰めたい
• お菓子にはそれぞれ嬉しさがある(目的関数)
• ただし袋には当然サイズがあり、お菓子を無尽蔵に
  詰めることはできない(制約)
• 嬉しさを最大化するようにお菓子を詰めたい(最適
  化問題)

 • maxx {a*x0 + b x1 + c x2}
          {a x0  b*x1 c*x2}
   s.t. x  {0, 1}; x0 + x1 + x2 <= 2;

2011/07/23            DSIRNLP #1        97
アルゴリズム
1.   手元の解空間の中から、可能解を得る
     手    解空間 中から 能解を得る
2.   分枝 (branch)
3.   分枝した空間の上限を得る
4.
4    可能解と上限を比較
     1. 可能解>上限であればその分枝を破棄 (bound)
     2 上限>=可能解であればステップ2へ
     2.
5. 1に戻る



2011/07/23       DSIRNLP #1         98
探索木
 • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3}
   s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10;
                        x0 = 1
1.貪欲法で可能解を        Y                N
探索




 2011/07/23           DSIRNLP #1                 99
探索木
  • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3}
    s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10;
                             x0 = 1
1.貪欲法で可能解を 5 (4)       Y                N
探索
                x1 = 1


              Y
                      N




 2011/07/23                DSIRNLP #1            100
探索木
  • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3}
    s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10;
                             x0 = 1
1.貪欲法で可能解を 5 (4)       Y                N
探索
                x1 = 1


                   Y
    5+3 (4+6)
        (   )          N
              x2 = 1




 2011/07/23                DSIRNLP #1            101
アルゴリズム
1.   手元の解空間の中から、許容解を得る
     手    解空間 中から 許容解を得る
2.   分枝 (branch)
3.   分枝した空間の上限を得る
4.
4    可能解と上限を比較
     1. 可能解>上限であればその分枝を破棄 (bound)
     2 上限>=可能解であればステップ2へ
     2.
5. 1に戻る



2011/07/23       DSIRNLP #1         102
探索木
  • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3}
    s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10;
2.整数条件を緩和、上限を
シンプレックス法で計算                           x0 = 1
           5 (4)                Y                N
                       x1 = 1                        x1 = 1


                   Y
   5+3 (4+6)
       (   )                    N
              x2 = 1




 2011/07/23                         DSIRNLP #1                103
探索木
  • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3}
    s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10;
2.整数条件を緩和、上限を
シンプレックス法で計算                           x0 = 1
           5 (4)                Y                N
                       x1 = 1                        x1 = 1


                   Y
   5+3 (4+6)
       (   )                    N
              x2 = 1




 2011/07/23                         DSIRNLP #1                104
探索木
  • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3}
    s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10;
2.整数条件を緩和、上限を
シンプレックス法で計算                           x0 = 1
           5 (4)                Y                  N
                       x1 = 1                          x1 = 1

                                         •     maxx {3*x1 + 2*x2 + 2*x3}
                   Y                           s.t. x  [0, 1]; 6*x1 + 3*x2 + 2*x3 <= 10;
   5+3 (4+6)
       (   )                    N
              x2 = 1




 2011/07/23                         DSIRNLP #1                                  105
探索木
  • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3}
    s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10;
2.整数条件を緩和、上限を
シンプレックス法で計算                           x0 = 1
           5 (4)                Y                N
                       x1 = 1                        x1 = 1

                                         • maxx {3*x1 + 2*x2 + 2*x3}
                   Y                       s.t. x  [0, 1]; 6*x1 + 3*x2 + 2*x3 <= 10;
   5+3 (4+6)
       (   )                    N
                                         → 3*1+2*1+2*1 = 7
              x2 = 1
                                         この領域の上限=7
                                         先に求めた可能解=8なので、
                                         先に求めた可能解 8なので
                                         この領域に最適解がある可能性はない!
                                         探索中止

 2011/07/23                         DSIRNLP #1                              106
アルゴリズム
1.   手元の解空間の中から、許容解を得る
     手    解空間 中から 許容解を得る
2.   分枝 (branch)
3.   分枝した空間の上限を得る
4.
4    可能解と上限を比較
     1. 可能解>上限であればその分枝を破棄 (bound)
     2 上限>=可能解であればステップ2へ
     2.
5. 1に戻る



2011/07/23       DSIRNLP #1         107
探索木
  • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3}
    s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10;
2.整数条件を緩和、上限を
シンプレックス法で計算                          x0 = 1
           5 (4)        Y
                                        •     maxx {5 + 3*x1 + 2*x2 + 2*x3}
                        x1 = 1
                                              s.t. x  [0, 1]; 6 x1 + 3 x2 + 2 x3 < 6;
                                              s.t. x [0, 1]; 6*x1 + 3*x2 + 2*x3 <= 6;
                                 N
                   Y
   5+3 (4+6)
       (   )
               x2 = 1       x2 = 1




 2011/07/23                  DSIRNLP #1                                       108
探索木
  • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3}
    s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10;
2.整数条件を緩和、上限を
シンプレックス法で計算                        x0 = 1
           5 (4)      Y
                                      •     maxx {5 + 3*x1 + 2*x2 + 2*x3}
                      x1 = 1
                                            s.t. x  [0, 1]; 6 x1 + 3 x2 + 2 x3 < 6;
                                            s.t. x [0, 1]; 6*x1 + 3*x2 + 2*x3 <= 6;
                               N          → 5 + 3*(1/6) + 2*1 + 2*1 = 9.5
                 Y
   5+3 (
       (4+6)
           )                              この領域の上限=9.5
                                          この領域の上限=9 5
             x2 = 1       x2 = 1
                                          先に求めた可能解=8なので、
                                            探索続行、分枝




 2011/07/23                DSIRNLP #1                                       109
探索木
  • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3}
    s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10;
2.整数条件を緩和、上限を
シンプレックス法で計算                      x0 = 1
           5 (4)        Y
                        x1 = 1

                                          N
                   Y
   5+3 (4+6)
       (   )
               x2 = 1                         x2 = 1




 2011/07/23                  DSIRNLP #1                110
アルゴリズム
1.   手元の解空間の中から、許容解を得る
     手    解空間 中から 許容解を得る
2.   分枝 (branch)
3.   分枝した空間の上限を得る
4.
4    可能解と上限を比較
     1. 可能解>上限であればその分枝を破棄 (bound)
     2 上限>=可能解であればステップ2へ
     2.
5. 1に戻る



2011/07/23       DSIRNLP #1         111
ソルバを実装するか?
• すごく大変
  すごく大変……でもないが簡単でもない
          もな が簡単 もな
• 少なくとも以下の3つを実装しなければならない
   1. 良い可能解を高速に見つける方法(貪欲法、シンプレッ
      クス法+丸め、など)
   2. 上限を高速に見つける方法(シンプレックス法/内点法)
      •      シンプレックス法はCで200‐300行くらい
   3. 1.と2.を使って再帰的に探索するルーチン
• 整数計画法の場合、 lp_solve などフリーのソフトウ
  ェアに数式を投入して解くのが無難
   – エクセルでも解ける

2011/07/23              DSIRNLP #1    112
ILP の使いどころ
             ILP の使いどころ
• 問題を切り分けるとき
• NLP では、モデル、パラメタ、デコードを考える必要がある
• あるタスクを解いてみて、その精度が十分でない場合、3つ
  の可能性を考える必要がある
   – パラメタがうまく推定されていない:訓練データ不足、イタレーションが
     足りてない場合など。学習曲線を見てみる
   – デコードがうまくいっていない:ビームサーチなどで探索している場合
     、探索空間に比してビーム幅が狭い可能性。あまりよろしくない解を
     見つけている可能性あり。ILP等で厳密解を見つけてみる
     見つけている可能性あり ILP等で厳密解を見つけてみる
   – モデル:上の2つが問題なさそうな場合、そもそも当該タスクを解くに
     あたってモデルの表現力が足りてない(バイグラム→トライグラムにし
     てみる)



2011/07/23      DSIRNLP #1          113
まとめ
• 最初は NLP の全体像のお話をしました
   – 解析と生成
   – y = argmaxx f(x;w)
     y     g      ( ; )
   – モデル、パラメタ、デコード
• 次にデコードのお話をしました
  次にデコ ドのお話をしました
   – 貪欲法、ビームサーチ、動的計画法、整数計画法
   – 自分でモデルを作ってみる
   – 式を書けば lp_solve が解いてくれるので、面白いモデル
     を考えてみる
   – ILPで解けたら、他の、速いデコード法を考えてみる


2011/07/23         DSIRNLP #1      114
参考文献(教科書)
•    最適化
      –   松井ら, 入門オペレーションズ・リサーチ, 東海大学出版会, 2008. (平易)
          松井ら 入門オペレ ションズ リサ チ 東海大学出版会 2008 (平易)
      –   金谷, これなら分かる最適化数学, 共立出版, 2005. (おすすめ)
      –   今野ら, 整数計画法と組合わせ最適化, 日科技連, 1982. (古いがわかりやすい)
      –   コルテら(著)浅野ら(訳), 組み合わせ最適化(第2版), シュプリンガー・ジャパン, 
          2009. (攻撃力高い、引用数多)
•    アルゴリズムとデ タ構造
     アルゴリズムとデータ構造
      – メールホルンら(著)浅野(訳), アルゴリズムとデータ構造, シュプリンガー・ジャパ
        ン,  2009.(入門的)
      – Cormen et al Introduction to Algorithms (3rd Eds ) MIT Press 2009 (金字塔 ジ
        Cormen et al., Introduction to Algorithms (3rd Eds.), MIT Press, 2009. (金字塔。ジ
        ャケがかっこいい)
•    実装
      – Press et al., Numerical Recipes in C, Cambridge University Press, 1988.
      – 奥村, C言語による最新アルゴリズム事典, 技術評論社, 1991.
      – 秋葉ら, プログラミングコンテストチャレンジブック, 毎日コミュニケーションズ,2010.
        秋葉ら, プ グラミングコンテストチャレンジブック, 毎日コミュ ケ ションズ,2010.

    2011/07/23                       DSIRNLP #1                                115
• Thanks. 




2011/07/23   DSIRNLP #1   116

Contenu connexe

En vedette

Approximate Scalable Bounded Space Sketch for Large Data NLP
Approximate Scalable Bounded Space Sketch for Large Data NLPApproximate Scalable Bounded Space Sketch for Large Data NLP
Approximate Scalable Bounded Space Sketch for Large Data NLPKoji Matsuda
 
あなたの業務に機械学習を活用する5つのポイント
あなたの業務に機械学習を活用する5つのポイントあなたの業務に機械学習を活用する5つのポイント
あなたの業務に機械学習を活用する5つのポイントShohei Hido
 
2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by ホットリンク 公開用
2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by  ホットリンク 公開用2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by  ホットリンク 公開用
2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by ホットリンク 公開用Takeshi Sakaki
 
Uncertainty Awareness in Integrating Machine Learning and Game Theory
Uncertainty Awareness in Integrating Machine Learning and Game TheoryUncertainty Awareness in Integrating Machine Learning and Game Theory
Uncertainty Awareness in Integrating Machine Learning and Game TheoryRikiya Takahashi
 
オンコロジストなるためのスキル
オンコロジストなるためのスキルオンコロジストなるためのスキル
オンコロジストなるためのスキルmusako-oncology
 
新たなRNNと自然言語処理
新たなRNNと自然言語処理新たなRNNと自然言語処理
新たなRNNと自然言語処理hytae
 
ディープラーニングでラーメン二郎(全店舗)を識別してみた
ディープラーニングでラーメン二郎(全店舗)を識別してみたディープラーニングでラーメン二郎(全店舗)を識別してみた
ディープラーニングでラーメン二郎(全店舗)を識別してみたknjcode
 
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...Deep Learning JP
 
Deep LearningフレームワークChainerと最近の技術動向
Deep LearningフレームワークChainerと最近の技術動向Deep LearningフレームワークChainerと最近の技術動向
Deep LearningフレームワークChainerと最近の技術動向Shunta Saito
 
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料tm_2648
 
現在のDNNにおける未解決問題
現在のDNNにおける未解決問題現在のDNNにおける未解決問題
現在のDNNにおける未解決問題Daisuke Okanohara
 
論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative ModelsSeiya Tokui
 
ディープラーニングによるラーメン二郎全店舗識別と生成
ディープラーニングによるラーメン二郎全店舗識別と生成ディープラーニングによるラーメン二郎全店舗識別と生成
ディープラーニングによるラーメン二郎全店舗識別と生成knjcode
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep LearningSeiya Tokui
 
IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習Preferred Networks
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoderSho Tatsuno
 

En vedette (17)

Approximate Scalable Bounded Space Sketch for Large Data NLP
Approximate Scalable Bounded Space Sketch for Large Data NLPApproximate Scalable Bounded Space Sketch for Large Data NLP
Approximate Scalable Bounded Space Sketch for Large Data NLP
 
あなたの業務に機械学習を活用する5つのポイント
あなたの業務に機械学習を活用する5つのポイントあなたの業務に機械学習を活用する5つのポイント
あなたの業務に機械学習を活用する5つのポイント
 
2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by ホットリンク 公開用
2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by  ホットリンク 公開用2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by  ホットリンク 公開用
2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by ホットリンク 公開用
 
Uncertainty Awareness in Integrating Machine Learning and Game Theory
Uncertainty Awareness in Integrating Machine Learning and Game TheoryUncertainty Awareness in Integrating Machine Learning and Game Theory
Uncertainty Awareness in Integrating Machine Learning and Game Theory
 
オンコロジストなるためのスキル
オンコロジストなるためのスキルオンコロジストなるためのスキル
オンコロジストなるためのスキル
 
新たなRNNと自然言語処理
新たなRNNと自然言語処理新たなRNNと自然言語処理
新たなRNNと自然言語処理
 
ディープラーニングでラーメン二郎(全店舗)を識別してみた
ディープラーニングでラーメン二郎(全店舗)を識別してみたディープラーニングでラーメン二郎(全店舗)を識別してみた
ディープラーニングでラーメン二郎(全店舗)を識別してみた
 
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
 
Deep LearningフレームワークChainerと最近の技術動向
Deep LearningフレームワークChainerと最近の技術動向Deep LearningフレームワークChainerと最近の技術動向
Deep LearningフレームワークChainerと最近の技術動向
 
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
 
現在のDNNにおける未解決問題
現在のDNNにおける未解決問題現在のDNNにおける未解決問題
現在のDNNにおける未解決問題
 
論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models
 
ディープラーニングによるラーメン二郎全店舗識別と生成
ディープラーニングによるラーメン二郎全店舗識別と生成ディープラーニングによるラーメン二郎全店舗識別と生成
ディープラーニングによるラーメン二郎全店舗識別と生成
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep Learning
 
IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
Deep parking
Deep parkingDeep parking
Deep parking
 

Similaire à Argmax Operations in NLP

[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 Yuki Arase
 
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 Yuki Arase
 
言語資源と付き合う
言語資源と付き合う言語資源と付き合う
言語資源と付き合うYuya Unno
 
WordNetで作ろう! 言語横断検索サービス
WordNetで作ろう! 言語横断検索サービスWordNetで作ろう! 言語横断検索サービス
WordNetで作ろう! 言語横断検索サービスShintaro Takemura
 
Learning Cooperative Visual Dialog with Deep Reinforcement Learning(関東CV勉強会 I...
Learning Cooperative Visual Dialog with Deep Reinforcement Learning(関東CV勉強会 I...Learning Cooperative Visual Dialog with Deep Reinforcement Learning(関東CV勉強会 I...
Learning Cooperative Visual Dialog with Deep Reinforcement Learning(関東CV勉強会 I...Yoshitaka Ushiku
 
Deep Learningと自然言語処理
Deep Learningと自然言語処理Deep Learningと自然言語処理
Deep Learningと自然言語処理Preferred Networks
 
はじめての生成文法 《後編》
はじめての生成文法 《後編》はじめての生成文法 《後編》
はじめての生成文法 《後編》Shuyo Nakatani
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)nishikawa_makoto7
 
Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...
Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...
Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...Naoaki Okazaki
 
日本語の語彙平易化システムおよび評価セットの構築
日本語の語彙平易化システムおよび評価セットの構築日本語の語彙平易化システムおよび評価セットの構築
日本語の語彙平易化システムおよび評価セットの構築Tomoyuki Kajiwara
 
NLPにおけるAttention~Seq2Seq から BERTまで~
NLPにおけるAttention~Seq2Seq から BERTまで~NLPにおけるAttention~Seq2Seq から BERTまで~
NLPにおけるAttention~Seq2Seq から BERTまで~Takuya Ono
 
問題解決力ワークショップ(解説編)
問題解決力ワークショップ(解説編)問題解決力ワークショップ(解説編)
問題解決力ワークショップ(解説編)ashizawa1 Ashizawa
 
単語・句の分散表現の学習
単語・句の分散表現の学習単語・句の分散表現の学習
単語・句の分散表現の学習Naoaki Okazaki
 
2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature modelsn-yuki
 
Drupalの日本語検索
Drupalの日本語検索Drupalの日本語検索
Drupalの日本語検索SachikoNitta
 
Dynamic Entity Representations in Neural Language Models
Dynamic Entity Representations in Neural Language ModelsDynamic Entity Representations in Neural Language Models
Dynamic Entity Representations in Neural Language ModelsShun Kiyono
 

Similaire à Argmax Operations in NLP (20)

[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
 
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
 
言語資源と付き合う
言語資源と付き合う言語資源と付き合う
言語資源と付き合う
 
Its a layout world
Its a layout worldIts a layout world
Its a layout world
 
WordNetで作ろう! 言語横断検索サービス
WordNetで作ろう! 言語横断検索サービスWordNetで作ろう! 言語横断検索サービス
WordNetで作ろう! 言語横断検索サービス
 
深層学習による自然言語処理の研究動向
深層学習による自然言語処理の研究動向深層学習による自然言語処理の研究動向
深層学習による自然言語処理の研究動向
 
Learning Cooperative Visual Dialog with Deep Reinforcement Learning(関東CV勉強会 I...
Learning Cooperative Visual Dialog with Deep Reinforcement Learning(関東CV勉強会 I...Learning Cooperative Visual Dialog with Deep Reinforcement Learning(関東CV勉強会 I...
Learning Cooperative Visual Dialog with Deep Reinforcement Learning(関東CV勉強会 I...
 
WUPC2012
WUPC2012WUPC2012
WUPC2012
 
Deep Learningと自然言語処理
Deep Learningと自然言語処理Deep Learningと自然言語処理
Deep Learningと自然言語処理
 
はじめての生成文法 《後編》
はじめての生成文法 《後編》はじめての生成文法 《後編》
はじめての生成文法 《後編》
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)
 
Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...
Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...
Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...
 
日本語の語彙平易化システムおよび評価セットの構築
日本語の語彙平易化システムおよび評価セットの構築日本語の語彙平易化システムおよび評価セットの構築
日本語の語彙平易化システムおよび評価セットの構築
 
NLPにおけるAttention~Seq2Seq から BERTまで~
NLPにおけるAttention~Seq2Seq から BERTまで~NLPにおけるAttention~Seq2Seq から BERTまで~
NLPにおけるAttention~Seq2Seq から BERTまで~
 
問題解決力ワークショップ(解説編)
問題解決力ワークショップ(解説編)問題解決力ワークショップ(解説編)
問題解決力ワークショップ(解説編)
 
単語・句の分散表現の学習
単語・句の分散表現の学習単語・句の分散表現の学習
単語・句の分散表現の学習
 
詳説word2vec
詳説word2vec詳説word2vec
詳説word2vec
 
2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models
 
Drupalの日本語検索
Drupalの日本語検索Drupalの日本語検索
Drupalの日本語検索
 
Dynamic Entity Representations in Neural Language Models
Dynamic Entity Representations in Neural Language ModelsDynamic Entity Representations in Neural Language Models
Dynamic Entity Representations in Neural Language Models
 

Plus de Hitoshi Nishikawa

Plus de Hitoshi Nishikawa (6)

研究の呪い
研究の呪い研究の呪い
研究の呪い
 
Automatic Summarization
Automatic SummarizationAutomatic Summarization
Automatic Summarization
 
研究の進め方
研究の進め方研究の進め方
研究の進め方
 
Automatic Summarization (2014)
Automatic Summarization (2014)Automatic Summarization (2014)
Automatic Summarization (2014)
 
Introduction to Automatic Summarization
Introduction to Automatic SummarizationIntroduction to Automatic Summarization
Introduction to Automatic Summarization
 
FSNLP Ch.3 Linguistic Essentials
FSNLP Ch.3 Linguistic EssentialsFSNLP Ch.3 Linguistic Essentials
FSNLP Ch.3 Linguistic Essentials
 

Dernier

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Dernier (9)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

Argmax Operations in NLP

  • 1. 自然言語処理における argmax 操作 NISHIKAWA Hitoshi NISHIKAWA Hitoshi 2011/07/23 DSIRNLP #1 1
  • 2. 目的 • NLP タスクの全体像をご説明差し上げ、ご理解いた タ ク 全体像をご説 差 上げ ご理解 た だき、皆様の学習の一助とする – NLP とは何ぞや – 他の分野との関係 – 構成要素、 NLP の世界観 • NLP タスクのうち、特に argmax 操作(デコード)と呼 g ばれる操作についてお話差し上げ、モデル開発の 一助とする 2011/07/23 DSIRNLP #1 2
  • 3. 目次 概 分 1. NLPの概要(10分) 1. 他分野との関係、 NLP の諸技術(5分) 他分野 関係、 諸技術( 分) 2. モデル、パラメタ、デコード(5分) 2. デコード(30分) 2 デコ ド(30分) 1. 近似解法(5分) 特 特にココを中心に を中 2. 動的計画法(5分) お話します 3 整数計画法(20分) 3. 3. まとめ 2011/07/23 DSIRNLP #1 3
  • 4. 自然言語処理 • 自然 自然言語を計算機で処理する一連の技術 を計算機 処 する 連 技術 – 自然言語を対象にする、という対象に焦点をあて た呼称(分類) – 隣接領域:音響信号処理(音全般の処理 エコー 隣接領域:音響信号処理(音全般の処理、エコ キャンセラなど)、音声処理(人間が発する音の 処理、音声認識など)、画像処理(画像の処理) 処理 音声認識など) 画像処理(画像の処理) – この名前には「目的」は含まれない • テキストマイニングは「目的」指向の呼称 2011/07/23 DSIRNLP #1 4
  • 5. 他の分野との関係 目的 対象 処理 検索 自然言語 データ構造・ 処理 アルゴリズム 要素技術 要素技術 マイニング 2011/07/23 DSIRNLP #1 5
  • 6. 自然言語処理 • 自然言語で記述された文章を、適当な中間表現に 変換する • 適当な中間表現を自然言語に変換する 2011/07/23 DSIRNLP #1 6
  • 7. 中間表現? • 文章を読むと 何らかの場景が思い浮かぶ 文章を読むと、何らかの場景が思い浮かぶ • それを適当な形で表現したもの 東川さんは西川さんを殴りました。西川さんに愚弄されたからです。 原因 殴る 愚弄する 動作主 対象 動作主 対象 東川さん 西川さん 西川さん 東川さん 2011/07/23 DSIRNLP #1 7
  • 8. 東川さんは西川さんを殴りました。西川さんに愚弄されたからです。 談話構造解析 原因 述語項構造 述語項構造 解析 殴る 愚弄する 解析 動作主 対象 動作主 対象 東川さん 西川さん 西川さん 東川さん 係り受け解析 形態素解析 ※中間表現は応用に応じて適当な粒度で設定する ※中間表現は応用に応じ 適当な粒度 設定する 2011/07/23 DSIRNLP #1 8
  • 9. 解析と生成 • 中間表現への変換を解析、中間表現から自然言語への変換 中間表現 変換を解析、中間表現 ら自然言語 変換 を生成と呼ぶ • 解析 • 生成 – 形態素解析 – 深層生成 – 係り受け解析 • 内容選択 • 談話生成 – 述語項構造解析 – 照応解析 – 表層生成 • 文境界決定 – 談話構造解析 • 参照表現生成 • 語彙化 2011/07/23 DSIRNLP #1 9
  • 10. 自然言語処理タスクを解く • 解析、生成を問わず、それぞれのタスクは、与えら ず ぞ れた入力を所望の出力に変換する関数を設計し、 該関数を計算することに帰着される 該関数を計算する と 帰着される • X : 入力 y = arg max f ( x; w) x • Y : 出力 Y : 出力 • f(x; w) : パラメタ w の下で x を実数に写像する関数 • を最大化する argmaxx f(x;w) : f(x;w)を最大化する x  2011/07/23 DSIRNLP #1 10
  • 11. 基本的な発想 • 無数の解候補それぞれに得点を与えて、一 番得点が高いものを選んでくる 今日 は いい 天気 です 。 y = arg max f ( x; w) x 51点 名詞 助詞 形容詞 名詞 助動詞 記号 45点 名詞 助詞 名詞 名詞 助動詞 記号 40点 名詞 名詞 名詞 名詞 助動詞 記号 2011/07/23 DSIRNLP #1 11
  • 12. NLP の 3 ステップ NLP の 3 ステップ 1. モデルを作る:この式を計算すれば問題が 解けるという式を作る 2. パラメタを推定する:良い候補に高い得点を 与えるように、式に含まれるパラメタを推定 与えるように 式に含まれるパラメタを推定 する 3. デコードする:式を機械に計算させて問題を 解く 2011/07/23 DSIRNLP #1 12
  • 13. 全体像 入力 力 言語知識 モデル コーパス パラメタ 離散最適化 デコード 連続最適化 • いろんなことを勉強しないとご飯が 食べられなくて大変 出力 • 今日は特にデコードについてお話 今日は特にデコ ドについてお話 2011/07/23 DSIRNLP #1 13
  • 14. デコード • 式(モデル)とパラメタが与えられたときに、そ の式を計算すること • 自然言語処理タスクの場合は、離散的な解 空間の中で目的関数を最大化する解を探索 すること • 当然、効率的に探索したい 2011/07/23 DSIRNLP #1 14
  • 15. • ここからデコードのお話をします デ ド お話を ます 2011/07/23 DSIRNLP #1 15
  • 16. デコード • 式(モデル)とパラメタが与えられたときに、そ の式を計算すること • 自然言語処理タスクの場合は、離散的な解 空間の中で目的関数を最大化する解を探索 すること • 当然、効率的に探索したい 2011/07/23 DSIRNLP #1 16
  • 17. 例題:品詞同定 • 形態素に分割済みの文字列の品詞を同定す ることを考える 今日 は いい 天気 です 。 名詞 助詞 形容詞 名詞 助動詞 記号 • これを例題として、3つのアプローチをお話し れを例題と プ をお話 ます 2011/07/23 DSIRNLP #1 17
  • 18. 以下のモデルを仮定する • 1次のマルコフモデル、パラメタも推定済とする 次 n デ パ タも推定済 する y = arg max{∑ yoko(hi , hi +1 ) + tate(ki , ki +1 )} 横方向 横方向の得点 i =0 の得点 2 2 4 5 4 3 5 始端 名詞 助詞 形容詞 名詞 助動詞 記号 終端 縦方向 4 5 4 5 3 5 の得点 今日 は いい 天気 です 。 計:51点 縦方向の得点と横方向の得点の和がこの品詞列のスコアとする 縦方向の得点:形態素「今日」はどのくらい名詞っぽいか 横方向の得点:「名詞」のあとに「助詞」はどのくらいあらわれやすいか 2011/07/23 DSIRNLP #1 18
  • 19. 単純化 • 縦得点は横得点 足 縦得点は横得点に足してしまえる まえる 2 2 4 5 4 3 5 始端 名詞 助詞 形容詞 名詞 助動詞 記号 終端 4 5 4 5 3 5 今日 は いい 天気 です 。 計:51点 7 7 10 4 7 9 7 始端 名詞 助詞 形容詞 名詞 助動詞 記号 終端 今日 は いい 天気 です 。 計:51点 • これで問題が単純になる 2011/07/23 DSIRNLP #1 19
  • 20. グラフの探索 • ルートに応じて得点がある 計:51点 7 7 10 4 7 9 7 始端 名詞 助詞 形容詞 名詞 助動詞 記号 終端 5 7 計:47点 名詞 今日 は いい 天気 です す 。 • 得点が最大のルートを探し出したい 2011/07/23 DSIRNLP #1 20
  • 21. グラフの探索 ラ 探索 名詞 名詞 名詞 名詞 名詞 名詞 動詞 動詞 動詞 動詞 動詞 動詞 始端 形容詞 形容詞 形容詞 形容詞 形容詞 形容詞 終端 助詞 助詞 助詞 助詞 助詞 助詞 助動詞 助動詞 助動詞 助動詞 助動詞 助動詞 記号 記号 記号 記号 記号 記号 今日 今 は いい 天気 気 です す 。 始端をスタ ト地点、終端を 始端をスタート地点、終端をゴールとして、いずれかのノードを6回通過するルートの ルとして、いずれかのノ ドを6回通過するル トの 中で、一番高いスコアが得られるルートを探し出したい 2011/07/23 DSIRNLP #1 21
  • 22. 全探索 • 真 真正面から愚直に解くとどうなるか? 直 解く どうなる • 7つの形態素、6種類の品詞があるため、 6^7≒28万の選び方(ルート)がありうる – 入力に対して指数的に選び方が増える • 28万ルートのスコアを全て計算し、最大のス コアを持つルートを出力すればいい • 20形態素の文が入力されると3 6*10^15 20形態素の文が入力されると3.6*10^15 • さすがにちょっと無理そう 2011/07/23 DSIRNLP #1 22
  • 23. 大体の方針 動的計画法 で多項式時間に 落ちるか? N Y 問題の規模は 厳密解は不要か? 小さいか? Y N Y N 動的計画法 近似解法 整数計画法 2 1 3 2011/07/23 DSIRNLP #1 23
  • 24. 近似解法 • 貪欲法 • ビームサーチ ビ ムサ チ 2011/07/23 DSIRNLP #1 24
  • 25. 貪欲法 • 一番それっぽいものを逐次的に選んでいく方法 番それ ぽ も を逐次的 選ん く方法 計:51点 7 7 10 4 7 9 7 始端 名詞 助詞 形容詞 名詞 助動詞 記号 終端 3 動詞 名詞 5 • ただし最適な解を発見 きる保証はな ただし最適な解を発見できる保証はない 計:51点 7 形容詞 9 10 4 7 7 7 始端 名詞 助詞 名詞 助動詞 記号 終端 名詞 9 5 計:49点 2011/07/23 DSIRNLP #1 25
  • 26. ビームサーチ • 上位k個の仮説を保持しながら行う幅優先探索 • 保持する仮説数をビーム幅という 始端 • プライオリティキューにスコアを優先度として、そこま での仮説(ル ト)を放り込んでいく での仮説(ルート)を放り込んでいく 2011/07/23 DSIRNLP #1 26
  • 27. ビームサーチ • 上位k個の仮説を保持しながら行う幅優先探索 • 保持する仮説数をビーム幅という 名詞 4 始端 3 動詞 2 形容詞 … • プライオリティキューにスコアを優先度として、そこま での仮説(ル ト)を放り込んでいく での仮説(ルート)を放り込んでいく 2011/07/23 DSIRNLP #1 27
  • 28. ビームサーチ • 上位k個の仮説を保持しながら行う幅優先探索 • 保持する仮説数をビーム幅という 名詞 4 始端 3 動詞 2 × 形容詞 … • プライオリティキューにスコアを優先度として、そこま での仮説(ル ト)を放り込んでいく での仮説(ルート)を放り込んでいく 2011/07/23 DSIRNLP #1 28
  • 29. ビームサーチ • 上位k個の仮説を保持しながら行う幅優先探索 • 保持する仮説数をビーム幅という 名詞 4+7 名詞 4+5 動詞 4 4+4 形容詞 始端 3 動詞 3+9 形容詞 2 × 形容詞 3+5 助詞 … … • プライオリティキューにスコアを優先度として、そこま での仮説(ル ト)を放り込んでいく での仮説(ルート)を放り込んでいく 2011/07/23 DSIRNLP #1 29
  • 30. ビームサーチ • 上位k個の仮説を保持しながら行う幅優先探索 • 保持する仮説数をビーム幅という 名詞 4+7 名詞 4+5 × 動詞 4 4+4 × 形容詞 始端 3 動詞 3+9 形容詞 2 × 形容詞 3+5 × 助詞 … … • プライオリティキューにスコアを優先度として、そこま での仮説(ル ト)を放り込んでいく での仮説(ルート)を放り込んでいく 2011/07/23 DSIRNLP #1 30
  • 31. ビームサーチ • 上位k個の仮説を保持しながら行う幅優先探索 • 保持する仮説数をビーム幅という 名詞 動詞 4+7 名詞 4+5 × 動詞 助詞 4 4+4 × … 形容詞 始端 3 動詞 3+9 助動詞 形容詞 2 × 形容詞 3+5 × 助詞 名詞 … … … … • プライオリティキューにスコアを優先度として、そこま での仮説(ル ト)を放り込んでいく での仮説(ルート)を放り込んでいく 2011/07/23 DSIRNLP #1 31
  • 32. 大体の方針 動的計画法 で多項式時間に 落ちるか? N Y 問題の規模は 厳密解は不要か? 小さいか? Y N Y N 動的計画法 近似解法 整数計画法 2 1 3 2011/07/23 DSIRNLP #1 32
  • 33. 動的計画法 • 実は、ある種の性質をもった問題(漸化式で 書ける問題) あれ 、ちょ 書ける問題)であれば、ちょっとした工夫で計 夫 計 算量を減らせる • その方法(枠組)を動的計画法 (Dynamic (Dynamic  programming (DP) )という • この問題の場合、指数的な計算量(品詞数^ 形態素数)を線形の計算量(形態素数 (品詞 形態素数)を線形の計算量(形態素数*(品詞 数^2))まで減らすことができる 2011/07/23 DSIRNLP #1 33
  • 34. ゴールから眺めてみる • 単純化 ため品詞 種 単純化のため品詞2種(A,B)、3形態素(1,2,3)とする 態素 とする A A A 始端 終端 B B B 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 34
  • 35. ゴールから眺めてみる • 単純化 ため品詞 種 単純化のため品詞2種(A,B)、3形態素(1,2,3)とする 態素 とする A A A 15 始端 終端 B B B 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 35
  • 36. ゴールから眺めてみる • 単純化 ため品詞 種 単純化のため品詞2種(A,B)、3形態素(1,2,3)とする 態素 とする 12 A A A 3 15 始端 終端 B B B 3 11 形態素 形態素1 形態素 形態素2 形態素 形態素3 • 終端は、単に、A、Bまでのルートの最大のスコアが わかればよい 2011/07/23 DSIRNLP #1 36
  • 37. ゴールから眺めてみる • 単純化 ため品詞 種 単純化のため品詞2種(A,B)、3形態素(1,2,3)とする 態素 とする 12 A A A 3 15 始端 終端 B B B 3 11 形態素 形態素1 形態素 形態素2 形態素 形態素3 • 終端は、単に、A、Bまでのルートの最大のスコアが わかればよい 2011/07/23 DSIRNLP #1 37
  • 38. ゴールから眺めてみる • ゴ ゴールが3番目のAだとしたら……? が 番 だ た 12 A A A 始端 B B 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 38
  • 39. ゴールから眺めてみる • ゴ ゴールが3番目のAだとしたら……? が 番 だ た 8 12 3 A A A 始端 4 B B 8 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 39
  • 40. ゴールから眺めてみる • ゴ ゴールが3番目のAだとしたら……? が 番 だ た 8 12 3 A A A 始端 4 B B 8 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 40
  • 41. ゴールから眺めてみる • ゴ ゴールが2番目のBだとしたら……? が 番 だ た A 始端 B B 8 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 41
  • 42. ゴールから眺めてみる • ゴ ゴールが2番目のBだとしたら……? が 番 だ た 3 A 始端 5 B B 3 4 8 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 42
  • 43. ゴールから眺めてみる • ゴ ゴールが2番目のBだとしたら……? が 番 だ た 3 A 始端 5 B B 3 4 8 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 43
  • 44. ゴールから眺めてみる • ゴ ゴールが1番目のAだとしたら……? が 番 だ た 3 A 始端 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 44
  • 45. ゴールから眺めてみる • ゴ ゴールが1番目のAだとしたら……? が 番 だ た 3 A 3 始端 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 45
  • 46. マルコフ性につけ込む • 一つ前の形態素に至るまでの最大のスコア 判 れ 、自分ま ア 最大値 が判っていれば、自分までのスコアの最大値 がわかる • 一つ前の形態素に至るまでの最大のスコア つ前の形態素に至るまでの最大のスコア は、更にその一つ前の形態素のスコアが判 ればよい • 始点はスコア0と判明しているので、始点から 始点はス ア0と判明しているので、始点から 順繰りに計算できる 2011/07/23 DSIRNLP #1 46
  • 47. 探索 • まず始端 まず始端からスタート タ 3 A 3 始端 4 B 4 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 47
  • 48. 探索 • A、Bともに始端から来る(あたりまえ) も 始端 来る あた ま 3 A 3 始端 4 B 4 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 48
  • 49. 探索 • 形態素2のAに注目 態素 注 3 5 A A 3 3 始端 4 B 4 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 49
  • 50. 探索 • 形態素2のAに注目 態素 注 3 8 5 A A 3 3 始端 4 B 4 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 50
  • 51. 探索 • 形態素2のBに注目 態素 注 3 8 5 A A 3 3 始端 5 4 B B 3 4 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 51
  • 52. 探索 • 形態素2のBに注目 態素 注 3 8 5 A A 3 3 始端 5 4 B B 3 4 8 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 52
  • 53. 探索 • 形態素3のAに注目 態素 注 3 8 5 3 A A A 3 4 3 始端 5 4 B B 3 4 8 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 53
  • 54. 探索 • 形態素3のAに注目 態素 注 3 8 12 5 3 A A A 3 4 3 始端 5 4 B B 3 4 8 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 54
  • 55. 探索 • 形態素3のBに注目 態素 注 3 8 12 5 3 A A A 3 4 3 始端 5 2 4 B B B 3 3 4 8 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 55
  • 56. 探索 • 形態素3のBに注目 態素 注 3 8 12 5 3 A A A 3 4 3 始端 5 2 4 B B B 3 3 4 8 11 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 56
  • 57. 探索 • 終端 注 終端に注目 3 8 12 5 3 A A A 3 4 3 3 始端 終端 5 2 4 3 B B B 3 3 4 8 11 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 57
  • 58. 探索 • 終端 注 終端に注目 3 8 12 5 3 A A A 3 4 3 3 始端 終端 5 2 4 3 B B B 3 3 4 8 11 形態素 形態素1 形態素 形態素2 形態素 形態素3 2011/07/23 DSIRNLP #1 58
  • 59. 計算量 • 各 各ステップで必要な計算量は 品詞数^2 プ 必 な計算量 詞数 • 形態素の数だけそれを繰り返すため、合計 (品詞数^2)*形態素数 • ナイ ブな計算が(品詞数 形態素数)だ た ナイーブな計算が(品詞数^形態素数)だった ことを考えると、劇的に速くなる – 指数→線形 2011/07/23 DSIRNLP #1 59
  • 60. DP の実装:DP 表を埋めるコードを書く DP の実装:DP 表を埋めるコードを書く 3 8 12 5 3 A A A 3 4 3 3 始端 終端 5 2 4 3 B B B 3 3 4 8 11 形態素1 形態素2 形態素3 形態素1 形態素2 形態素3 品詞A スコア:3 スコア:8 スコア:12 一つ前:始点 一つ前:A 一つ前:B 品詞B スコア:4 スコア:8 スコア:11 一つ前:始点 一つ前:A 一つ前:B • ヘンゼルとグレーテル=探索の寓話 • ポイ タを失うと道 迷う ポインタを失うと道に迷う 2011/07/23 DSIRNLP #1 60
  • 61. 動的計画法が適用できれば 必ず多項式時間に落ちるのか? • No. • 動的計画法が適用できるが、多項式のオーダまで 計算量が落ちない問題がある • 例:巡回セールスマン問題 例:巡回セ ルスマン問題 • Held‐Karp Algorithms (Held+ SIAM62)で階乗のオー ダが指数まで落ちるが、まだ指数オーダなので、更 ダが指数まで落ちるが まだ指数オーダなので 更 にビームサーチと組み合わせるなどする • SMT のデコ ド (Till のデコード (Tillmann+ CL03)等で事例がある + CL03)等で事例がある 2011/07/23 DSIRNLP #1 61
  • 62. DP + 枝刈り DP + 枝刈り • 品詞 定 品詞数は 品詞同定:品詞数はせいぜい100くらいなので、各ス ぜ くら な 各 テップでの演算はせいぜい10000回 • 音声認識:品詞ではなく単語を同定するため、数万( 大語彙)の単語数を考えると、計算は何と1億回以 上…… • さすがにつらくなってくるため、いろんな方法で枝刈 り • 近年はWFSTを用いて探索空間を効率的に表現 2011/07/23 DSIRNLP #1 62
  • 63. 大体の方針 動的計画法 で多項式時間に 落ちるか? N Y 問題の規模は 厳密解は不要か? 小さいか? Y N Y N 動的計画法 近似解法 整数計画法 2 1 3 2011/07/23 DSIRNLP #1 63
  • 64. 整数計画法 • 離散的な解空間を持つ最適化問題を解く枠 組 • まず整数条件がない場合:線形計画法のお 話をします • そのあと整数条件がある場合:整数計画法の お話をします 2011/07/23 DSIRNLP #1 64
  • 65. Linear Programming (LP) Linear Programming (LP) • 線形計画 • 形式的には以下のような形をしている問題を解く方法を線形計画法とい う • 目的関数が非線形なときは非線形計画(Nonlinear Programming, NLP)と 目的関数が非線形なときは非線形計画(Nonlinear Programming NLP)と いい、SVMのパラメタ推定など(凸2次計画) T min c x 目的関数 x xを解(解ベクトル)という s.t. Ax ≤ b 制約 cは係数 Aは行列、bはベクトル 制約を満たしつつ、目的関数を最小化する ベクトルxを探すような問題=線形計画問題 それを解く方法=線形計画法 2011/07/23 DSIRNLP #1 65
  • 66. 例 • 以下のような問題を考える • max y=x1+2x2 • s.t. x <=5.7, x <=3.2, x >=0, x s t x1<=5 7 x2<=3 2 x1>=0 x2>=0 cT x 目的関数 ⎛ x1 ⎞ • 先程の記法で書くと、 max y = (1 2 )⎜ ⎟ = x1 + 2 x2 ⎜x ⎟ (maxにして) x1 , x2 ⎝ 2⎠ ⎛1 0⎞ ⎛ 5. 7 ⎞ ⎜ ⎟ ⎜ ⎟ 制約 • 解はx1=5 7 x2=3 2 =5.7, x =3.2 ⎜ 0 1 ⎟⎛ x1 ⎞ ⎜ 3.2 ⎟ s.t.⎜ ⎜ ⎟≤⎜ ⎟ ⎜x ⎟ 連立方程式 • というのはすぐわかる − 1 0 ⎟⎝ 2 ⎠ 0 になっている ⎜ ⎟ ⎜ ⎟ ⎜ 0 − 1⎟ ⎜ 0 ⎟ ⎝ ⎠ ⎝ ⎠ A x b 線形計画法は目的関数に含まれる変数(x 線形計画法は目的関数に含まれる変数( 1、x2)を操作して )を操作して、 制約を満たす、最良の変数の組み合わせを探せば解ける 66 2011/07/23 DSIRNLP #1
  • 67. 図で考える • 目的関数の変数の値域(制約によって定義される)によって 数 変数 値 約 定義 平面(多角形、xが3次元なら空間(多面体))が定義される (実行可能領域という) 増加 x2 制約x2<=3.2 y=x1+2x2なので 右上に行く なので、右上に行く 3 ほどyの値が高い つまり小数解はここ 2 x1=5.7, x2=3.2 5.7, 3.2 実行可能領域 整数解は 1 x1とx2が共に 制約x1<=5.7 整数の点(青点) なのでx1=5, x2=3 0 1 2 3 4 5 x1 実行可能領域内の点として解は定義される 一番よい点(最適解)は実行可能領域の境界上のどこかにある 67 2011/07/23 DSIRNLP #1
  • 68. 単体法 (simplex method) (simplex method) • 線 計 問題を解く方法 線形計画問題を解く方法 • 必ず多項式時間で解けると証明されているわけで はないが、実用上高速に問題を解けることが多い • 可能領域のある頂点を出発点として、境界の辺に 沿って目的関数を増やす方向に解を探す 2011/07/23 DSIRNLP #1 68
  • 69. z 図でみると: max 4x+3y+2z 3 s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3; x+y+z <= 8; 0 4 x 3 y この三角形の面が x+y+z = 8 2011/07/23 DSIRNLP #1 69
  • 70. z 図でみると: max 4x+3y+2z 3 s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3; x+y+z <= 8; 1. x=0, y=0, z=0 からスタート 傾きが大きい x を制約にぶつかるまで 増やす 0 4 x 3 y この三角形の面が x+y+z = 8 2011/07/23 DSIRNLP #1 70
  • 71. z 図でみると: max 4x+3y+2z 3 s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3; x+y+z <= 8; 1. x=0, y=0, z=0 からスタート 傾きが大きい x を制約にぶつかるまで 増やす 0 2. 次に傾きが大きい y を制約にぶつかる まで増やす 4 x 3 y この三角形の面が x+y+z = 8 2011/07/23 DSIRNLP #1 71
  • 72. z 図でみると: max 4x+3y+2z 3 s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3; x+y+z <= 8; 1. x=0, y=0, z=0 からスタート 傾きが大きい x を制約にぶつかるまで 増やす 0 2. 次に傾きが大きい y を制約にぶつかる まで増やす 4 3. 次に傾きが大きい z を制約にぶつかる 次 傾き 大き を制約 ぶ る x まで増やす 3 y この三角形の面が x+y+z = 8 2011/07/23 DSIRNLP #1 72
  • 73. z 図でみると: max 4x+3y+2z 3 s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3; x+y+z <= 8; 1. x=0, y=0, z=0 からスタート 傾きが大きい x を制約にぶつかるまで 増やす 0 2. 次に傾きが大きい y を制約にぶつかる まで増やす 4 3. 次に傾きが大きい z を制約にぶつかる 次 傾き 大き を制約 ぶ る x まで増やす 3 4. x=4, y=3, z=1 で 27 y この三角形の面が x+y+z = 8 2011/07/23 DSIRNLP #1 73
  • 74. z 図でみると: max 4x+3y+2z 25 s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3; 23 3 x+y+z <= 8; 1. x=0, y=0, z=0 からスタート 傾きが大きい x を制約にぶつかるまで 増やす 0 2. 次に傾きが大きい y を制約にぶつかる まで増やす 4 3. 次に傾きが大きい z を制約にぶつかる 次 傾き 大き を制約 ぶ る x まで増やす 3 4. x=4, y=3, z=1 で 27 y この三角形の面が x+y+z = 8 27 2011/07/23 DSIRNLP #1 74
  • 75. z 図でみると: max 4x+3y+2z 25 s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3; 23 3 x+y+z <= 8; 1. x=0, y=0, z=0 からスタート 傾きが大きい x を制約にぶつかるまで 増やす 0 2. 次に傾きが大きい y を制約にぶつかる まで増やす 4 3. 次に傾きが大きい z を制約にぶつかる 次 傾き 大き を制約 ぶ る x まで増やす 3 4. x=4, y=3, z=1 で 27 y この三角形の面が x+y+z = 8 ポイント:n変数の問題はn次元空間の探 27 索となり、最適解は必ずn個の制約面が交 わるところ(頂点)にある 2011/07/23 DSIRNLP #1 75
  • 76. z 図でみると: max 4x+3y+2z 25 s.t. 0<= x <= 4; 0<= y <= 3; 0<= z <= 3; 23 3 x+y+z <= 8; 1. x=0, y=0, z=0 からスタート 傾きが大きい x を制約にぶつかるまで 増やす 0 2. 次に傾きが大きい y を制約にぶつかる まで増やす 4 3. 次に傾きが大きい z を制約にぶつかる 次 傾き 大き を制約 ぶ る x まで増やす 3 4. x=4, y=3, z=1 で 27 y この三角形の面が x+y+z = 8 ポイント:n変数の問題はn次元空間の探 27 索となり、最適解は必ずn個の制約面が交 x <= 4; y <= 3; x + y + z <= 8 の わるところ(頂点)にある 3つの制約面に阻まれている 2011/07/23 DSIRNLP #1 76
  • 77. スラック変数 max 4x+3y+2z max 4x+3y+2z s.t. 0<= x; 0<= y; 0<=z; s.t. 0<= < s t 0< x <= 4; 0<= y <= 3; 0< z <= 3; 0< < 0<= < x <= 4; y <= 3; z <= 3; x+y+z <= 8; x+y+z <= 8; max 4x + 3y + 2z s.t. 0<= x; 0<= y; 0<=z; x + λ1 = 4; y + λ2 = 3; z + λ3 = 3; x + y + z + λ4 = 8; スラック変数ラムダλを導入 ラック変数ラ ダ を導入 0<= λ1 0<= λ2 0<= λ3; 0<= 0 λ1; 0 λ2; 0 λ3 0 λ4 2011/07/23 DSIRNLP #1 77
  • 78. z スラック変数の意味 max 4x + 3y + 2z y s.t. 0<= x; 0<= y; 0<=z; x + λ1 = 4; y + λ2 = 3; z + λ3 = 3; x + y + z + λ4 = 8; 0<= λ1; 0<= λ2; 0<= λ3; 0<= λ4 x y 2011/07/23 DSIRNLP #1 78
  • 79. z スラック変数の意味 max 4x + 3y + 2z y s.t. 0<= x; 0<= y; 0<=z; 0 <=λ3 x + λ1 = 4; y + λ2 = 3; z + λ3 = 3; x + y + z + λ4 = 8; 0<=y 0<= λ1; 0<= λ2; 0<= λ3; 0<= λ4 0<=x 0< 0 <=λ4 解空間(多面体の中)を形作る7つの面それぞれが 上の 0<= x,y,z,λ1-4 に対応している 0<=z 0< x y 0 <=λ1 0 <=λ2 2011/07/23 DSIRNLP #1 79
  • 80. z スラック変数の意味 max 4x + 3y + 2z y s.t. 0<= x; 0<= y; 0<=z; 0 <=λ3 x + λ1 = 4; y + λ2 = 3; z + λ3 = 3; x + y + z + λ4 = 8; 0<=y 0<= λ1; 0<= λ2; 0<= λ3; 0<= λ4 0<=x 0< 0 <=λ4 解空間(多面体の内側)を形作る7つの面それぞれが 上の 0<= x,y,z,λ1-4 に対応している 0<=z 0< x y 0 <=λ1 ポイント:解は、この7変数のうち 0 <=λ2 3つが0になっている 2011/07/23 DSIRNLP #1 80
  • 81. スラック変数 max 4x+3y+2z max 4x+3y+2z s.t. 0<= x; 0<= y; 0<=z; s.t. 0<= < s t 0< x <= 4; 0<= y <= 3; 0< z <= 3; 0< < 0<= < x <= 4; y <= 3; z <= 3; x+y+z <= 8; x+y+z <= 8; max 4x + 3y + 2z s.t. 0<= x; 0<= y; 0<=z; x + λ1 = 4; y + λ2 = 3; z + λ3 = 3; x + y + z + λ4 = 8; スラック変数ラムダλを導入 ラック変数ラ ダ を導入 0<= λ1 0<= λ2 0<= λ3; 0<= 0 λ1; 0 λ2; 0 λ3 0 λ4 max 4x + 3y + 2z s.t. 0<= x; 0<= y; 0<=z; λ1 = 4 - x; λ2 = 3 - y; λ3 = 3 - z; スラック変数を λ4 = 8 - x - y - z; 左辺に移項 0<= λ1 0<= λ2 0<= λ3; 0<= 0 λ1; 0 λ2; 0 λ3 0 λ4 2011/07/23 DSIRNLP #1 81
  • 82. シンプレックス表 実装上は、シンプレックス表を次々と書き換えて求解する max 4x + 3y + 2z この3つの値が0、すなわち この3つの値が0 すなわち s.t. 0<= x; 0<= y; 0<=z; x,y,zは0以上という制約にひっかかっている λ1 = 4 - x; λ2 = 3 - y; λ3 = 3 - z; λ4 = 8 - x - y - z; z 切片 x  y z  0<= λ1; 0<= λ2; 0<= λ3; 0<= λ4 ひ こ f(x,y,z) 0 4 3 2 っか ちら λ1  λ1 4 ‐1 1 か の λ2  3 ‐1 っ 制 てな λ3 3 ‐1 い 約 に λ4  8 ‐1 ‐1 ‐1 は 現在は原点( ,y , )におり、 現在は原点(x=0,y=0,z=0)におり、 スコアは0(f(x,y,z)の行の切片)ということを シンプレックス表で表現できる x y 2011/07/23 DSIRNLP #1 82
  • 83. z 探索方向の決定 x,y,z いずれ 切片 x x  y z  z の方向に移 動するか? f(x,y,z) 0 4 3 2 λ1  4 ‐1 0 0 λ2  3 0 ‐1 0 λ3 3 0 0 ‐1 λ4  λ4 8 ‐1 1 ‐1 1 ‐1 1 シンプレックス表から、 • xは4まで増やせる(4まで増やすとλ1が x 0となり、制約に阻まれる) • yは3まで増やせる(3まで増やすとλ2が y 0となり制約に阻まれる) • zも3まで増やせる(3まで増やすとλ3が0 も3まで増やせる(3まで増やすと 3が0 となり制約に阻まれる) x,y,zそれぞれの係数から、xは4まで増やすことによって16、yは3まで増やすことに よって9 zは3まで増やすことによって6 目的関数の値が増える→xを増やす よって9、zは3まで増やすことによって6、目的関数の値が増える→xを増やす 2011/07/23 DSIRNLP #1 83
  • 84. z ピボット要素の特定 この‐1の要素を の 1の要素を 切片 x x  y z  z ピボットと呼ぶ f(x,y,z) 0 4 3 2 λ1  4 ‐1 0 0 λ2  3 0 ‐1 0 λ3 3 0 0 ‐1 λ4  λ4 8 ‐1 1 ‐1 1 ‐1 1 • xを増やしたとき、λ1の行の制約と、λ4 の行の制約がxの増加を阻む x • λ1の行の制約に先にひっかかる λ1の行の制約に先にひっかかる: 0 <=λ1の y 制約に阻まれる 切片が4、係数が-1であるため、xを4ま で増やしたところで制約にぶつかる • この行と列の交わる場所の要素を ピボット要素と呼ぶ 幾何的には、x=4の平面にまずぶつかる ちなみにλ4の制約は上の図の 三角形に直方体を切り取っている面に相当(p 78)参照 ちなみにλ4の制約は上の図の、三角形に直方体を切り取っている面に相当(p.78)参照 2011/07/23 DSIRNLP #1 84
  • 85. シンプレックス表の書き換え z 切片 x  y z  f(x,y,z) f( ) 0 4 3 2 λ1  4 ‐1 0 0 x=0, y=0, z=0 λ2  3 0 ‐1 0 λ3 3 0 0 ‐1 λ1=0, y=0, z=0 λ4  8 ‐1 ‐1 ‐1 ピボット • λ1とxを入れ替える x • Xをλ1で表す(λ1の行のxを左辺に移項): 0 <=λ1の λ1 = 4 - x → x = 4 - λ1 y 制約に阻まれる • f(x y z) に上式を代入: 制約 阻 f(x,y,z) f = 4x + 3y + 2z = 4(4-λ1) + 3y + 2z = 16 – 4λ1 + 3y + 2z • λ4の行にも代入 の行 も代入 λ4= 4 + λ1 - y - z 2011/07/23 DSIRNLP #1 85
  • 86. シンプレックス表の書き換え 切片 x  y z  • λ1の行とxの列を入れ替える f(x,y,z) 0 4 3 2 • Xをλ1で表す(λ1の行のxを左辺に移項): λ1 = 4 - x → x = 4 - λ1 λ1  4 ‐1 0 0 • f(x,y,z) に上式を代入: λ2  λ2 3 0 ‐1 1 0 f = 4x + 3y + 2z = 4(4-λ1) + 3y + 2z λ3 3 0 0 ‐1 f = 16 – 4λ1 + 3y + 2z λ4  8 ‐1 ‐1 ‐1 • λ4の行にも代入 λ4= 4 + λ1 - y - z 切片 λ1  y z  f(x,y,z) 16 ‐4 3 2 x  4 ‐1 0 0 λ2  λ2 3 0 ‐1 1 0 λ3 3 0 0 ‐1 λ4  4 1 ‐1 ‐1 2011/07/23 DSIRNLP #1 86
  • 87. 掃き出し法 • 計算機では掃き出す法を使って行列を書き換える 切片 x  y z  • λ1の行をc倍してλ4の行に足し、λ4のx列の要素を0にす f(x,y,z) 0 4 3 2 ることを考える λ1  λ 4 ‐1 0 0 • x列の係数から、-1倍して足せば良いことがわかる x列の係数から、 1倍して足せば良いことがわかる λ2  3 0 ‐1 0 • -1 = -(-1/-1) • λ4 - λ1= 8 – x – y – z + (-1(4 – x)) = 4 – y – z λ3 3 0 0 ‐1 • λ4 = 4 + λ1 – y – z λ4  λ 8 ‐1 ‐1 ‐1 • 同様にf(x,y,z)の行も掃き出す 切片 λ1  y z  • X列の係数から、4倍して足せばいいことがわかる f(x,y,z) 16 ‐4 3 2 • 4 = -(4/-1) x  4 ‐1 0 0 • f + 4λ1 = 4x + 3y + 2z + 4 (4 – x) = 16 + 3y + 2z λ2  3 0 ‐1 0 • f = 16 – 4λ1 + 3y + 2z λ3 3 0 0 ‐1 λ4  4 1 ‐1 ‐1 • λ1の行はピボット要素の符号を反転させたもので割る(単 にλ1とxを入れ替えるだけなので) • λ1 = 4 – x → x = 4 – λ1 2011/07/23 DSIRNLP #1 87
  • 88. 図でみると z 切片 x  y z  f(x,y,z) 0 4 3 2 λ1  4 ‐1 0 0 λ2  λ2 3 0 ‐1 0 x = 0, y = 0, λ3 3 0 0 ‐1 z = 0 λ4  8 ‐1 ‐1 ‐1 x y z 切片 λ1 λ1  y z  z f(x,y,z) 16 ‐4 3 2 x  4 ‐1 0 0 λ1 = 0, y = 0, λ2  3 0 ‐1 0 z = 0 λ3 3 0 0 ‐1 x λ4  λ4 4 1 ‐1 ‐1 y 2011/07/23 DSIRNLP #1 88
  • 89. 単体法のアルゴリズム 1. ピボ ピボット要素を見つける 素を る – 列の要素(先の例ではx,y,z)の係数、制約からど 列 要素(先 例 は ,y, ) 係数、制約 ら の変数の値をどれだけを増やせば一番目的関 数 値 増 る 調 る 数の値が増えるか調べる – 値がこれ以上増やせなければおしまい! 2. 掃き出し法を使ってシンプレックス表を書き 2 掃き出し法を使 てシンプレ クス表を書き 換える 3. 1に戻る(シンプル!) 2011/07/23 DSIRNLP #1 89
  • 90. 整数計画問題 (Integer Linear Programming Problem) • 整数計画問題 • 解が取り得る値が整数(さっきの青点)である線形計画問題 – 特に解が取り得る値が2値(0か1)を0‐1整数計画問題という 特に解が取り得る値が2値(0か1)を0 1整数計画問題という • NLPへの応用 – 最小全域木:Dependency Parsing (Riedel+ EMNLP06)(Martins+  ACL09) – ナップサック問題:自動要約(McDonald+ ECIR07) (Takamura+ EACL09) – 巡回セ ルスマン問題 SMT(G 巡回セールスマン問題:SMT(Germann+ ACL01)(Zaslavskiy+ ACL09)、 ACL01)(Z l ki ACL09) Sentence Ordering(Althaus+ ACL04) – などなど 言語処理タスクの解ベクトルは整数 →整数計画問題として定式化 2011/07/23 DSIRNLP #1 90
  • 91. 凸包(Convex hull) 凸包(Convex hull) • 整数条件下での実行可能領域を考える ※ただし凸包 を求めるのは 難しい 制約 凸包 ポイント: 整数解<=小数解 が必ず成立 与えられた点集合を含む最小の多面体 2011/07/23 (2次元だと多角形)=凸包 DSIRNLP #1 91
  • 92. 線形計画緩和 (Linear Programming Relaxation) (Linear Programming Relaxation) • 逆に、整数計画問題から整数条件を取り除くと、問 題が緩和される(易しくなる) • このことを線形計画緩和(relaxation)という • 緩和問題の最適解=元問題の最適解のことがある 緩和問題の最適解 元問題の最適解のことがある • また、一般に小数解の近傍を探せば整数解がある →緩和して問題を簡単にして解ける場合がある 線形計画問題を解く際のテクニックの つ 線形計画問題を解く際のテクニックの一つ 2011/07/23 DSIRNLP #1 92
  • 93. 品詞同定を整数計画法で表現 3 8 12 5 3 A A A 3 4 3 3 始端 終端 5 2 4 3 B B B 3 3 4 8 11 形態素1 形態素2 形態素3 2011/07/23 DSIRNLP #1 93
  • 94. 品詞同定を整数計画法で表現 3 8 12 5 3 A x2 A x6 A 3 4 3 x3 3 x7 x0 x10 始端 終端 x1 x4 5 x8 2 x11 4 3 B x5 B x9 B 3 3 4 8 11 形態素1 形態素2 形態素3 それぞれの辺に変数xを割り当て、式を立てる(x0-11は全て0か1) max {3*x0 + 4*x1 + 5*x2 + 5*x3 + 3*x4 + 3*x5 + 3*x6 + 2*x7 + 4*x8 + 3*x9 + 3*x10 + 3*x11 } 同時に選んではいけない辺を制約で表現 s.t. x0+x1 = 1 x2+x3+x4+x5 = 1 x6+x7+x8+x9 = 1 x10+x11 = 1 t 0 1 1; 2 3 4 5 1; 6 7 8 9 1; 10 11 1; 同時に選ばないといけない辺を制約で表現(x0が選ばれているがx2もx3も選ば れていないというような場合を防ぐ s.t. x0=x2+x3; x1=x4+x5; x2=x6+x7;x3=x8+x9;x4=x6+x7;… 2011/07/23 DSIRNLP #1 94
  • 95. 指数的な計算量 • maxx {a*x0 + b*x1 + c*x2 + d*x3} s.t. x  {0, 1} { , } • 4つの変数が0と1を取りうるため、 2^4 = 16 通 りがある • 4つならばいいが100変数だったら? 2^100  ≒ 1.3*10^30 となり、ちょっと無理そう 2011/07/23 DSIRNLP #1 95
  • 96. 分枝限定法 (branch and bound method) (branch and bound method) • 整数計 法を解く 整数計画法を解くアルゴリズム ゴ ズ • 総当たり は大変なので、解空間を分割し、 総当たり……は大変なので、解空間を分割し、 分割した空間の上限を計算、探索が不要な 空間を見切る • 基本的な作戦:場合分けをして、明らかに最 適解を含まない領域を探索しない 2011/07/23 DSIRNLP #1 96
  • 97. 例題:ナップサック問題 • 袋 お菓 を詰めた 袋にお菓子を詰めたい • お菓子にはそれぞれ嬉しさがある(目的関数) • ただし袋には当然サイズがあり、お菓子を無尽蔵に 詰めることはできない(制約) • 嬉しさを最大化するようにお菓子を詰めたい(最適 化問題) • maxx {a*x0 + b x1 + c x2} {a x0  b*x1 c*x2} s.t. x  {0, 1}; x0 + x1 + x2 <= 2; 2011/07/23 DSIRNLP #1 97
  • 98. アルゴリズム 1. 手元の解空間の中から、可能解を得る 手 解空間 中から 能解を得る 2. 分枝 (branch) 3. 分枝した空間の上限を得る 4. 4 可能解と上限を比較 1. 可能解>上限であればその分枝を破棄 (bound) 2 上限>=可能解であればステップ2へ 2. 5. 1に戻る 2011/07/23 DSIRNLP #1 98
  • 99. 探索木 • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3} s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10; x0 = 1 1.貪欲法で可能解を Y N 探索 2011/07/23 DSIRNLP #1 99
  • 100. 探索木 • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3} s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10; x0 = 1 1.貪欲法で可能解を 5 (4) Y N 探索 x1 = 1 Y N 2011/07/23 DSIRNLP #1 100
  • 101. 探索木 • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3} s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10; x0 = 1 1.貪欲法で可能解を 5 (4) Y N 探索 x1 = 1 Y 5+3 (4+6) ( ) N x2 = 1 2011/07/23 DSIRNLP #1 101
  • 102. アルゴリズム 1. 手元の解空間の中から、許容解を得る 手 解空間 中から 許容解を得る 2. 分枝 (branch) 3. 分枝した空間の上限を得る 4. 4 可能解と上限を比較 1. 可能解>上限であればその分枝を破棄 (bound) 2 上限>=可能解であればステップ2へ 2. 5. 1に戻る 2011/07/23 DSIRNLP #1 102
  • 103. 探索木 • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3} s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10; 2.整数条件を緩和、上限を シンプレックス法で計算 x0 = 1 5 (4) Y N x1 = 1 x1 = 1 Y 5+3 (4+6) ( ) N x2 = 1 2011/07/23 DSIRNLP #1 103
  • 104. 探索木 • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3} s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10; 2.整数条件を緩和、上限を シンプレックス法で計算 x0 = 1 5 (4) Y N x1 = 1 x1 = 1 Y 5+3 (4+6) ( ) N x2 = 1 2011/07/23 DSIRNLP #1 104
  • 105. 探索木 • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3} s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10; 2.整数条件を緩和、上限を シンプレックス法で計算 x0 = 1 5 (4) Y N x1 = 1 x1 = 1 • maxx {3*x1 + 2*x2 + 2*x3} Y s.t. x  [0, 1]; 6*x1 + 3*x2 + 2*x3 <= 10; 5+3 (4+6) ( ) N x2 = 1 2011/07/23 DSIRNLP #1 105
  • 106. 探索木 • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3} s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10; 2.整数条件を緩和、上限を シンプレックス法で計算 x0 = 1 5 (4) Y N x1 = 1 x1 = 1 • maxx {3*x1 + 2*x2 + 2*x3} Y s.t. x  [0, 1]; 6*x1 + 3*x2 + 2*x3 <= 10; 5+3 (4+6) ( ) N → 3*1+2*1+2*1 = 7 x2 = 1 この領域の上限=7 先に求めた可能解=8なので、 先に求めた可能解 8なので この領域に最適解がある可能性はない! 探索中止 2011/07/23 DSIRNLP #1 106
  • 107. アルゴリズム 1. 手元の解空間の中から、許容解を得る 手 解空間 中から 許容解を得る 2. 分枝 (branch) 3. 分枝した空間の上限を得る 4. 4 可能解と上限を比較 1. 可能解>上限であればその分枝を破棄 (bound) 2 上限>=可能解であればステップ2へ 2. 5. 1に戻る 2011/07/23 DSIRNLP #1 107
  • 108. 探索木 • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3} s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10; 2.整数条件を緩和、上限を シンプレックス法で計算 x0 = 1 5 (4) Y • maxx {5 + 3*x1 + 2*x2 + 2*x3} x1 = 1 s.t. x  [0, 1]; 6 x1 + 3 x2 + 2 x3 < 6; s.t. x [0, 1]; 6*x1 + 3*x2 + 2*x3 <= 6; N Y 5+3 (4+6) ( ) x2 = 1 x2 = 1 2011/07/23 DSIRNLP #1 108
  • 109. 探索木 • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3} s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10; 2.整数条件を緩和、上限を シンプレックス法で計算 x0 = 1 5 (4) Y • maxx {5 + 3*x1 + 2*x2 + 2*x3} x1 = 1 s.t. x  [0, 1]; 6 x1 + 3 x2 + 2 x3 < 6; s.t. x [0, 1]; 6*x1 + 3*x2 + 2*x3 <= 6; N → 5 + 3*(1/6) + 2*1 + 2*1 = 9.5 Y 5+3 ( (4+6) ) この領域の上限=9.5 この領域の上限=9 5 x2 = 1 x2 = 1 先に求めた可能解=8なので、 探索続行、分枝 2011/07/23 DSIRNLP #1 109
  • 110. 探索木 • maxx {5*x0 + 3*x1 + 2*x2 + 2*x3} s.t. x  {0, 1}; 4*x0 + 6*x1 + 3*x2 + 2*x3 <= 10; 2.整数条件を緩和、上限を シンプレックス法で計算 x0 = 1 5 (4) Y x1 = 1 N Y 5+3 (4+6) ( ) x2 = 1 x2 = 1 2011/07/23 DSIRNLP #1 110
  • 111. アルゴリズム 1. 手元の解空間の中から、許容解を得る 手 解空間 中から 許容解を得る 2. 分枝 (branch) 3. 分枝した空間の上限を得る 4. 4 可能解と上限を比較 1. 可能解>上限であればその分枝を破棄 (bound) 2 上限>=可能解であればステップ2へ 2. 5. 1に戻る 2011/07/23 DSIRNLP #1 111
  • 112. ソルバを実装するか? • すごく大変 すごく大変……でもないが簡単でもない もな が簡単 もな • 少なくとも以下の3つを実装しなければならない 1. 良い可能解を高速に見つける方法(貪欲法、シンプレッ クス法+丸め、など) 2. 上限を高速に見つける方法(シンプレックス法/内点法) • シンプレックス法はCで200‐300行くらい 3. 1.と2.を使って再帰的に探索するルーチン • 整数計画法の場合、 lp_solve などフリーのソフトウ ェアに数式を投入して解くのが無難 – エクセルでも解ける 2011/07/23 DSIRNLP #1 112
  • 113. ILP の使いどころ ILP の使いどころ • 問題を切り分けるとき • NLP では、モデル、パラメタ、デコードを考える必要がある • あるタスクを解いてみて、その精度が十分でない場合、3つ の可能性を考える必要がある – パラメタがうまく推定されていない:訓練データ不足、イタレーションが 足りてない場合など。学習曲線を見てみる – デコードがうまくいっていない:ビームサーチなどで探索している場合 、探索空間に比してビーム幅が狭い可能性。あまりよろしくない解を 見つけている可能性あり。ILP等で厳密解を見つけてみる 見つけている可能性あり ILP等で厳密解を見つけてみる – モデル:上の2つが問題なさそうな場合、そもそも当該タスクを解くに あたってモデルの表現力が足りてない(バイグラム→トライグラムにし てみる) 2011/07/23 DSIRNLP #1 113
  • 114. まとめ • 最初は NLP の全体像のお話をしました – 解析と生成 – y = argmaxx f(x;w) y g ( ; ) – モデル、パラメタ、デコード • 次にデコードのお話をしました 次にデコ ドのお話をしました – 貪欲法、ビームサーチ、動的計画法、整数計画法 – 自分でモデルを作ってみる – 式を書けば lp_solve が解いてくれるので、面白いモデル を考えてみる – ILPで解けたら、他の、速いデコード法を考えてみる 2011/07/23 DSIRNLP #1 114
  • 115. 参考文献(教科書) • 最適化 – 松井ら, 入門オペレーションズ・リサーチ, 東海大学出版会, 2008. (平易) 松井ら 入門オペレ ションズ リサ チ 東海大学出版会 2008 (平易) – 金谷, これなら分かる最適化数学, 共立出版, 2005. (おすすめ) – 今野ら, 整数計画法と組合わせ最適化, 日科技連, 1982. (古いがわかりやすい) – コルテら(著)浅野ら(訳), 組み合わせ最適化(第2版), シュプリンガー・ジャパン,  2009. (攻撃力高い、引用数多) • アルゴリズムとデ タ構造 アルゴリズムとデータ構造 – メールホルンら(著)浅野(訳), アルゴリズムとデータ構造, シュプリンガー・ジャパ ン,  2009.(入門的) – Cormen et al Introduction to Algorithms (3rd Eds ) MIT Press 2009 (金字塔 ジ Cormen et al., Introduction to Algorithms (3rd Eds.), MIT Press, 2009. (金字塔。ジ ャケがかっこいい) • 実装 – Press et al., Numerical Recipes in C, Cambridge University Press, 1988. – 奥村, C言語による最新アルゴリズム事典, 技術評論社, 1991. – 秋葉ら, プログラミングコンテストチャレンジブック, 毎日コミュニケーションズ,2010. 秋葉ら, プ グラミングコンテストチャレンジブック, 毎日コミュ ケ ションズ,2010. 2011/07/23 DSIRNLP #1 115
  • 116. • Thanks.  2011/07/23 DSIRNLP #1 116