by ご近所のきよきよ
曖昧性処理には表層表現と深層表現の1対多対応を管理していかねばならないということでした。例えば、「信子は何事もはやい」というのは「信子は何事も早い」か「信子は何事も速い」の両方が考えられます。この違いは文脈によって判断していきます。「食べるのがはやい」ですと、「食べるのが速い」ですし、「起きるのがはやい」ですと「起きるのが早い」になります。無論もっと深く文脈は関係します。マット運動中ですと、「起きるのがはやい」は「起きるのが速い」になります。そこは、文脈のネットワークを考慮していくことになります。今回はこの辺の文脈処理事情を、モデル基盤で考えていきましょう。
1.基本的な考え方
【表層表現と深層表現】
表層表現は自然言語や画像イメージです。深層表現はそれを解析し、人工知能が理解した表現です。例えば、
(表層表現)信子は公園を歩いていた。
(深層表現)ND(信子;+human)ND(公園;+location)CASE(信子:agent)CASE(公園:location.in)VB(歩く)ATTRIBUTE(歩く:+continue+past).
という具合です。ここで、知識ベースにモデルが複数立たれています。「信子」と「公園」と「歩く」です。
【コーパスモデル】
この人工知能が「明雄」だとすると、明雄が体験した事象(自然言語、画像イメージ)はまずコーパスに入れられます。そして最初は表層表現を時系列でスタックしていきますが、解析結果をどんどん対訳で深層表現を得て、対応づけてスタックしていきます。文脈処理は弛緩法でありますから、始めの頃は深層表現は何度も書き換えられるでしょう。
例えば、次のようなコーパスができます。
・信子は昨日6時に起きた。
・歯を磨いて朝食を取った。
・学校への途中明雄にあって、談笑しながら青空を見上げた。
・信子は何事もはやい。
【明雄モデル】
コーパスから「明雄」に関するものを時系列でスタックしていく。このとき深層表現も対応的にスタックしていく。
・2010年4月7日の6時頃(ステージ情報)
・信子は学校への途中明雄にあって、談笑しながら青空を見上げた。;(深層表現は略)
【信子モデル】
今回のコーパスの内容を深層表現にしてから、過去のモデルに加えていく。
【人間のモデル】
明雄とか信子のモデルを抽象化した人間というモデルも存在する。
【起きるモデル】
「起きる」という動詞の使われ方を収集していくモデルです。
・信子は昨日6時に起きた。
2.文脈処理・プライミングと曖昧性処理
表層表現は曖昧です。複数の深層表現と対応を持っています。表層表現は基本的にモデルで管理されます。単語としてですね。あるいは、連語としてですね。だから、モデルを見れば曖昧性の状況が明確に分かるのです。後は文脈ですが、入力した自然言語は単語の羅列な訳です。その羅列中の単語、連語は皆モデルを持っていますから、モデルの内部に保持している、深層表現を持ってくるようにすればよいのです。ぴったり合う表現を見つけられないときは抽象化モデルを検索して(「信子」モデルの代わりに「人間」モデルを検索して、「歩く」モデルの代わりに「移動する」モデルを検索して)推論していくことになります。
3.内容検索素子
文脈処理は単語や連語とのパターンマッチング技術を頻繁に行います。そのため、このパターンマッチングを高速で並行処理で行えるかどうかが人工知能の大問題になるのです。内容検索素子を提案してきたゆえんです。Synfowareなんかも機会があれば試してみたくあります。
4.モジュール設計
モデルは曖昧性処理のための機構です。曖昧性処理を実現するモジュールは、文脈処理(プライミング、知識ベース管理)、試行錯誤処理、永続化・評価システム、学習システムの4つは必要でしょう。
【文脈処理】
・FigureContextProcessor
・TextContextProcessor
【試行錯誤処理】
・FigureRetryProcessor
・TextRetryProcessor
【評価システム】
・FigureSystemEvalator
・TextSystemEvalator
【学習システム】
・FigureSystemLearner
・TextSystemLearner
おわり