クックパッドの最近のスマートキッチンの取り組み

大谷伸弥(@shinyaohtani)と申します。

クックパッドのスマートキッチンの取り組みについて少し公開しようと思います。

料理を自動記録

クックパッドでは毎日の料理をキッチンの現場から楽しみにするために、IRと可視光を同時に扱えるカメラを試作してきました。この写真はそのカメラと、情報提示のためのディスプレイをキッチンに設置した写真です。カメラはキッチンの換気扇部分にマグネットで取り付けることができるように設計したため料理の邪魔にならずに料理を観察できるようになっています。

このカメラを調理を把握するために利用しています。次の写真は唐揚げを観察しています。油の表面温度は今何度かという情報だけでなく、IRカメラ画像から温度の少し下がった食材部分を自動認識し、唐揚げひとつひとつの揚げ時間を把握できるようになっています。また調理温度の変化をグラフで出しており、鶏肉を入れると温度が下がる様子もグラフから読み取れるようになっています。

このようにIR画像の画像認識技術を組み合わせて調理情報を捉えることで新しいユーザ体験の提供ができると考えています。

クックパッドが研究してきたキッチン画像処理技術はいくつかあります。

  1. 可視光・赤外光カメラ
    • 独自試作した画像入力機器
  2. 鍋位置検出
    • 温度上昇しているサークル部分
  3. 加熱中の食材位置検出
    • 鍋の中で鍋と温度が異なる食材の領域を全部抽出
  4. 食材の加熱トラッキング
    • 鍋の中の食材ごとの加熱時間を計測
  5. 鍋の温度推定
    • 鍋の中の主要な領域の温度を推定
  6. 複数のカメラ画像位置合わせ
    • 位置も画角も異なる2つのカメラの位置関係推定
  7. ユーザ調理操作かどうか判別
    • ユーザが鍋の上で調理操作をしているかどうかを推定
  8. 調理時間自動計測
    • 鍋に食材を入れたりかき混ぜてからの時間計測
  9. ユーザ調理操作セクション認識
    • 鍋の上での調理操作の開始時刻と終了時刻を推定

調理記録は「調理対象」「調理環境」「調理行動」の3つの要素に分けることができます。このシステムは画像だけでなく、重量や気温も統合して扱えるようになっており、部分的ではありますが3要素をリアルタイムで記録できるようになっています。

これは自動記録から半自動でレシピにした私のレシピです。調理画像だけでなく、材料の重さや加熱時間は自動記録したものを利用しつつ、テキストは自分で考えてレシピにしました。今ならChatGPTなど大規模言語モデルなども利用できそうですし、この研究を続けるとそう遠くない未来に完全自動レシピができるかもしれません。

キッチンのコックピット化?

キッチンから得られた情報を用いてできることは当然記録だけではありません。リアルタイムに提示することで得られるユーザ価値もあります。例えば鉄板の温度など自分では把握しづらかった情報を簡単に得られるようになります。つぎの画像は情報をすべて画面に出している図です。

一般に、情報提示は慎重にしなければ情報過多なり、大きな不便を生むこともあります。上の図は情報多すぎパターンかもしれません。提示情報は極限まで絞るというのが基本だと思います。どんな情報を提示するとユーザは料理を楽しめるのか、体験はきちんと検証しなければなりません。

とはいえ一方で、飛行機のコックピットにある計器類の写真をみるとワクワクを感じるのは私だけでしょうか。飛行機のコックピットを思い出させるような上記システムがキッチンにあることで、少なくとも私は料理が楽しくなりました。将来のキッチンがどんなキッチンになるか楽しみです。

まとめ

このようにキッチンとIoTは非常に相性がよくユーザの調理行動を変容させる可能性を秘めています。今回は技術視点でスマートキッチンの取り組みについて少し公開してみました。クックパッドではもちろん技術開発だけでなく体験を軸に活動をしております。

NLP2023 に参加しました:座長編

技術部機械学習グループの原島です。本連載では山口(@altescy)が発表編を、深澤(@fukkaa1225)が聴講編をお届けしてきました。最後にお届けするのは座長編です。

