言語処理学会第18回年次大会(NLP2012) チュートリアル日レポート
自然言語処理学会第18回年次大会(NLP2012)のプレイベント(チュートリアル)」が始まりました。全体スケジュールとしては以下のように進むようです。
・3/13: チュートリアル(2セッションx2)
・3/14: 本会議第1日(通常セッションx2、ポスターセッション)
・3/15: 本会議第2日(通常セッションx1、ポスターセッション、招待講演x2)
・3/16: 本会議第3日(通常セッションx2、ポスターセッション)
今日のチュートリアルは、乾先生の意味談話処理、鹿島先生のネットワークと機械学習に参加してきました。スライド資料も配布された(リンクも下記掲載)ので、この記事では会場でのQAや、個人的に感じた疑問/感想などの備忘録がメインです。
naltoma印は當間の個人的な疑問点。
Q: A: で始まってるのは会場内での質疑応答を當間なりに解釈したものです。
<目次>
(T-a) 3月13日(火) 13:00-15:00 (603講義室)司会:ジェプカ・ラファウ(北大)「大規模言語資源時代の意味談話処理」乾健太郎 氏(東北大学)
チュートリアル資料: PDF
合理主義(古いAI)->知識獲得のボトルネック
経験主義(統計的機械翻訳/情報抽出)
情報爆発->大規模な知識獲得
うまくいけば推論/意味談話解析に繋がると期待
大規模言語資源のインパクト
(1)外部資源の利用
naltoma: どのタイミングでどの資源を参照するかをどう決定する?
(2)意味解析モデル構築と知識獲得の融合(今回のメイン)
(3)実応用の広がり
1. Annotation layer cake
レイヤー毎に最適化。
述語項構造から「より統合された意味処理」には大きな飛躍がある。
2. 情報抽出と知識獲得の今
「情報抽出モデル=抽出パターン集合」->パターン収集
様々なアイデア:単一文書からの抽出->複数文書からの抽出(大規模化)
十分に大きくなると、意味解析がオープンドメインでできるのではないか。
単語-パターン行列
ペア-パターン行列
ブートストラップ->意味ドリフト(意味曖昧性)->多様な手掛かりで解消
抽出対象は明示的な関係のみ。
モダリティ(事実性)、時間、量化等との統合。
明示的関係をパターン抽出(従来の意味解析相当?)+非明示的関係を同定(従来の談話解析相当?)
naltoma: パターンの組み合わせや解釈が意味?解釈をどうやる?
naltoma: こうして得られたパターン集合が「知識」?
naltoma: 「知識/パターン」は不変固有のものか?
Q: スケールアップするかどうかという話で、30万件というのは確かに多いがまだまだ沢山必要だと思う。時々マニュアルチェックで落としたりしながら半自動抽出しているとのことだが、スケールするぐらいのコストでやれそうか?
A: そこは大切な観点だが(著者本人ではないので)分からない。述語項構造が一つのキーになっているが、それとは別のパスがfeasibleになってきているというのが今回の紹介。
Q: 意味ドリフトの「多様な手掛かりで解消」という話があったが、そこで与えられるパターンは人手作成?
A: ブートストラップによる自動抽出。学習。人手でやってる所もあると思うが。
Q: マック型の情報抽出の場合はタスクを設定されている。一般化可能か?
A: 非常に大切な観点で、答えはないが第4章で話してみたい。
3. open issue) Making the implicit explicit
非明示的な関係の例:含意
まだまだこれからという状況
手続き的アプローチ: semantic enrichment
論理ベースのアプローチ: interpretation as abduction
スケーラブルな推論エンジン
naltoma: 「含意関係認識」という切り離してタスク設定することにより見逃しているタスクはないか?(他にどんなタスクが必要か?)
Q: 知識関係をロジックで書くとき、度合いみたいなものはどうやって扱う?数値を入れたりする?
A: 基本的に非常に難しい、誰も解けていない問題だと思う。ロジックに関しては、マルコフの例では確率を導入しようとしている。尤度関数を学習する等して扱おうとしている研究例もあるらしい。
Q: モダリティも同じ枠でやる?
A: モダリティ、可能性の所まで行かなくても真偽判断みたいなレベルでのパターンで一部は可能。全部やれるかというと難しい。どうすれば良いかはまさにこれから。
Q: abductionの所で仮説評価関数も多分学習可能だろうという話だったが、評価関数というのはそれが備わると「良いinterpretation」というのを判断できるようになる?
A: 恐らくその通り。仮説の良し悪しを重み付け学習するということだと思う。
Q: 皆が納得できるような「これは入っているべき」というのもあると思うが、逆に深読みし過ぎとかいろいろバリエーションがあると思う。研究者としてどう切り分けるか。
A: 問題。生成問題として切り分けて考えることもあるかもしれない。難しいからこそ研究対象になっている。問題の落とし方が今後の大きな鍵になると思う。
4. open issue) やわらかい記号の世界
実体/関係のクラスをどう決めるか:さじ加減/粒度問題
データベースを参照可能な、量化を含む意味表現の学習: semantic parsing + interpretation
陽に構造与えなくてもある程度学習できる
クラス粒度を自動選択
ドメインオントロジー無し
ラベル無しクラスタリング
クラスタも作らない
ベクトル空間モデル、語の意味を文脈ベクトルで表現: compositional distributional semantics
ラベル無しの意味表現だけで自己完結できるか?
Propositional & Distributional semantics の融合?
naltoma: 汎用的なクラスというのは環境依存で設定可能かもしれないが、ある所で頭打ちにならないか?(環境依存したものは汎用的なクラスになるか?)
Q: クラス粒度の話があったが、クラスタリングにしたからといって粒度の問題を解決できるとは思えない。どの粒度にするのかという話が必要では。
A: その通り。一方で、人間が決めた記号/ラベルが必要ではない世界も考えれる。ラベルの話。
Q: パターンというのに焦点が当たっていたと思うが、パターンを定義、整理できるか。
A: トップダウンな定義はないと思う。実際に起こっていることは、元々は表層の単語列やスロットがあって、古典的な情報集出があってそれが拡大解釈されてきた。素性の組み合わせで表現するというのはかなり一般的なパターンと考えられるが、実はもうパターンと呼ぶべきではないかもしれない。今回は簡略化するためパターンと呼んだ。特定ドメインで調整するというところからオープンドメインで重み調整するという時代になってきた。
Q: このあたりが意味処理の進展ということ?
A: レイヤー毎にもいろいろ起きているとは思うが、今回のストーリーでは尖った所に焦点を当てた。
5. ルールを作る所から
レイヤー毎に精度向上目指すというルールを作っているのは誰か?
naltoma: 「常識的な知識」は記述しきれるか?
naltoma: 直接的な記述無しに処理する「自然言語処理」は?
naltoma: 自然言語を通した「理解」には正解があり得るのか。入試問題のような「できるだけ誤解しないように編集された文章」は例外的で、多くの状況では「個々人が相手に伝わっている/相手の意図を解釈出来ていると思い込んでいる」だけに過ぎず、実際どのように「理解」しているかは微妙な気も。数学的に解釈可能な自然文だけに制約されていないか。(根拠のない妄想だけど)
(T-c) 3月13日(火) 15:30-17:30 (603講義室)司会:高村大也(東工大)「ネットワークと機械学習」鹿島久嗣 氏(東京大学)
チュートリアル資料: PDF
ネットワーク構造を持ったデータを扱う機械学習問題を、
{内部,外部}ネットワーク x {ノード,リンク}推論
の4通りに分類。
いろんなモデルについて、どういう仮定の下でどういう構造を学習しているか。
スコープ1: 内部/外部ネットワーク
内部ネットワーク: 注目するデータ単位の内側にあるネットワーク構造
外部ネットワーク: 外側にあるネットワーク構造、e.g.: ソーシャルネットワーク
naltoma: 内部/外部は解析対象という概念で切り分けられているが、この切り分けは自明?
スコープ2: 個々のデータに興味がある内外の関係に興味がある
スコープ1 x スコープ2
内部ネットワーク: 部分構造に注目した線形モデルの拡張
外部ネットワーク
ペアワイズ予測/マルコフネットワーク
潜在変数モデルラベル伝搬
naltoma: 候補モデルがあるが、これらを一通り試して合算すると「全体を知る」ことになる?(抜けてる解析対象は無い?)
分類のためのモデル: 線形識別モデルはすべての基本
部分構造袋表現: 組み合わせ的に数が増加
パタンマイニング法: 重要な部分構造だけ取り出す
最初の「組み合わせの多さ」をうまいこと解決する必要がある
連続値ラベルには少し弱い(離散化が前提)
カーネル法: 類似度ベースのモデル
カーネル関数をうまいこと設計する必要がある
学習後のモデル適用時の計算量がデータ数に依存
データ内の構造にフォーカスした解析: パタン発見と構造予測
構造予測は、モデルの出力候補が指数的に多い。分類モデルを直接的に適用するのは困難
CRF/構造化パーセプトロン: 線形識別モデルの拡張
素性ベクトルの設計を工夫: 入力と出力が組みとして正しいかを測る
素性を絞ることで、動的計画法等を適用し効率化を測る
外部ネットワークを持つデータの解析
個々のデータにフォーカス: ノード分類、ノードクラスタリング、ランキング
ラベル伝搬法(ノード分類:隣は似ているという仮定)
マルコフネットワーク(ノード分類:隣は似ているとは限らない、より一般的なモデル)
関係データのフォーカス: リンク予測、構造変化解析
リンク指標(リンク予測:2つのノードが共通にもつ隣接ノード数で重み付け)
ペアワイズ予測(リンク予測:線形モデルの2データ組への拡張)
パラメータ行列Wの低ランク性を仮定し、実行パラメータ数を減らす:ランク、次元圧縮
解釈:ある種の素性グルーピング
最適化の観点からは低ランク制約は凸集合の与えない
トレースノルム(特異値の和)制約(L1ノルム制約)で間接的に低ランクを解く
両者に共通: マルコフネットワーク(より一般的なモデル)
行列/テンソル分解、確率的ブロックモデル(潜在変数モデル)
潜在変数モデル: ノードの潜在的な状態を仮定するモデル
2つのノードないし局所的な構造を用いる
連続的な潜在変数: 行列分解、テンソル分解
協調フィルタリング(GroupLens): 暗に行列の低ランク性を仮定?
低ランク性を仮定して行列分解
特異値分解は全要素が観測されていることが前提
補完問題の場合:適当に埋めてから分解/EM的繰り返し(埋める分解)
大規模データの場合:観測部分のみから確率的勾配法
凸最適化として解く場合:トレースノルム制約
*スケールしないので時と場合による
離散的な潜在変数: 確率的ブロックモデル(静的)
各ノードに離散的な潜在状態が与えられる
潜在状態の組みに応じた確率でリンクが張られる
混合メンバシップモデル: リンク毎にノードの役割が変わるようなモデル(動的)
解釈
LSI: 連続的な潜在意味のインデクス
LSIの離散版がpLSI(確率的ブロックモデル)。
混合メンバシップモデルがLDA。
テンソル(多次元配列)分解:他ノードの関係の表現
例:関係の時間的変化(顧客、商品、時間)
テンソル分解:行列の低ランク分解の一般化
CP分解:特異値分解の自然な拡張(コアテンソルが対角;正方)
Tucker分解:よりコンパクトな表現(みっちりコア;各モードの次数が異なる)
応用事例
ソーシャルネットワーク分析(人x人x時間)
タグ推薦(人xWebページxタグ)
Webページに付けるタグを推薦
人によってタグの付け方には個性がある
課題:組み合わせの数が組み合わせ的に増加
低ランク仮定だけでは足りない
観測が粗になっていくと予測精度の悪化が顕著
低ランク性+外部情報の利用「隣は振る舞いが似ている(ラベル伝搬)」
Q: テンソル分解で時間を入れるという話があったが、例えば時間変化を入れるというのは、時間の順番が必要そうだが入れ方に工夫があるのか。
A: 時間的に連続しているから入れるべきだという考え方もあれば、周期的な繰り返しに意味があるとして入れるという考え方もあり、導入方法自体が一つの発見でもある。一つの例がラベル伝搬的な考え方。
Q: リンク予測で、のーどを予測するというような話がないか? リアルには存在しているけどSNSには存在しないとか。リンクが欠けている場合ではなく、ノードが欠けている場合。
A: そういう問題を解いている例はある。問題としては難しい。多くの事例があるわけではない。
Q: リンク予測やる時に最適化問題として解くと、欠損部分がないという状態で解くのは気持ち悪い。問題としてはリンクが無い状態で学習しているにも拘らず、リンクが無い場所を予測しようとする問題の建て方?
A: 扱い方にもいくつかある。リンクの有無を正例/負例として扱うこともあるし、PositiveかUnlabeled(分からない)として扱う場合もある。現実的には適当に持ってきて負例にするケースが多いかも。
Q: 過学習とかも問題にならない?
A: できることには限界がある。結果的にはゼロの所は半分負例と考えていることにもなったり。
Q: テンソル分解でネットワーク予測ではCP分解の方が精度通いという話だが、その理由は?
A: 経験的にそうだというぐらいの話。Tuckerでは直行性が悪さをしている可能性があるかも。
Q: データによって異なる?
A: 確認したソーシャルネットワーク、タグ推薦では限定された範囲だがCP分解の方が良かった。
Q: 自然言語処理で行列上のパラメータを扱ったものがでてくるのではないかという話だったが、1次元のベクトル上だったものが行列上になるとカーネル法が使われたような形で凄いスパースなものになる。そういう意味でカーネル法があった。これから粗な行列を扱うにあたって、何らかの解決がされているのか、何らかの対処が必要なのか。
A: 低ランク性とかが対処の一例。実質的なパラメータの数を抑える。
Q: グラフのデータが商用的にもはやっているが、SNSとかでの大規模なデータではどういうツールなりを使っている?
A: 個人的にはそんなに大きなデータは使っていない。
Q: 大規模化しないといけないというような話はある?
A: 大規模化というのは当然考えるべきことではあると思うが、個人的な興味で言うとモデル自体に興味がある。
naltoma: グラフやネットワークとしてどう表現するか自体が一つの問題では?(ノードやリンクの定義無しに推定する?)
naltoma: ノードの存在推定もできる?(意味のある推定?)
naltoma: グラフとして表現してしまった時点で情報が編集されてると思うが、これは人間が理解するモデルとして妥当か?(自然言語処理として目指すゴールとしては妥当?)