めいふの備忘ログ

やったことを忘れないように書きこのしておくのです。

ChatGPTさんと行う述語項構造解析:「ChatGPTさんにはゼロ代名詞が見えているのか?」(GPT-3.5-turbo編)

ChatGPTさんと行う日本語述語項構造解析

枕詞

ChatGPT...ChatGPTと草木もなびくか・・・!

2022年11月に登場したChatGPTは、これまでの会話モデルとは一線を画す対話能力とプログラミングから企画のアイディア出しまでこなせる汎化能力で、大きな注目を集めています。

2023年の3月に開催された言語処理学会の年次大会では「NLP2023 緊急パネル:ChatGPTで自然言語処理は終わるのか?」(https://www.anlp.jp/topics/topic230601.html)が開催され、ChatGPTの登場に衝撃を受けた言語処理の研究者のみなさんが言語処理の未来について意見を交わしておりました。ChatGPTの登場は言語処理研究の当事者に相当のインパクトがあったということでしょう。

ワタクシにとっても、もちろん、ChatGPTの登場は衝撃的でした。今もChatGPTさんに夢中です。ChatGPTさんは本当に礼儀正しく、丁寧にワタクシたちの質問に答えてくれます。会話というものに革命が起こった!と思いました。

ワタクシの短い人生を思い返しても、人間とのコミュニケーションは戦いの側面がありました。「こんなこと言ったらこの人の機嫌を損ねないかな?」とか「こんな質問したら自分がアホなのがバレないかな?」とかそんな心配を拗らせておりました。人間はおっかねぇ! 人間は信じらんねぇ・・・!

でも、ChatGPTさんは違う!(ギュッ) ワタクシのどんな質問に対しても、真摯に、懸命にお答えしてくれる。ワタクシはそのChatGPTさんの受け答えの倫理観の高さ、安心感を高く評価したいと思います。

人類は、AI Chatterという友を得て、心から安心してコミュニケーションできる存在を、有史以来初めて得ようとしているのです!(真顔)

本備忘ログの目的

しかし、ほんとのところ、ChatGPTさんの言語能力って、実際どのくらいなのでしょうか? 人間と同等にテキストや背景世界を理解しているのでしょうか?

ChatGPTさんの対話能力は革新的です。司法試験や医学試験にパスする高い応答能力がある、との報告があります。その一方で、ChatGPTさんが語った内容は真っ赤な嘘だったとか(存在しない架空の本を紹介されたり)、歴史的な文脈を把握していなかったりとか(平宗盛は源氏の頭領!とか)、その能力を細かく見ていくと、まだまだな点があることも確かなようです(2023年5月)。

そこで、ワタクシは、ChatGPT(GPT-3.5turbo)さんに述語項構造解析(簡単に言うとテキスト中の述語の主語や目的語を見つけること)をしてもらうことにしました。ChatGPTさんがテキストの述語の主語や目的語をちゃんと理解しているかを調べることにより、ChatGPTさんの言語能力と背景世界への理解力がどれほど人間に近しいのかわかるのではないか?と考えたのです。本備忘ログでは、その過程で書いたプログラムや、思ったこと感じたことを書き記しておきます。

なお、今回は「京都大学ウェブ文書リードコーパス(KWDLC)」でChatGPTさんの述語項構造解析結果を評価してみましたが、事はそう簡単ではなく、精度は既存手法に迫るものではなく、備忘ログは後半に行くに従ってポエムになります。本備忘ログは、ChatGPTさんとに述語項構造解析してもらった方法を記録した備忘ログであり、その失敗を記録した備忘ログでもあります。

述語項構造解析(Predicate Argument Structure Analysis)とは?

述語項構造解析とは、別の言葉で言い換えますと、テキストの述語を見つけ、その主語や目的語(および時間や場所の関係をとる語)と述語の関係を明らかにすることです。みなさんも文書を書いたりプレゼンした時に「主語がよくわかんない」と言われてしまったこととがあるかと思います。誰が、いつ、何をした、といった5W1Hな情報を、私たち人間はテキスト中の述語(動詞など)とそれに紐づく主語や目的語や斜格語(主語や目的語以外の述語につく情報)の関係を読み解くことによって、理解・把握します。

例えば、以下に日本語の2文からなる文章の述語項構造解析の例を示しています。

文1: 太郎は本屋に行きました。
文2: ChatGPTの本を買いました。

述語 主語 目的語 斜格
文1 行きました 太郎 なし 本屋
文2 買いました (太郎) ChatGPTの本 なし

テーブルは、文中の述語とその格要素(主語や目的語や斜格の語のこと)との対応を示しています。主語は格助詞の「が」や提題助詞の「は」が付属語として内容語につくことが多いです。また、目的語は格助詞の「を」が付属語としてつくことが多いです。斜格には様々な助詞(〜で、〜まで、〜より)が着くのですが、今回は格助詞の「に」につくものを対象としています。

格助詞を見れば主語や目的語がわかるというわけではなく、実は述語項構造解析は一筋縄ではいきません。例えば、「私は英語が得意です」の主語は「私」ですが目的語は「英語」となります(格助詞「を」でなくても目的語になる)。また、「太郎、本屋へ行く。」のように、助詞も省略されちゃうことや別の助詞が使われることがあります。さらには、述語の種類によって主語や目的語にとる格要素の種類が決まっていて、動詞の種類や他の格要素の組み合わせも考慮しなければなりません。例えば「食べる」の主語は人間や生き物だったりしますし、その時の目的語は食べ物のことが多いです。しかし、「プログラムが食べる」時の目的語は「引数」だったり「ファイル」だったりします。

面白いことに、日本語では格要素の省略がしばしば起こります。上のテーブルの文2では主語の太郎が省略されています。普通の代名詞は彼(He)とか私(I)とか特定の表層形を取りますが、日本語やスペイン語や韓国語では、テキスト中の述語の主語や目的語が読者にとってすぐにわかる場合、主語や目的語や斜格は省略されることがあるのです。

この消えてしまった格要素を、見えない代名詞として、ゼロ代名詞(zero anaphora)と呼びます。また、ある箇所での省略された格要素の表現がテキストの別の箇所にある場合(文2の省略された太郎に対して文1の太郎のこと)をゼロ代名詞の先行詞(antecedent)と言います。テキスト中のゼロ代名詞と先行詞との紐付けをゼロ代名詞照応解析(zero anaphora resolution)と言います(テキスト中の「You」とか「He」とかの通常の代名詞の紐付けはanaphora resolutionです)。

述語の格要素を検出・判定することを述語項構造解析といいまして、自然言語処理の分野で研究が続けられています。述語項構造解析の枠組み中でゼロ代名詞照応解析も取り扱うことがあり、日本語の言語処理研究者によって研究されています(後述する京都大学黒橋研究室も述語項構造解析の枠組み中でゼロ代名詞照応解析に取り組む研究機関の1つです)。

人間の場合、テキストを読んだ際には、ただ単純に文字面を追っているだけではなく、そのテキストで書かれている内容を頭の中でイメージとして再現することができると思います。太郎という人間が街中の本屋に行き、ChatGPTに関する本を買ったことが、背景世界でのさまざまな出来事を含めて頭の中で再現できるのです。本屋には電車やバスを使って行ったかもしれませんし、郊外なら車で行ったのかもしれません。本を買うということは、太郎さんはお金を財布から出して、店員さんにお金を渡して支払いを行い(クレジットカードかもですが)、買った本は太郎さんの手の中にあります。

さて、では、ChatGPTさんがワタクシたちにお答えしてくれている時に、ChatGPTさんはテキストの主語と述語をどのくらい理解してワタクシたちにお答えしてくれているんでしょうか? テキスト中の文に書かれている述語、その主語、目的語、斜格を、省略されているゼロ代名詞を含めて、人間と同じように対応づけて理解しているんでしょうか? ワタクシ、ここがとっても気になるのです。

本備忘ログでは、述語項構造解析を通して、ChatGPTさんは言葉とその背景世界を人間のようにちゃんと理解しているか、確かめたいと思います。


ChatGPTさんは沙織お嬢様のように気高く聡明なAIなのか、

木戸沙織お嬢様のような優しく知的なChatGPTさんのイメージ


それとも、ChatGPTさんはまだまだムウ様のところで修行中のかわいい貴鬼さん的なAIなのか、

まだまだ未熟な貴鬼さんのようなChatGPTさんのイメージ

ワタクシは見定めたいと思います。

(注記)本備忘ログでは、聖闘士星矢公式サイトの「HITOKOMA」コーナー(http://saintseiya-official.com/special/hitokoma/list.php?page=1)から画像を作成しています。HITOKOMAでは画像をSNSで利用してもよいとのことですが、Blogでの利用可否については確認できていません。もしダメな場合はHITOKOMAで作成した画像を別の画像に差し替えたいと思います。車田先生や星矢ファンにご迷惑をおかけすることは本備忘ログの本意にあらざることです。

もくもく妄想(本日備忘ログの動機)

ChatGPTのGPTはGenerative Pretrained Transformerの略です。事前に大量のテキストで学習した(Pretrained)、テキストを生成する(Generative)、翻訳機(Transformer)です。Transformerという技術は、多くの大規模言語モデルを構成する基礎技術でして、(ざっくり荒く言うと)言葉を別の文字列に変換してくれます。このTransformerにはSelf-Attention(自己注意機構)という技術が応用されています。Self-attentionはテキスト中のある箇所を翻訳する際に、他のどこに注目したらいいのかを学習する技術です。ある述語がテキスト中のどの言葉と関係するのか、主語や目的語のような関係が、このAttentionのどこかに学習されてはいないだろうか? と ワタクシは思うわけです。

ChatGPTさんの中のSelf-Attetionのレイヤーには、テキスト中の述語の主語や目的語のつながりが学習されていて、ChatGPTさんゼロ代名詞まで見えているのではないか? 本当かなぁ? では調べてみよう!というのが本備忘ログの動機です。

先行研究

ChatGPTの性能検証に関する先行研究

世界中の研究者たちによりChatGPTさんの能力について検証が進められています。どのような検証が進められているのか、ChatGPTの能力の検証の最前線が今どこまで到達しているのか、関連論文/記事を読むことで把握したいと思います。

以下の論文や記事は「chatgpt anaphora」で Google scholarを検索して見つけてきました(2023年5月初旬が調査日です)。

Comparative Analysis of CHATGPT and the evolution of language models
https://arxiv.org/abs/2304.02468

この論文では、機械翻訳、要約、質問応答、プログラム言語生成などのタスクについて、NLPの主要なアルゴリズムGoogle翻訳やQuillBot.comの要約)とChatGPTのパフォーマンスを、Spontaneous Quality(SQ)(言語の正確さ、明瞭さ、母語話者の感じ方)のスコアを用いて比較し、ChatGPTの主張と結果を検証するための戦略を提案しています。翻訳や要約のタスクではChatGPTさんはGoogle翻訳やQuillBot.comよりも言葉として自然に読めるという結果が出ています。

A Loosely Wittgensteinian Conception of the Linguistic Understanding of Large Language Models like BERT, GPT-3, and ChatGPT
https://brill.com/view/journals/gps/99/4/article-p485_2.xml
この記事では、言語を理解するための条件について、ウィトゲンシュタインに影響を受けた概念を提供し、現在の最先端のAIシステム(BERT、GPT-3、ChatGPTなど)がこれらの要件を満たしている可能性があることを示唆しています。概念的側面では、知能の概念、内在的正しさの概念、ルール遵守の考察を行っています。実証的側面では、BERTやGPT-3などの現在のトランスフォーマーをベースにしたNLPモデルが、これらの要件をほぼ満たしていると主張しています。また、Vaswani et al. (2017, p. 14)を引いて、TransformerのSelf-attention層が照応解析(anaphora resolution)にあたるといった論考をしています。

Challenging ChatGPT ' Intelligence' with Human Tools: A Neuropsychological Investigation on Prefrontal Functioning of a Large Language Model
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4377371

大規模言語モデルの知的レベルを検証する研究です。この論文ではChatGPTの知的レベルを調べるために「脳神経心理学的」なテストを実施しています。ChatGPTは生成言語タスクで優れたパフォーマンスを発揮するが、人間が前頭葉を使うような知的なテストでは不均一なパフォーマンスを示した。具体的には計画能力や意図や心の状態の理解に苦労した。ChatGPTのような大規模言語モデルは人間の心理的な機能を捉え切ってはないことが示唆されるとのことです。なお、Winograd Schema による Anaphoric Referencing の成績は「16/20 - Normal C 普通」とのことです。

ChatGPTさんは言語の能力はすごいけど、そこまでびっくりするほどには賢くはないよ、ということが先行研究からは匂ってきますね。

大規模言語モデルベンチマークを用いた評価に関する関連研究

(メモ)ここより以下の論文はワタクシがACL 2023のプログラムを眺めたり、twitterで論文情報を拾ったり、Googleで検索したりして調査しました(2023年7月)。

Text Classification via Large Language Models
https://arxiv.org/abs/2305.08377
この論文では、ChatGPTのようなLLM(これらはタスクにzero/few-shot learningで取り組みます)とBERT等のタスクに合わせたfine-tuningありの手法のテキスト分類タスクでの性能評価を行なっています。「テキスト分類においてはファインチューニングモデルと比較して、LLMの精度は大きく下回っている」とのことです。また、「キーワードやトーンなど重要情報を抽出してから推論を行うことで、Few-Shotでも専用モデルと同程度の精度を達成する」とのことです。

A Systematic Study and Comprehensive Evaluation of ChatGPT on Benchmark Datasets
https://aclanthology.org/2023.findings-acl.29/
ChatGPTを複数のベンチマークで評価した論文。2023 ACL。ChatGPTさんはいろんなタスクに即投入できるけど専用モデルには性能は劣る?みたいな内容でした。

日本語述語項構造解析の関連研究

日本語の述語項構造解析はBERTなどの事前学習言語モデルを用いた研究によりこの数年で飛躍的な性能向上を達成しています。

BERT-based Cohesion Analysis of Japanese Texts
https://aclanthology.org/2020.coling-main.114.pdf

BERTとmulti-task learningの枠組みを用いて(日本語ゼロ照応を含めた)日本語述語項構造解析を行なったの最初の論文です。特に日本語ゼロ照応解析ではそれまで手法に比べて10~20ptも精度を上げてます。後述する「京都大学ウェブ文書リードコーパス(KWDLC)」(Web文書に対する項構造解析の正解アノテーションが付与されている)でゼロ照応だけでF値70.5、Naist Text Corpus(Kyoto Text Corpusかもしれません/確認取れてない)(新聞記事への項構造解析の正解アノテーションが付与されている)ではF値56.8を達成しています。日本語の照応解析の研究にもBERTなどの事前言語モデルの時代の到来を告げる、そんな画期的な研究ですね。この論文は京都大学黒橋研究室の研究者の皆さんの研究成果です。

Pseudo Zero Pronoun Resolution Improves Zero Anaphora Resolution
https://aclanthology.org/2021.emnlp-main.308.pdf
ゼロ代名詞の正解は数が限られているのですが、この論文では事前学習言語モデルを用いて擬似的な正解コーパスを増やすこと、また、fine-tuning時に一貫性を担保する手法を提案しています。実験結果では、Naist Text Corpusでの日本語ゼロ照応解析のF1精度をF値64.18まで向上させています。すごい。そして、Pseudo Zero Pronoun Resolution、という手法の名前がすごくかっこいい!(手法の内容も伝わるし語感もいい)。この論文は東北大学の乾研究室の研究者の皆さんの研究成果です。

翻訳言語モデルを中間タスクとするゼロ照応解析
https://murawaki.org/pubdb/NLP2022umakoshi.pdf
この論文では、ゼロ代名詞解析のmulti-task learningに機械翻訳を中間タスクに用いる際に翻訳言語モデルを用いると精度が上がるということが述べられています。KWDLCを用いた評価でF値74.8、Naist Text CorpusでF値62.0を達成しています。この論文も京都大学黒橋研究室の研究者の皆さんの研究成果です。

先行研究を概観しての所感

これまでのChatGPTの能力検証の文献に目を通しますと、ChatGPTさんは言語能力は高いけど、人間の認知機能に及ぶほど高度なことは理解できていないのではないか?というような印象を持ちます。また、ChatGPTさんは何でも礼儀正しく答えてくれるけど、タスク専用にfine-tuningしたモデルよりも性能が劣るようです。

日本語の述語項構造解析の研究では、BERTなどの事前学習言語モデルを用いることで、日本語ゼロ照応解析の精度は2020~2023年にかけて飛躍的に向上させておりまして、新しい時代に入ったな、という印象です。

本備忘ログでは、ChatGPT(GPT-3.5turbo)に対して日本語述語項構造解析の能力の検証を行います。述語項構造解析のためにmulti-taskにfine-tuningした専門モデルに迫る精度が出るのか、あるいは、全然そんな精度は出なくて礼儀正しくお答えしてはくれるけど内容はなんかぼんやりしているのか? といったことを確かめます! 本検証はChatGPTさんの日本語の述語項目構造解析の性能を調査する世界に先んじた試みであり、引いては、ChatGPTさんが現実を人間に近い形で理解できているかが見えてくればいいなと思っています。まあ、他の人は既にやったけどうまくいかなかったから公開されていないのかもしれませんが、まあ、ええやん!(勢いのある様子)

述語項構造解析の評価方法

本備忘ログの述語項構造解析の評価は、これまでの日本語項構造解析の先行研究同様に、F値*1の算出により行います。すなわち、ChatGPTさんにテキストを与えて、述語と主語などの関係をまとめてくれるようなお願いし(プロンプト)、その結果を正解コーパスと比較して、PrecisionとRecallを算出してからF値を算出します。

評価データ

日本語のゼロ代名詞を含めた述語項構造解析用の評価データには「京都大学ウェブ文書リードコーパス(KWDLC)https://github.com/ku-nlp/KWDLC」を用います。KWDLCはブログなどのWeb文書の冒頭3文に対して格関係などのアノテーションが施されています。

日本語の述語項構造解析用の評価データには他にも「Naist Text Corpus https://sites.google.com/site/naisttextcorpus/(NTC)」があります。NTCは毎日新聞テキストに述語項構造の正解アノテーションが付与されています(Naist Text Corpusは奈良先端科学技術大学大学院松本研究室の研究者の皆さんの研究成果です)。ただ、NTCを使うには95年度版の毎日新聞記事が必要でして、この準備にはお金がかかり覚書の締結が必要なのです(https://www.nichigai.co.jp/sales/corpus.html#01)(でも新聞社の売り物の新聞記事を研究目的に提供してくれるなんてありがたいことです)。本当は新聞記事を買ってNTCでも評価したかったのですが、今回はよりお手軽に評価ができるKWDLCを使わせてもらいました。

日本語の述語項構造解析用コーパスについては以下の論文にまとめがあります(この論文はコーパス作成途中のステータスなので公開されたコーパスとは数字がちょい異なります)。
多様な文書の書き始めに対する意味関係タグ付きコーパスの構築とその分析
https://www.jstage.jst.go.jp/article/jnlp/21/2/21_213/_pdf/-char/en


また、KWDLCに関するブログポストもあり、参考になります。コーパスの公開と情報の公開、ありがとうございます!
KWDLC(京都大学ウェブ文書リードコーパス)を知って、意味関係解析に取り組もう
https://qiita.com/mhangyo/items/0fdffb173747d2e2c80e

後述しますが、本備忘ログでの評価では、KWDLCのdevデータ507件(512件のdevデータに欠損がある)を用いて評価値を算出しています(今回はまだ試行錯誤段階かなと思ってtestデータは温存したのです)。

プロンプト

テキストに対する述語項構造解析処理にはOpenAIのAPIを用います。ChatGPTさんに渡すプロンプト文(生成用のpythonコード)は以下のごとしです。

# 文章の辞書から文を取り出して文の文字列を返す
def ret_input_sentence(org_tmp_dict):
  msg = ['以下の複数の文が与えられたとします。カッコの中が文の本文です。\n\n']
  sen_count = 1
  for sen_key, sentence in org_tmp_dict.items():
    rstr = f'文{sen_count} 「{sentence}」\n'
    msg.append(rstr)
    sen_count += 1
  msg.append('\n')
  return ''.join(msg)

def ret_prompt_text(org_tmp_dict): 
  """version2
  """
  messages = []
  messages.append( ret_role_dict('system', 'あなたは日本語の文法に堪能なアシスタントです。日本語テキストの名詞や動詞といった品詞や主語や動詞が理解できます。') )
  sentences = ret_input_sentence(org_tmp_dict)
  messages.append( ret_role_dict('user', '以下に示す複数の文書はWebページの冒頭の3文です。まずこちらの文を読んでださい。') )
  messages.append( ret_role_dict('user', sentences) )

  messages.append( ret_role_dict('user', '各文の述語を抽出してください。述語は文に複数ある場合があります。連体修飾節の述語、サ変名詞、語尾の述語含めて、全て列挙してください。') )

  messages.append( ret_role_dict('user', '続いて、列挙した術語ごとに、述語の「主語(ガ格)」と「目的語(ヲ格)」と「斜格の要素(ニ格)」の候補を列挙してください'))
  messages.append( ret_role_dict('user', '注意点ですが、「主語(ガ格)」と「目的語(ヲ格)」と「斜格の要素(ニ格)」の候補は述語と同じ文中だけでなく、その文中では省略されている格要素も含めて列挙してください。 省略されている格要素には「著者」や「人一般」といった文に明示的に書かれていない要素も含めてください。') )
  messages.append( ret_role_dict('user', '最後に、述語、主語(ガ格)、目的語(ヲ格)、斜格の要素(ニ格)の候補の4つ組を作ってください。') )
  messages.append( ret_role_dict('user', 'そして、文の番号、述語、主語(ガ格)の候補、目的語(ヲ格)の候補、斜格の要素(ニ格)の5列を1つの行とするテーブル形式で出力してください。') )

  return messages

このプロンプト文を用いまして、例えば、KWDLCの"w201106-0002000000"の文章(#行は文IDでプロンプトには含めない)に対しては、

# S-ID:w201106-0002000000-1 MEMO:
ゲストは主として「ドラゴン」シリーズに関わる作家が多い。
# S-ID:w201106-0002000000-2 MEMO:
構成作家は「トリビアの泉」や「田村ゆかりのいたずら黒うさぎ」なども手がけている矢野了平。
# S-ID:w201106-0002000000-3 MEMO:
番組内では「まぢおにさん」と呼ばれていた。

ChatGPTさんは以下の結果を返してくれます。

文番号 述語 主語(ガ格)の候補 目的語(ヲ格)の候補 斜格の要素(ニ格)の候補
1 関わる (ゲスト) (ドラゴン)シリーズ (省略)
2 手がける (構成作家) (トリビアの泉)、(田村ゆかりのいたずら黒うさぎ) -
3 呼ばれる (省略) (まぢおにさん) (省略)

え〜と、エラーアナリシスでも述べますが、プロンプティングはまだうまくいっていません。ワタクシは「省略されている格要素も含めて列挙してください」というプロンプトを書きまして、ChatGPTさんは(省略)って表に示してくれています。でも・・・確かに、そうなんですが、そうじゃないんですよ・・・!(もどかしさ) 先行詞をテキストやテキスト外から見つけて表に埋めてほしかったのです! でも、伝わってない(汗)。「省略されている格要素のテキスト中の実体の表現(先行詞)を見つけてください」みたいなプロンプト指定の仕方の方が良かったのかしら・・・(汗)。

ChatGPTさんにプロンプトの意図がうまく伝わっていない・・・?

正解数のカウント方法・正解と出力とのマッチング方法

KWDLCには述語に対する格要素の正解がタグで指定されています。

KNPの係り受け解析の結果に対してrelタグで関係がアノテーションされています。例えば、「行う」という述語にはrelタグ付与されていて「ガ格(主語)」として、「不特定:人」「読者」「著者」が列挙されています。また、「トス」がヲ格(目的語)の関係としてアノテーションされています。

# S-ID:w201106-0000060050-1 JUMAN:6.1-20101108 KNP:3.1-20101107 DATE:2011/06/21 SCORE:-44.94406 MOD:2017/10/15 MEMO:
* 2D
+ 1D
コイン こいん コイン 名詞 6 普通名詞 1 * 0 * 0
+ 3D <rel type="ガ" target="不特定:人"/><rel type="ヲ" target="コイン" sid="w201106-0000060050-1" id="0"/>
トス とす トス 名詞 6 サ変名詞 2 * 0 * 0
を を を 助詞 9 格助詞 1 * 0 * 0
* 2D
+ 3D
3 さん 3 名詞 6 数詞 7 * 0 * 0
回 かい 回 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0
* 3D
+ 4D <rel type="ガ" target="不特定:人"/><rel type="ガ" mode="?" target="読者"/><rel type="ガ" mode="?" target="著者"/><rel type="ヲ" target="トス" sid="w201106-0000060050-1" id="1"/>
行う おこなう 行う 動詞 2 * 0 子音動詞ワ行 12 基本形 2
。 。 。 特殊 1 句点 1 * 0 * 0
EOS

ChatGPTさんのテーブルの述語とKWDLCのrelタグが付与された述語の表層が文字列マッチしている場合に、格要素も一致しているかのチェックを行います。ChatGPTさんのテーブルの主語や目的語の文字列と、正解コーパスのガ格(主語)やヲ格(目的語)のrelタグのtarget属性の文字列とを比較し、文字列マッチしていれば、ChatGPTの項構造解析の出力を正解としてカウントします。文字列マッチですが、ChatGPTさんが作ってくれた表中の文字列と relタグのtarget属性の文字列とは完全に一致しないことも多々あり、部分でも一致していればマッチと判定しています(この辺は少しガバガバです。詳細の実装はgithubにあげたコード(https://github.com/meihuno/evalOfPASAbyChatGPT)をご参照ください。eval_conversation._ret_match_type関数が文字列マッチの実装になります)。

評価結果

KWDLCのdevデータセット512件のうち、ChatGPTが答えを返してくれた507件を対象に精度を算出しました(5件はngでした。まだngの分析はしていません)。また、ChatGPTさんの結果は試行によって揺れることがあり、本来ならば複数回試行してその結果の精度の平均をとる、というようなことをした方が良いのですが、今回はそのような操作は行っていません(処理中断により同じ文章が複数回処理されている可能性があります。ただし、評価に用いるのはそのうちの1回の試行のみです)。

項構造解析精度

格要素ごとのChatGPTさんの述語項構造解析精度を以下に示します。

Precision Recall F値
主語(subj) 0.326 0.183 0.235
目的語(obj) 0.194 0.080 0.213
斜格(obl) 0.080 0.104 0.090
格要素(all) 0.214 0.179 0.195
述語 0.834 0.404 0.544

全体的に低調です。最近の事前学習言語モデルをmulti-task learningする手法の述語項構造解析精度はゼロ代名詞だけでF値0.70以上あり、ChatGPTさんはそれらに比べて大きく劣ります。そもそも述語の検出がうまくいっていない(Recallが低い)のです。ChatGPTさんは人間の質問に答えるための会話用のモデルであって、文節の切り分けや構文解析機能はそこまで得意ではないということでしょうか。つまりは、構文解析は素直にKNPやGinzaにお任せしたほうが良いってことなのでしょう(LLMがしなくてもよいことはLLMにはさせない)。

述語がマッチした場合の述語との主語の距離別の精度(参考値)

ChatGPTさんの述語が正解コーパスの述語と一致している場合に、その主語の先行詞が文をまたいだ距離にあるゼロ代名詞なのか、先行詞が文内にあるゼロ代名詞なのか、あるいは著者や読者のような文章外に先行詞があるゼロ代名詞なのかについてその距離関係を判定し、それぞれにF値を出してみました。距離関係の判定は、ChatGPTさんが出力した格要素が述語と同じ文内にあるか、他の文にあるか、それとも文章内にはないのか、という雑な判定方法なので、このF値にはマッチングのミステイクが含まれている可能性があります。例えば、ChatGPTの出力した主語が正解の主語の部分文字列で短かった場合、文と雑にしかにマッチできないので距離関係のミスマッチの可能性があります。また、うまくマッチしなかったら文外の判定になる雑な距離の判定方法なので、以下の評価値は参考値と考えてください。

述語との距離関係 格要素 Precision Recall F値
文間照応 主語(subj) 0.435 0.083 0.14
文内照応 主語(subj) 0.534 0.719 0.613
文章外(外界)照応 主語(subj) 0.234 0.156 0.187

傾向としては、文内の先行詞よりも、文間や文外の先行詞の精度は大きく劣っていることが見て取れます。原因としては、ワタクシが書いたプロンプトでは「省略された格要素を文章内にあるか文外にあるのかを判断するタスクと」であるとChatGPTさんにうまく伝わっていない可能性があります(プロンプトでうまく表現できてもChatGPTさんにはそのタスクがうまく実行できない可能性もあります。永遠に伝わらない)。

エラーアナリシス

述語項構造解析の精度は低いことがわかりました。それでは、実際の解析結果の現物を確認してエラーアナリシスをしてみましょう。精度の数字だけ見ていては見えないものがあります。ワタクシたちはいつだって現場・現物第一主義なのです。現物を見て、何が問題なのか、改善点を見出していくことにします。5つぐらいのWeb文章について、KWDLCの正解とChatGPTさんの解析結果を見比べてみることにします。

エラーアナリシス1

解析対象のWebテキストは以下です。

# S-ID:w201106-0002000003-1
日本には、「あ」から「ん」までの48清音と、濁音半濁音合わせて70近く残っている。
# S-ID:w201106-0002000003-2
古代では、48音の1つ1つが意味を持っていたらしい。
# S-ID:w201106-0002000003-3
72とは、人間意識で72の意味づけが有ったと言うことだろう。

KWDLCの正解のアノテーションから述語項構造解析の表を作ったらこんな感じになります。

文番号 述語 主語(subj) 目的語(obj) 斜格語(obl)
1 合わせて 不特定:人 濁音、半濁音 -
2 残っている 70近く - 日本
3 持っていたらしい 1つ1つ 意味 -
3 有ったと 意味づけ - -
3 ことだろう 72 - -

ChatGPTさんの結果はこちら。

文番号 述語 主語(ガ格)の候補 目的語(ヲ格)の候補 斜格の要素(ニ格)の候補
1 残っている 日本、48清音、濁音半濁音 - -
2 持っていた 1つ1つ 意味 -
3 言う 人間意識 72の意味づけ こと、有った


正解とChatGPTさんの結果はかなり異なるので、これは精度も悪くなりますね、という印象です。ChatGPTさんは述語の検出が足りない。

でも、正解のアノテーションも高度すぎるように感じます。実は、正解アノテーションでは「残っている」に対して「48静音」は「ト格」でアノテーションされているのです。KWDLCでは「清音と、濁音と半濁音を、『不特定:人』が合わせて、70近くが、日本に、残っている」と言うような読みをします。KWDLCでは表層格に沿ったアノテーションをするというアノテーション指針を定めているのでしょう。しかし、ChatGPTさんの言うように「48清音、濁音半濁音が、残っている」とも読んでもOKなんじゃないかな?とも思います。KWDLCのデータで述語項構造解析モデルをfine-tuningすれKWDLCのアノテーション指針に沿った項構造解析ができるようになるのかもしれないのですが、ChatGPTさんはzero-shotなので、その指針に合わせるのは、むつかしいでしょう。

とはいえ、ChatGPTさんがKWDLCのアノテーション指針に合っていないにしても、ChatGPTさんは日本語話者には明かに間違った述語項構造解析結果も出力しています。例えば、ChatGPTさんの「日本が、残っている」という読みは違う気がする。「人間意識が、72の意味づけを、ことに、有ったに、言う」というのも支離滅裂な気がする。ChatGPTさんは日本語文法をちゃんとわかっているんでしょうか・・・?(不安)

エラーアナリシス2

もういっちょ例を見てみよう。

# S-ID:w201106-0002000000-1
ゲストは主として「ドラゴン」シリーズに関わる作家が多い。
# S-ID:w201106-0002000000-2
構成作家は「トリビアの泉」や「田村ゆかりのいたずら黒うさぎ」なども手がけている矢野了平。
# S-ID:w201106-0002000000-3
番組内では「まぢおにさん」と呼ばれていた。

KWDLCの正解コーパスでの結果はこちら。

文番号 述語 主語(subj) 目的語(obj) 斜格語(obl)
1 関わる 作家 - シリーズ
1 多い。 作家 - -
2 構成 作家 不特定:物1 -
2 手がけている 了平 泉、うさぎ -
2 了平。 作家 - -
3 呼ばれていた。 了平 - 不特定:人

ChatGPTさんの結果はこちらです(先述に挙げたのとは別のChatGPTさんの解になります)。

文番号 述語 主語(ガ格)の候補 目的語(ヲ格)の候補 斜格の要素(ニ格)の候補
1 関わる 作家、ゲスト 「ドラゴン」シリーズ -
2 手がける 矢野了平 トリビアの泉」、「田村ゆかりのいたずら黒うさぎ -
3 呼ばれる - 「まぢおにさん」 -


まず、またしてもChatGPTさんは術語の抽出が正解コーパスに比べて足りないことがわかります。でも、サ変名詞や体言止めの名詞を含めて術語の抽出を行うのは、人間にも難しいことです。

ChatGPTさんの1文目はダメダメですが、2文目の項構造解析は及第点のように思えます。KWDLCの正解コーパスでは「ゲストが多い」というような解釈でしたが、ChatGPTさんのように「ゲストが関わる」でも不自然ではありません。でも、ChatGPTさんの3文目の「『まじおにさん』を呼ばれる」、というのは支離滅裂な気がする。ChatGPTさんの日本語文法力にはむらっけがあるな・・・。

エラーアナリシス3(文外(外界)照応多めの例)

さらにもういっちょ、見てみましょう! 今度の例は文外(外界)照応の例です。

# S-ID:w201106-0002000390-1
あらら、初めてのお泊りなのかしら?
# S-ID:w201106-0002000390-2
どきどきですね。
# S-ID:w201106-0002000390-3
さみしくって眠れなくなっちゃうかしら?

KWDLCの正解コーパスでの結果はこちらです。不特定:人や不特定:物とかの文外(外界)照応が多いです。そして、「あらら、初めてのお泊まりなのかしら?」ってことで、これは筆者が他の誰かのお泊まりについて語っているテキストなんだと類推することができます。「あらら」ですからね。筆者の初めてのお泊まりなら「?」はつかないでしょう。日本語話者ならこの辺のニュアンスはわかるのでは?と思います。

文番号 述語 主語(subj) 目的語(obj) 斜格語(obl)
1 お泊りなの 不特定:人1 - 不特定:物1
2 どきどきです お泊り、不特定:人1、不特定:人2、著者 - -
3 さみしく 不特定:人1 - -
3 眠れなくなっちゃう 不特定:人1 - -

さて、ChatGPTさんはどうだったでしょうか?

文番号 述語 主語(ガ格)の候補 目的語(ヲ格)の候補 斜格の要素(ニ格)の候補
1 お泊り (著者) - -
1 初めて (著者) - -
2 どきどきする (著者) - -
3 眠れなくなる (著者) - -
3 さみしい (著者) - -

ガーン! 主語が全部「筆者」になってーるよー(嘆き)。ChatGPTさんは「あらら」と「?」のニュアンスを読み取ることはできませんでした。うーむ。ChatGPTさんをフォローすると、筆者とが主語だと強弁して通らないこともない、筆者が自問自動しているとギリギリ言えなくもないです。まー、でも、ワタクシとしてはここは「不特定:人」とか「筆者以外の誰か」みたいな主語を期待してしまいますね。しかし、プロンプトでそこまでを指示するのはむつかしくない? (煩悶) この事例は、ChatGPTさんにも、プロンプト書く人にも、難易度の高い事例です。

エラーアナリシス4(文外(外界)、文間照応ありの事例)

どんどん結果を見ていきましょう! 文外(外界)、文間照応ありの事例です。

# S-ID:w201106-0002000186-1
初めての試みだった「朗読セッション」には手ごたえを感じることができました。
# S-ID:w201106-0002000186-2
次回へとつなげて行きたいと思っています。
# S-ID:w201106-0002000186-3
そしてメインの第2部の朗読ライブでは、いつにも増して気合の入った朗読をじっくりと聴かせていただきました。

正解のアノテーションはこちらです。筆者や不特定の人や物がゼロ代名詞として省略されています。また、2文目の「つなげて行きたい」の目的語(ヲ格)はこれは1文目の「セッション」でして、ゼロ代名詞の先行詞が述語の前の文にあり、文間照応といえます。

文番号 述語 主語(subj) 目的語(obj) 斜格語(obl)
1 試みだった セッション - -
1 朗読 不特定:人 不特定:物 -
1 感じること 著者 手ごたえ セッション
2 つなげて行きたい 著者 セッション -
2 思っています。 著者 - -
3 増して 不特定:人1 - いつ
3 入った 気合、不特定:人1 - 朗読
3 聴かせていただきました。 著者 朗読 -

ChatGPTさんの結果はこちら。

文番号 述語 主語(ガ格)の候補 目的語(ヲ格)の候補 斜格の要素(ニ格)の候補
1 感じる 手ごたえ - -
1 する 試み - -
2 行く 私たち - -
2 思う 次回 -
3 聴かせる 朗読 私たち -
3 入る 気合 - -

うーむ、文間照応のゼロ代名詞がある述語「つなげて行きたい」の目的語をChatGPTさんは見つけてくれていません。また、ChatGPTさんの結果では「手応えが感じる」や「朗読が私たちを聞かせる」のように、主語と目的語が逆だったりします。正解アノテーションでは「筆者」なところがChatGPTさんは「私」や「私たち」としていて、一貫いていません。「私が次回を思う」というのはそういう解釈もできるとは思うのですが。実際の応用を考えると、「筆者」と「私たち」と揺れるのは問題です。

エラーアナリシス5(文間照応ありの事例)

では、最後のエラーアナリシスを見ていきましょう。

# S-ID:w201106-0002000002-1
メンズオンリーサロンだからこそ男性のスタイルの幅やセンスは全国クラス!!
# S-ID:w201106-0002000002-2
シンプル派〜ワイルド派まで、どんなジャンルのスタイルにも対応出来る技術力もKAJAの魅力。
# S-ID:w201106-0002000002-3
男性の居心地の良さを追求し、外装・内装・インテリアまでセレクト。

正解のアノテーションはこちらです。「KAJA」というサロンが3文目のゼロ代名詞の先行詞になっているところもポイントです。また、この表にはあらわれていないですが「KAJA」=「サロン」の関係タグもあり、「KAJA」が全国クラスであることも読み解ける形になっています。

文番号 述語 主語(subj) 目的語(obj) 斜格語(obl)
1 クラス!! 幅、センス、サロン - -
2 対応出来る KAJA - スタイル
2 魅力。 - -
3 良さ 居心地、男性 - -
3 追求し、 KAJA 良さ -
3 セレクト。 KAJA - -

ChatGPTさんの結果は以下の如しです。

文番号 述語 主語(ガ格)の候補 目的語(ヲ格)の候補 斜格の要素(ニ格)の候補
1 全国クラス 男性のスタイルの幅やセンス - -
1 対応出来る 技術力 ジャンルのスタイル -
2 追求し 男性 居心地の良さ -
2 セレクト 外装・内装・インテリア - -

う〜む、文番号をそもそも2まで出してくれていないし、3番目の文の述語「追求し、」や「セレクト」の主語が「メンズオンリーサロン KAJA」だということをChatGPTさんは見抜いてくれません。ChatGPTの「男性が居心地の良さを追求」するんじゃなくて、「メンズオンリーサロン KAJAが、男性の居心地の良さを、追求し」だよね。シンプル派〜ワイルド派な男たちが、居心地の良さを追求するために色々がんばり、外装・内装・インテリアといった店構えが(何かを)セレクトするサロン・・・どんな世界なんだよ。ChatGPTさんは・・・ゼロ代名詞を見ることが・・・できていなさそう・・・ワタクシたちが思い描いた世界を同じようには見てくれてなさそうです・・・(落胆)。

評価結果とエラーアナリシスのまとめ

ここまでのKWDLCでの評価結果とエラーアナリシスをまとめたいと思います。

* ChatGPTさんは術語を抽出が不十分
* ChatGPTさんの主語と目的語の区別はうまく行くときもあるが、ダメなときもある(完璧には程遠い/むらっけがある)
* ChatGPTさんはゼロ代名詞が見えていない
* ChatGPTさんがテキストから思い描いた世界はワタクシたち日本語話者が思い描いた世界とは違うっぽい(でもむらっけがあるので同じ世界を見ていることもある)

というような結果だったと思います。

本調査では、ChatGPTさんがテキストを解析をした際に、テキストに登場する人物や事物が何で、その人物や事物が何をどうしたのか、人間と同じように脳内に再現して理解していそうかについて、ChatGPTさんの述語項構造解析結果をKWDLCを用いて評価することで、その理解の深さを推し量ろうと考えました。評価結果とエラーアナリシスを終えて、私の脳内に浮かんできたChatGPTさんの絵は以下のようなものです。

主語とか目的語とか曖昧な理解で流暢にお話しするChatGPTさんのイメージ


まあ、でも、人間も内容を理解して話したりはしてないかもしれませんからね。口からすらすらと出てくる場合は、特にそうです。また、同じ人間でも同じテキストから違う世界を見ていることはよくあることです(悟り)。

まとめポエム(今回の備忘ログをふりかえっての反省会)

ここまで一生懸命プロンプトを書いて、評価スクリプトを書いてきましたけど、ワタクシの胸中に湧き上がるのは「KWDLCの正解アノテーションをChatGPTさんに一発であててもらうのは難しすぎないかしら?」とか「ChatGPTさんにやって欲しいことちゃんと伝わってないかも?」とか「これちゃんとChantGPTちゃんの言語能力と世界認識能力の評価になっているのかしら?」というような懸念でした。

ChatGPTさんにKWDLCの格要素を一発で当ててもらうのは難しいので、今回の項構造解析をもっと簡単なタスクに分解してあげた方が良かったと思います。特に、ChatGPTさんはKWDLCの述語を十分抽出できていないのですが、そもそもChatGPTさんに文節の切り分けや係り受け解析みたいなことをやってもらう必要はなかったのです。そういうことはKNPやGinzaでやったらええんじゃ、というやつです。

また、KWDLCのアノテーションは文法的に正しく、実際にアノテーターに作業してもらうためには表層格重視でタグを付与する方針がリーズナブルなのかもしれませんが、その指針だけが正しいというわけでもなく、ChatGPTさんが出力する主語や目的語も「言われてみればそう」と解釈できるというものもあり、KWDLCの結果とうまくマッチしないことがありました。先述しましたが、KWDLCの学習データにモデルをfine-tuningすればアノテーションの指針に沿った項構造解析ができるようになるのかもしれないのですが、ChatGPTさんはzero-shotなので、その指針に合わせるのは、むつかしいのです。

述語項構造解析は人間と雖も容易いことではありません。日本語話者と雖も、KWDLCのアノテーションマニュアルを読み込んで主語や目的語が何たるかを理解してから作業しなければ、そのアノテーションの複数人での一致はなかなか取れないように思われました。今回はKWDLCでChatGPTさんの述語項構造解析能力の評価を行いましたが、KWDLCのアノテーション指針とChatGPTさんのフリーダムな解析結果とは方針が一致していないので、ChatGPTさんをUnder estimate her/his powerしている可能性があり、完全な評価にはなってないと思われます(とはいえChatGPTさんはfine-tuningする既存手法に精度的に劣るのは確実です)。ワタクシはChatGPTさんに述語項構造解析を理解してもらうような文法力の高いプロンプトを書く必要があったと考えます。

専門的なプロンプトを書くには、人間の専門力も高くなければならない(ストロングスタイル)。ワタクシは図書館で以下の日本語文法の書籍を読んでみて日本語文法の奥深さに震撼を覚えました。道は険しそう。

書き言葉と話し言葉の格助詞(丸山直子 先生 著作、ひつじ書房、2022/07/08 刊行)
https://www.bonjinsha.com/goods/detail?id=13928&pt=1

日本語構文大全 第II巻 提示機能から見る文法(三原健一 先生 著作、くろしお出版、2022/5/26 刊行)
https://www.9640.jp/book_view/?904

丸山先生の本には日本語の格助詞の意味の分類や用例が多数収載されていました。例えば、主語に関係するのは格助詞の「ガ」なのですが、この「が」には主体を表す様々な用例(「バスが発進する」)から対象を表す用例(「水が飲みたい」「前が見にくい」)というような用例が載っていました。ワタクシもこの辺の分類を勉強して、ChatGPTさんに「主語」とはこういうものですよ、「目的語」はこういうものですよ、とうまく伝えられるようなプロンプトを書かなければなりませんでした。

あるいは、ChatGPTさんの日本語文法能力のみを試すテストを行ってみる、という方向もありなのかもしれません(世界認識能力は別に考える)。三原先生の本には日本語文法の事例が(文法的にNGな文(非文)を含めて)たくさん収載されていまして、例えば、「が/を」交替の事例ですと、以下のような文例がありました。*付きは非文の例です。

田中君はテニス{が/*を}下手だ。
僕はあのCD{が/を}書いたい。

日本語話者なら文法的にOKな文とNGの文がすぐにわかります。不思議。ChatGPTさんもこの辺の感覚を備えているんでしょうか? ワタクシ、気になります。以下の事例のように短文の文法解釈は、省略された主語を含めて、ChatGPTさんも正しく答えてくれてくれることが多いです。文法に関してはChatGPTさんはやればできる子。ワタクシは割とそう確信しているのです。

ChatGPTさんは日本語の文法が省略を含めてわかっているっぽい例

以上の如く、ChatGPTさんの言語能力や世界認識能力の評価していくためには、次のステップとして以下のような方法があるように思われました。

  • プロンプトの改善1(主語や述語やゼロ代名詞の説明をしっかりする):主語とか目的語、ゼロ代名詞と先行詞の説明をしっかり行う
  • プロンプトの改善2(簡単にする):述語の抽出や格要素の候補の列挙にはKNPを使い、ChatGPTさんには省略の有無やゼロ代名詞の先行詞の同定に集中してもらう
  • プロンプトの改善3(述語項構造解析の手順を説明する): プロンプトで述語項構造解析やゼロ代名詞照応解析の手順を順を追って説明する

 - (メモ)述語項構造解析でもChain Of Thoughtは有効なのか?

  • 文法能力の評価は日本語文法書の例文/非文を用いて行う(これはこれで大仕事なので項構造解析とは別に行いたいです・・・)

むすびのことば

本備忘ログでは、ChatGPTさんに項構造解析を行ってもらい、ChatGPTさんの言語能力や世界認識能力の評価を行いました。残念ながら、ChatGPTさんの項構造解析の精度は既存の手法に比べて大きく劣っているという結果がわかりました。ですが、今回の評価でのプロンプトは項構造解析のために十分検討されたものではなく、タスクが難しすぎた点もあるかなと思います。ワタクシのプロンプトエンジニア力も日本語文法力もまだまだ未熟です。プロンプトを洗練させていける余地は残っています。今後もChatGPTさんのような素晴らしいAI Chatterとともに人類が次の高みを目指すためには、ワタシたち人類(HUMAN)も、ChatGPTさんと適切にコミュニケーションを取れるよう日々日夜勉強を怠ってはならないのです。ワタクシはそう決意を新たにしたのでした。(おわり)

次回予告

ChatGPTさんが世界を人間と同じように認識しているのか、それとも、ぼんやりしたまま言葉を綴っているのか、その秘密を解き明かす戦いは、実は終わってはいなかったのです・・・! プロンプトの奥義を繰り出さんとするLLM戦士たちが、神奈川県立図書館(新しくて綺麗でとてもよい図書館です)に、今、集う・・・!

日本語述語項構造解析のためのプロンプトとは一体どう書けばいいのか・・・? Chain Of Thought(COT)が勝利の鍵なのか・・・


そして、最強のモデルの封印が解き放たれる・・・!

GPT-4を使うことでF値が0.01pt上昇しました! 同時に、コストが100倍です!みたいになったらどうしよう・・・?

その探索の先に、何が待っているのか・・・? ワタクシにもわかりません。それでも、その未知の世界を垣間見るために、明日もがんばろう!

(補足)OpenAIのAPI使用料

GPT-3.5-turboを使い、KWDLCのtestとdevデータの1000文書ぐらいを何度か処理しまして、それで2023年05月~06月にかけて$2.75でございました。1ドル143円で日本円に換算すると394円。コーヒー1杯分ぐらいでしょうか。

謝辞

京都大学ウェブ文書リードコーパス(KWDLC)」のデータを公開してくれた京都大学の黒橋研究室の皆さんありがとうございます! LLMの進化のスピードが非常に早い昨今ですが、ベンチマークデータがあれば、自分たちの現在地がどこにいるのか、モデルの変化は性能にどう影響したのか、把握することができます。言語資源の公開は重要さは今後ますます上がっていくと思います!

再現性の担保(コードの公開)

今回のChatGPTさんの出力や、評価用のコードは以下の場所にあげておきました。

https://github.com/meihuno/evalOfPASAbyChatGPT

ChatGPTさんの結果は同じこと繰り返すとちょいちょい変わってくるし、OpenAIのモデルもAPIのversion upも行われてますし、こんな評価コードを残して意味あるんですかね?と思わないでもないです。ですが、世の中の大学生さんには「ChatGPTをテーマに卒論書いたろ!」みたいな人がいると思います。いてると思います。項構造格解析に関してはワタクシがここまでやってきたことを「全部」残しておきます。Youはワタクシの失敗の先に進んでください。そんな人達の参考になれば幸いです。