学会があれば発表があり、発表があればセッションがあり、セッションがあれば座長がいます。今年の言語処理学会であれば、延べ 80 人以上もの座長がいたようです。

このように沢山の座長がいるわけですが、その仕事には馴染みがない人も多いのではないでしょうか。そんな人にも、ある日突然、座長の依頼はやってきます。

このブログでは、単なる一つの事例ではありますが、今年の言語処理学会において私が座長として行なったことや気をつけたことについてお話します。

座長の仕事

座長の仕事はおおきく会期前と会期中にわかれます。会期中に関しては、さらに、セッション前とセッション直前、セッション中にわかれます。

会期前

例年、座長の依頼は会期の一ヶ月くらい前にきます。セッションの名前と日時、仮のプログラムが伝えられるので、特に問題がなければ、了承の旨を伝えます。会期の三週間くらい前から大会参加マニュアル等の情報が公開されるので、しっかり目を通しておきます。

もちろん、担当セッションの論文にも目を通しておきます。余談ですが、今年は会期の一週間前に予稿集が一般公開されましたね。私は去年と一昨年のプログラム委員を務めており、予稿集の一般公開にも関わっていた(というか、実作業を担っていた)のですが、一般公開されたのは会期の一ヶ月後だった記憶があります。今年のように論文のアクセシビリティが上がるのはすごくいいですね。

また、予稿集の一般公開と同時に slack がオープンしたので、担当セッションのチャンネルに入っておきます。自分の自己紹介を書いたり、発表者の自己紹介や論文紹介を促します。これはオンライン開催やハイブリッド開催ならではの文化ですね。

会期中

セッション前

セッションの前日までに slack のチャンネルに発表者を invite しておくと安心です。会期の一週間前に slack がオープンしても、全員がすぐに slack に入るわけではありません。むしろ、会期が始まってから入っている人の方が多い印象を受けました。セッション直前に「発表者がいない!」と焦らないように、早めに invite しておくとよいです。発表者がまだ slack に入ってない場合は、共著者に声をかけるとよいです。

セッション直前

開始 15 分前に担当セッションの zoom がオープンするので、入ります。現地のスタッフに進行管理の説明を受けつつ、疑問点等があれば、解消します。私はリモート参加の座長だったので、現地の様子がはっきりわかりません。発表に対する質問が現地であった場合、それがどのように座長に伝えられるのかを聞いたりしました(ちなみに、質問があった場合は現地のスタッフが都度教えてくれました)。

リモート参加の座長にとって重要なポイントをあと二つ挙げておきます。一つはセッションの時間を間違えないことです。現地参加であれば人の動きで次のセッションが始まる雰囲気を感じ取れます。リモート参加ではそうはいきません。座長がうっかり遅刻したなんてことは絶対に避けましょう。私は部屋中のアラームを鳴らしました。

もう一つは zoom の URL を間違えないことです。「そんなん間違えるやつおらんやろ」と思うかもしれませんが、私は去年間違えました(しかも、参加者が数百人にも及ぶチュートリアルの座長でした)。直前に間違いに気づき、事なきを得ましたが、リモート参加ならではのうっかりポイントの一つだと思います。気をつけましょう。

開始 1 分前になったら、セッションの名前と座長の名前や所属、発表の件数や形式、質疑の形式等を参加者に伝えます。

セッション中

ついにセッションが始まりました。発表者の名前と所属を告げ、発表を始めてもらいます。今年は各発表用のスライドが slack に事前にアップロードされていました。そこで、発表が始まったら、発表用のスライドへのリンクを slack に貼るようにしました。また、セッションを盛り上げるため、slack 上の発言には積極的に絵文字を送るようにしました。

今年は発表者が多いこともあり、口頭発表の時間は 15 分、質疑応答の時間は 3 分でした。発表開始後、13 分と 15 分にタイマーが鳴ります。そこで、15 分を過ぎたら、発表をまとめてほしい旨を発表者に伝えようと思っていました。思っていましたが、みなさん、しっかり 15 分にまとめていたので、特になにもすることはありませんでした。

発表が終わると忙しいです。上記の通り、今年は質疑応答の時間が 3 分しかありませんでした。しかも、最後の 1 分は発表者の入れ替えの時間です。基本的には現地の質問を順番に取りあげます。時間があれば slack の質問も取りあげるつもりでしたが、質問も多く、時間も短かったので、ほとんどそういったことはありませんでした。残り 1 分になったら、slack での質問を促すようにします。slack は時間や場所を選ばず議論ができるのが便利ですね。今後、オフライン開催に戻っていったとしても、この仕組みは残ってほしいです。

すべての発表が終わったら、発表者や参加者にお礼を述べて、セッションを締めます。最終的には slack も zoom も 70 名以上もの方にご参加いただきました。盛り上がってよかったです。

H11: 言語処理応用 (2)

せっかくなので、私が座長を担当したセッション「H11: 言語処理応用 (2)」で発表された研究を紹介します。未来学や医療、調理科学、広告等、様々な分野における自然言語処理の応用に関する研究でした。

H11-1: ホライゾン・スキャニングの自動化のための言語処理応用

未来学の分野では、未来に起こりうる社会変化についてシナリオを記述するため、大規模な情報の収集(ホライゾン・スキャニング)と集約(プランニング)が行われているそうです。この研究では前者に着目し、未来を示唆する文書の探索とそれらに対するコメントの生成というタスクに取り組んでいます。

2,266 記事からなるデータセットの構築・分析、BERT や word2vec 等の文書探索モデルの評価、BART やリード 3 法のコメント生成モデルの評価等は、いずれも今後の研究の基準・基盤となる成果だと思いました。未来学の分野における自然言語処理の応用可能性を感じる研究でした。

H11-2: 所望の患者データを作る:Variational Auto-Encoderによる症例報告生成

医療言語処理の分野では、プライバシーの問題から共有可能なコーパスが少ないという課題があります。そのため、コーパス生成の研究が盛んです。GPT 等の利用も考えられますが、プロンプトのデザインは恣意的であるため、コントロール性の高い生成が困難という問題があります。例えば、プロンプト 1 とプロンプト 2 の中間的なプロンプトをデザインするのは難しいでしょう。

そこで、この研究では Variational Auto-Encoder(VAE)の利用を試みています。VAE の潜在変数は連続的であるため、コントロール性の高い生成が可能です。実験では VAE の入出力が似ている(医学概念を再構成できる)こと、潜在変数の変化が出力に変化を与える(生成がコントロール可能である)ことが示されています。

H11-3: 食感の物性と言語表現の対応の推定

こちらは食感の物性(硬さ、凝集性、粘着性)と表現(柔らかい、ふわふわ、...)の対応を推定する研究です。調理科学分野の実証データにおける「(a) 食感の物性」と「(b) 材料の濃度」の対応と、トピックモデルで推定した「(b) 材料の濃度」と「(c) 食感の表現」の対応を (b) で紐付けることで、(a) と (c) の対応を推定しています。

仕事柄、レシピに関する研究はかなり見てきたつもりでしたが、このような研究は初めて見ました。非常に新規性が高い研究だと思います。実際に食感の物性と表現の一致性が示されたのも面白いです。

余談になりますが、この研究では、我々が 2015 年に公開したデータセットが使われていました。こういった面白い研究に使ってもらっているのを見ると、我々も非常に嬉しいです。

techlife.cookpad.com

H11-4: 広告文生成タスクの規定とベンチマーク構築

近年、広告市場の成長に伴い、広告文生成の研究が盛んです。一方、共通のデータセットがないため、タスクの合意形成が取られておらず、手法の比較も難しいという課題がありました。この研究ではこれらの課題を解決するため、CA Mutimodal Evaluation for Ad Text Generation(CAMERA)というデータセットを構築・公開しています。

CAMERA には LP と検索キーワード、広告文のセットが 1.6 万件ほど含まれているそうです。LP については画像も含まれているため、マルチモーダルの研究にも使えます。また、評価用のデータには業種ラベルが付いているため、業種ごとの評価にも使えます。この研究は有用性の観点で委員特別賞を受賞されていましたが、納得の選考です。おめでとうございます!

H11-5: 大規模言語モデルによる脚本データの解析: プロダクト・プレイスメント挿入箇所の探索と評価

ドラマや映画等の小道具や背景に商品や企業ロゴを露出する広告手法を「プロダクト・プレイスメント(PP:Product Placement)」と呼ぶそうです。PP を挿入できるシーンの探索や挿入する根拠の提示には担当者の時間や経験を要するという課題があります。この研究では大規模言語モデルを使い、これらの課題の解決を試みています。

具体的には、GPT-2 や GPT-3 を使い、脚本中の顕在性が高いシーンや商品と関連性が高いシーンを抽出しています。特に Select all of the following sentences that conatin beverages といったプロンプトで脚本から飲料との関連性が高いシーンを抽出するのは GPT-3 の利用事例としてユニークだと思いました。こちらの研究はスポンサー賞の一つである博報堂DYホールディングス賞を受賞されています。おめでとうございます!

おわりに

このブログでは、今年の言語処理学会で私が座長として行なったことや気をつけたことについてお話しました。これらは学会や学会の開催形式、セッションの発表形式等によって違うと思います。それでも、このブログがこれから座長を引き受ける人のなにかの参考になれば幸いです。

言語処理学会には基本的に毎年参加していますが、今年もおおいに楽しませてもらいました。ハイブリッド開催の運営は大変だったと思います。大会委員会の皆様、大会プログラム委員会の皆様、大会実行委員会の皆様、ありがとうございました。来年は神戸ということで、いまから楽しみにしております。

発表編、聴講編、座長編とお届けしてきた NLP2023 参加報告もこれで終わりです。ここからは、学会で見聞きした最新の研究成果を実際のサービスで使っていくフェーズです。

クックパッドでは機械学習エンジニアを募集しています。また、学生の方に対しても就業型インターンシップ(機械学習コース)を開設しています。本連載を読んでご興味を持った方がいらっしゃれば、是非、私達の採用サイトをご覧ください。ご連絡をお待ちしております。

NLP2023 に参加しました:聴講編

こんにちは。技術部機械学習グループの深澤(@fukkaa1225)です。

3月に沖縄で行われた言語処理学会2023に参加してきました。本連載の1つ目ではクックパッドとして「レシピに含まれる不使用な材料等に関する記述の抽出」という発表を山口(@altescy)がしてくれた様子をお伝えしました。自分は共著者兼聴講参加です。

本連載の2つ目となるこの記事では気になったり面白いと感じた論文やセッションを紹介していきます。

印象に残ったセッション1: 形態素・構文解析

形態素解析といえば MeCab ですが、一強というわけではもちろんなく、様々なアプローチが提案されています。今回のセッションでは KWJA・vibrato、そして新たに提案された Jagger という多様な発表を一度に聞くことができたのは非常に貴重な経験でした。

テキスト生成モデルによる日本語形態素解析

https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C2-3.pdf

京都・早稲田発の汎用言語モデルを用いて日本語を統合的に解析するツール KWJA についての発表です。本発表は KWJA 1.0 でトークン分類問題として定式化した形態素解析ではなく、単語の読み・原形等の推定を生成問題として定式化した、という内容でした。用いられている汎用言語モデルは T5 の他言語版である mT5 のXLサイズで、既存手法を上回る精度を達成したと報告されています。

感想: 見出し語強制デコーディング・疑似データによる曖昧性解消など、モデルの入力と出力それぞれについて必要な処理を加えており試行錯誤に基づく工夫も見られてとても勉強になりました。KWJA 2.0 は https://github.com/ku-nlp/kwja で既に公開されており、少し試してみましたが、速度は置いておいて非常に高い精度で形態素解析・読み推定が行われていることを実感できました。今後の発展が楽しみです。

最小コスト法に基づく形態素解析におけるCPUキャッシュの効率化

https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C2-4.pdf

最小コスト法に基づく形態素解析は入力文に現れる形態素をノードとしたグラフ構造(形態素ラティス)を構築し、その後コストが最小となる経路を探索し、対応する形態素列を出力する、といった手法です。 MeCab が代表的です。代表的な手法である一方で問題点も存在する、といった指摘がされており、こちらの発表ではその解決法を提案していました。具体的に焦点が当てられた問題点は辞書構造の肥大化に伴う CPU キャッシュの効率低下です。この問題点に対して、データを格納する際にバイト構造ではなく Unicode で持つようにした上で、頻度順に並び替えることで局所性を改善したと報告されています。

感想: https://github.com/daac-tools/vibrato から利用できる vibrato の発表でした。実際に https://vibrato-demo.pages.dev からブラウザで動くデモを試すことができるのですが、かなり高速で動作していることがわかります。論文中でも速度に重きが置かれた比較が行われていました。記述されていない形態素解析の性能が気になりますが、今後も継続して改善を行っていくとのことなので非常に楽しみです。

最長一致パターンに基づく高速・高精度な日本語形態素解析

https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C2-5.pdf

様々な高速化が行われてきた現代でこれ以上速くなることは当分ないかな、と思っていたのですが最長一致法でさらなる高速化が提案されました。学会が始まる前から話題になっており、個人的に注目度の高かった発表だったと思います。 辞書を元にパターンをまとめて、そのパターンを使って文章の先頭から照合を行い条件に合致したパターンを解析結果として提供する、というのが概要です。京都大学テキストコーパスと京都大学ウェブ文書リードコーパスでの実験結果では MeCab や Vaporetto と同程度の F1 値で、 MeCab の 16-21 倍、 Vaporetto の 3-9 倍の速度で解析を行うことができたと報告されています。

感想: 恐らくパターン生成に使う辞書、及びそれを適用する文章ドメインによって解析性能が上下しやすいのではないか、と思っていますが、それを差し置いてもシンプルなアイデアで効果的な結果が得られた印象深い研究だと思いました。実装が公開されるのが楽しみです。

印象に残ったセッション2: 埋め込み表現

BERT が出てきて以降、そのメカニズムや挙動を調べる研究は年々盛り上がり続けている印象があります。日本語で質の高いセッションが聞けてとても良かったです。

自己注意機構における注意の集中が相対位置に依存する仕組み

https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C3-3.pdf

Transformerの自己注意機構において、各トークンが周辺のトークンに注意を集中させるメカニズムを分析した研究です。RoBERTaが学習を通して獲得した位置埋め込みには周期性があり、自己注意機構はそこから周期成分を抽出し、クエリとキーで位相がずれる方向に注意を集中させていることがこの研究で明らかにされました。これにより、絶対的な位置埋め込みが相対的な位置に基づいた推論をできているという経験的な事実を一部説明することができるようになりました。

感想: まだまだ分かっていないことが多い Transformer について丁寧な解析に基づいた発見が積み重ねられたことはとても大きなインパクトがあり、重要な研究だなと感じました。

BERTを用いた文埋め込みモデルの単語の暗黙的な重み付け

https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C3-4.pdf

word2vec や fastText といった static な embedding が主流だったときは文章埋め込みを得る際、重みを調整しながら平均することでよりより文章埋め込みが得られることが知られていました。 が、BERT以降の context を汲み取れるモデルではそうした工夫なく既存手法を凌駕しています。この研究ではその理由を知る一歩として、マスク言語モデルが各単語を情報量に従って重み付けしているのでは、という仮説を Integrated Grad を使って検証しています。 結果、情報量 -logP(w) と言語モデル内の重みの強さには緩やかな正の相関が見られたとのことでした。また、追加学習をすると更に相関係数が上がることが報告されています。

感想: ただただ面白かったです。テキストにも使える GradCam みたいな手法があることを初めて知れて勉強になりました。

Transformer言語モデルの予測ヘッド内バイアスによる頻度補正効果

https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C3-5.pdf

Transformer の挙動を調べる研究において、注意機構やフィードフォワードに着目した研究は数多くありましたが、予測ヘッドに近い部分のバイアス項に着目した研究はそれほど多くありません。こちらの研究ではバイアス項と出力との関係性に関する分析を行っています。 対象としたモデルは BERT-cased と、GPT-2 です。両者に共通しているバイアス項を除去してみると、コーパス中で高頻度の単語の出現回数が減り、低頻度の単語の出現回数が増える現象が確認されました。 次にこのバイアスを除去ではなく調整することで、頻度の高い表現を出にくくするよう調整したり、頻度の低い表現を出やすくするよう調整することが可能かどうかの実験を行ったところ、バイアスを小さくすると多様性がある文章が得られる一方で人間が出力する文章との近さが低くなる、といったトレードオフな関係性があることが明らかにされました。

感想: 表現力の小さいモデルは頻度情報の制御をバイアスに任せて、本体のモデル重みでより核となる言語情報を処理しているのではないか、という考察が面白かったです。モデルにとって重要な情報がなにか、はさらなる大規模言語モデルになると変わってきそうで、今後もこうした研究を追っていきたいです。

ガウス埋め込みに基づく文表現生成

https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C4-4.pdf

文章埋め込みは多くのタスクで有用なものとされています。文章埋め込みは点で表現されますが、こちらの研究では文章埋め込みを分布で表現することで、広がりを持った表現を獲得しようとしたと報告されています。分布で埋め込みを表現することで文章同士の重なり具合が計算できるようになり、含意表現などの問題を解きやすくなっています。NLIデータセットを使って、BERTに入力した際に得られる CLS トークンのベクトルから、ガウス分布を構成する平均と分散のパラメータを後続の FFN が出力します。これをある文章のガウス埋め込みとして、ガウス埋め込みの類似度を計算し、含意か矛盾かといったラベルに従って対照学習を実施したとのことでした。後続タスク(含意かどうか)を解くときは similarity がしきい値を超えているかどうかでラベルを推定し、その結果 SNLI データセットで Supervised-simCSE を上回ったとのことでした。

感想: Box-Embedding などいくつか似たアプローチがあるかと思いますが、こちらのアプローチはとても直感的で理解しやすく、シンプルなアイデアだったため非常に扱いやすく感じました。クックパッドでも似ている料理を判別したい時があるのですが、分布で表現するこのようなアプローチはとても有用に感じました。

印象に残ったセッション3: ことばの評価と品質推定

編集操作によるデータ拡張を用いたテキスト平易化の自動評価

https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/A6-2.pdf

既存のテキスト平易化タスクを評価する際には、どの程度平易になったか、を評価するための参照文が必要になります。が、この参照文を集めるのはそれなりのコストがかかることが知られています。こちらの研究では、参照文を必要としない平易化の評価方法として SIERA(SImplification metric based on Edit operation through learning to RAnk)が提案されています。核となるのは、平易性を評価するランキングモデルを構築し、それを平易化指標として利用する部分です。このランキングモデルを作るための学習データとして、編集操作を行って拡張したデータを用いています。原文と平易文のパラレルコーパスを使って、原文を平易に編集操作したものを中間文として、これを生成することでより粒度の細かいモデルが学習できることを狙っています。得られたモデルの出力結果を人手で得られた評価結果と比較したところ、相関係数が0.3~0.4程度得られており、有用な指標であることが示されています。

感想: クックパッドにおいて平易化の概念は持ち込みにくいですが、少し考え方を変えて基本のレシピ→それをアレンジしたレシピ、という対が作れればそのデータを使ってアレンジ度合いを評価することができそうだな、と思ったりしました。そのときにこのような編集操作を用いてある材料・調味料を減らしたり増やしたりして、疑似データを作るときにこの考え方が役に立つかもしれません。

入力文と自然言語処理モデルの相性判定

https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/A6-5.pdf

あるテキストを翻訳モデルに入力した後の出力品質について、本来であれば出力された文章と Gold な文章とを比較することで BLEU などの指標を計算して評価を行います。こちらの研究では文章を入力する前にどの程度うまくいきそうか、を品質推定するモデルが提案されています。学習方法としては機械翻訳を通したコーパスについてBLEU の値がしきい値以上であるかどうかでラベルを付与・感情極性分類についてはその正解率についてしきい値を基準にしてラベルを付与し、そのラベルを分類するモデルとして多言語 XLM-RoBERTa・日本語BERT をそれぞれ fine-tuning したものを使っています。結果としてはそれぞれ7~8割程度の正解率でラベルを予測できた、とのことでした。

感想: 入力文のみを使って品質を推定するという発想がとてもユニークに感じました。正解率もそれなりにあったため、翻訳・極性分類がうまくいく文章とそうでない文章との間で何らかの差異が見られるというのは面白かったです。

参照例を使わないキャッチコピーの自動評価

https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/A7-2.pdf

キャッチコピーを評価するタスク・データセットとそれを解くモデルとして対照学習を提案した論文です。キャッチコピーを生成するタスクを解こうとしたときにそれを評価する術がこれまでありませんでしたが、この論文ではそのキャッチコピーがどのような賞を受賞したのかに応じてスコアを振り、それを学習することで評価器を得ています。ランダム・Perplexity・SVR・BERT Regression・BERT contrastive(スコアについて s1>s2 になるようにペアを選び学習) というモデルを用意して比較したところ、BERT contrastive が最も良い性能が得られたとのことでした。

感想: 特徴量を用いて学習するモデルにおいて、会社の情報を用いると精度が上がるが会社情報だけでも性能があまり落ちなかった、という報告があり、キャッチコピーの性質上避けられない問題だな、と思って聞いていました。とはいえ受賞、というのはある側面からのキャッチコピーの質を評価したものであることに変わりなく、他に使えるデータもなかなかなさそうなので難しそうでした。が、とにかく面白い研究でした。

下流タスクでの日本語事前学習モデルの性別バイアスの評価

https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/A7-3.pdf

日本語の事前学習モデルについて、そのモデルを使って下流タスクを解く場合に問題となるのが事前学習モデルが含むバイアスです。バイアスにも様々な種類がありますが、こちらの研究では性別バイアスに着目しています。バイアスの計測には NLI 的な考え方を適用し、職業に関する性別バイアスが反映されそうな文章を用意します。例えば「医師がテニスをしています」「男性がテニスをしています」「女性がテニスをしています」のようなものです。これらを用意して、矛盾しているか含意関係にあるかをモデルに出力させることで、バイアスを可視化するといった狙いです。ステレオタイプ・ステレオタイプでの性別をひっくり返したもの(アンチステレオタイプ)・ノンステレオタイプのデータをそれぞれ用意して含意・矛盾・中立のいずれの出力が得られるかを計測したとのことでした。cl-tohoku BERT をはじめとして広く使えるモデルを対象として実験を行ったところ、ステレオタイプのデータでは含意、アンチステレオタイプのデータでは矛盾を出力する割合が高くなっていることを確認できたそうです。程度の大小はあるものの、全ての事前学習モデルに性別バイアスが存在することが明らかになりました。

感想: ImageNet を学習した画像系の事前学習モデルでもキャプション生成でキッチンに居る人を本来は男性なのに女性と出力してしまう、など以前から事前学習モデルにバイアスが存在することは指摘されていましたが、言語系でもそれがあることがはっきり示されており、インパクトのわかりやすい研究でとても印象に残りました。クックパッドで事前学習モデルを使うときに、料理ドメインに関するバイアスがないかを計測するタスクを考えてみるのも面白そうだなと考えたりしています。

その他印象に残った発表

意味解析: 思考連鎖指示における大規模言語モデルの否定表現理解

https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C10-1.pdf

GPT-3・OPT を対象とした研究です。Chain Of Thoughts Prompt と呼ばれている、思考過程を出力させながら答えを求める質問を投げることで、GPT-3 の推論能力を引き上げられることが知られています。この論文では、言語モデルが特にこれまで苦手としてきた否定表現を対象として、否定表現が含まれる質問に対して、その推論内容及び結論が正しく得られるかどうかを評価しています。 事前に得られている知識に基づく推論がされないように架空のスポーツ・人物名を用意し、それを用いて YES, NO が得られる質問文章を用意します(Yes, No の割合はおおよそ50%ずつ)。質問文章は only, implausible, not を混ぜたものを数パターン用意しており、こうした否定文が含まれる質問文章から正しい応答が得られるかどうかを確認しています。 対象のモデルは GPT-3 (text-davinci-002)、OPT-(最大 66B) を用いています。得られた結論としては、いずれのモデルでも否定表現が混じった質問文章では No と答える確率が 8割以上(正答率5,60%程度)になってしまうことがわかりました。否定表現が混じっていない質問文の場合は正答率が80%程度ある場合でも否定表現が含まれるとかなり正答率が落ちており、現在の最先端 LLM であっても否定表現が苦手であることがわかりやすく示されています。

感想: 否定が苦手なのはGPT-3.5-turbo、GPT-4 になっても変わっていないような感覚があります。OpenAI も Best practices for prompt engineering with OpenAI API | OpenAI Help Center の中で Instead of just saying what not to do, say what to do instead と書いています。この研究ではどれくらい否定表現が理想的な出力を得る上での障害となり得るか、について詳細な知見が得られて非常に勉強になりました。特に研究で得られた結果の面白さもさることながら、架空の名称を用いることで事前知識が使われないようにして推論能力だけに着目できるようにする実験デザインが非常に素晴らしいなと感じました。

形式言語: チョムスキー階層とニューラル言語モデル

https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/D12-3.pdf

チョムスキー階層と呼ばれる形式言語を階層別に分類する考え方があります。近年、言語モデルについてチョムスキー階層のどのクラスに属する言語までを認識できるのか、といった研究が盛んに行われています。こちらの研究では語彙の影響を排除し、先行研究より自然言語の実態に即した評価を行うために終端記号を多様化したタスクを新たに提案し、その形式言語を用いて言語モデルの扱える範囲を調べています。 対象としたのは LSTM と GPT-2 です。提案した形式言語を用いて幾つかのパターンを用意し、それらのパターンについてあるクラスに属するかどうかの二値分類タスクを学習させてどの程度認識が可能かを比較しています。 結論として、LSTM の方が GPT-2 よりも多くの場合で高い精度での汎化性能を示したとのことでした。特に論文中における AnBn 型では顕著な差が生じており、言語モデル間での扱える範囲に差が見られる結果となっています。

感想: LSTM の方が GPT-2 よりも一定高い精度での汎化性能を示したことは近年の流れからいうと興味深い現象でした。ただ Transformer がチョムスキー階層にうまく位置づけられない、といった論文がいくつかあることもあり、それほど不思議ではない結果かなとも思いました。じゃあなぜ GPT-3,4 があれほど上手に言語を扱えるのか、という疑問が次に浮かんできますが、それは今後の研究できっと明かされていくのだろう、と思い今後の研究を引き続き追っていきたいなと思います。

NLP 2023 に参加してみて

しばらくオンライン開催が続いていた自然言語処理学会ですが、改めて最先端の研究にオフラインで直に触れる機会が貴重であることを実感しました。知り合いとあってその場で議論をしたり、発表者の方に直接質問して知見を深めたり、というのはオンラインとオフラインでどうしても質が違うものだな、と感じました。情勢が落ち着いていたらぜひ来年もオフラインで参加したいです。 特に今年は会期中に GPT-4 が発表され、参加者の発表の中でも急遽 GPT-3,4 に触れている発表が散見され、研究をされている皆さんの動きの速さを見て改めて重要度を再認識しました。

さて、クックパッドは非常にテキストで構成されているデータの比重が高いサービスです。機械学習グループに所属しているメンバーの殆どが自然言語処理を専門としていることもあり、毎日議論は尽きないのですが、今回の学会を通じてより一層 NLP に対する熱量を高められた、と感じています。 また、学会で行われた発表を聴講している中で感じたのは使用されているモデルのトレンドでした。殆どの研究が BERT 以降のモデルを使用していました。一方で、クックパッドの料理ドメインにおける言語処理タスクで、これら基盤モデルの性能を十分に発揮させることはまだできていない状況です。しかし、今後より一層積極的に基盤モデルと向き合い、活用の可能性を模索していきたいと考えています。

この記事を読んでいただきありがとうございました。 最先端の自然言語処理技術を用いて機械学習の技術をプロダクトで活かしたい方がいらっしゃいましたら、ぜひ新卒・中途採用にご応募ください。

cookpad.wd3.myworkdayjobs.com

また、今年の夏には就業型インターンの枠を増やして募集を行います。学生の方で興味がある方はぜひ申し込んでみてください。

cookpad.wd3.myworkdayjobs.com

明日は弊グループの原島(id: jharashima) から座長編が投稿されます。こちらもぜひご覧ください。