人間が本を読んでいるとき、その脳がどのように機能しているのかを理解しようとしている場面を想像してみてください。単に「今、何を考えていますか?」と尋ねることはできません。なぜなら、本人が分かっていないかもしれないし、嘘をつくかもしれないからです。そこで、科学者たちは人の目を見守るための特別なカメラを使用します。これはアイトラッキング(視線計測)と呼ばれます。それは、人がどこを見ているかを追跡する小さなスポットライトのようなもので、どの単語を凝視し、どの単語を読み飛ばし、どの程度の間(ま)を置いたのかを正確に示してくれます。コンピュータサイエンスの世界において、これは非常に重要なことです。なぜなら、ソフトウェアエンジニアは、コンピュータに何をすべきかを伝えるテキスト形式の指示書であるソースコードを、一生眺めて過ごす仕事だからです。しかし、コードは単なる物語ではありません。それはパズルなのです。エンジニアは小説を読むようにコードを読むのではなく、行を読み返したり、手がかりを探したりしながら、あちこちへ飛び回ります。彼らが「どこ」を見ているのかを理解することは、より優れたツールを作り、より明快な画面を設計し、さらにはコンピュータに人間のように考える方法を教えることにつながります。
さて、ここからが難しいところです。コンピュータは通常、人間が何を見ているのかを推測するのが非常に苦手です。コンピュータは、長く複雑な単語が最も重要だと判断してしまうかもしれませんが、人間のエンジニアは、その隣にある短くて退屈な単語こそがプログラム全体の鍵であることを知っています。この論文は、コンピュータに「推測」をやめさせ、プログラマーのように「見る」ことを教えるためのものです。研究者たちは、人間のコードの読み方を観察することから学習する、特別な種類のコンピュータの脳(モデル)を構築しました。彼らは単にコンピュータに対して「これがコードだ、次の単語を推測しろ」と言ったのではありません。代わりに、人間の目が実際にどこに止まったかを示す地図という、「秘密のカンニングペーパー」を与えたのです。彼らは、コンピュータ自身の内部的な「注視」を、実際の人間の「注視」と比較させ、両者が一致するまで思考を調整するようにコンピュータを訓練しました。
主な発見は、この新しいコンピュータモデルが、人間の注意力を模倣することにおいて驚くほど優れているということです。研究者が3つの異なるプログラマーのグループ(Javaコードを読んでいるグループとCコードを読んでいるグループ)に対してテストを行ったところ、コンピュータの予測は、従来のどのコンピュータモデルよりも、実際に人間が行ったことに対して非常に近い結果となりました。実際、いくつかのテストでは、コンピュータは従来の標準的な手法よりも、人間がどこを見るかを推測することにおいて64%、さらには**467%**も優れていました。コンピュータは単に数字を正しく当てただけでなく、人間の思考の「パターン」を学習したのです。
しかし、研究者たちはそこで立ち止まりませんでした。彼らは、この「人間のような」注意力が、コンピュータがより困難な仕事、すなわち、**スキャンパス(視線の経路)**として知られる、正確な目の動きのシーケンスを予測する手助けになるかどうかを確かめたいと考えました。ハイカーが森の中をどのような経路で一歩一歩進んでいくかを予測しようとする場面を想像してみてください。人間の目のデータを用いて訓練されたコンピュータは、他の有名なAIモデル(GPT-5やClaudeなど)や、読解タスクにおける従来の最高性能のコンピュータプログラムよりも、これらの経路をうまく予測することができました。執筆タスクにおいても改善は見られましたが、研究者たちは、これらの具体的な利得は従来の最高性能のコンピュータプログラムと比較して統計的に有意ではないと指摘しています。それでもなお、彼らは商用モデルを上回る性能を示しました。これは、コンピュータに人間と同じように注意を向ける方法を教えると、コンピュータは単に読むのが上手くなるだけでなく、思考の「プロセス」そのものを理解し始めることを示唆しています。
ただし、著者たちは自分たちのモデルが人間の心の謎を解明したと言っているわけではない、という点には注意を払っています。彼らのモデルは、個々の人間の脳の完璧なコピーではなく、ある集団が通常行うことの「推定器」であると認めています。また、限界もあります。このモデルは、コードの小さな塊に対して最もよく機能し、一度にメモリに収まるほどコードが巨大すぎると混乱する可能性があります。しかし、これらの結果は、私たちの目の動きを観察することで、機械に私たちと同じように世界を見ることができるようになるという、強力なヒントを与えています。
技術要約:ソースコードにおける人間の視覚的注意の予測
問題提起
ソフトウェアエンジニアリングのタスクにおける人間の視覚的注意を理解することは、ユーザーインターフェース設計の最適化、ソフトウェアエンジニアリングツールの向上、および人間の認知プロセスのモデリングにおいて極めて重要である。プログラマがソースコードをどのように読むかを研究するために、アイトラッキングデータが使用されてきたが、この注意を計算機的に予測することは依然として困難な課題である。既存のアプローチは2つのカテゴリーに分類される。一つは、注意を空間座標として扱い、コード内の意味情報を無視する一般的なコンピュータビジョンモデルであり、もう一つは、コード読解の複雑で回帰(regression)の多い性質には適用できない眼球スキャンパターンを仮定するテキスト読解モデルである。さらに、大規模言語モデル(LLM)は注意機構を備えているが、その内部的な注意が、特定のタスク指向のコード読解において人間の視覚的注意と一致しているかどうかは確立されていない。本論文が取り組むギャップは、アイトラッキングデータを利用して、機械の注意を人間の認知パターンに適合させることで、きめ細かな視覚的注意(ソースコード内の特定の単語)を予測できる計算モデルの欠如である。
手法
著者らは、事前学習済みのTransformerアーキテクチャ(具体的には、350MパラメータのGPT-2スタイルのモデルであるjamモデル)に基づき、実際のアイトラッキングデータを用いてファインチューニングを行う計算モデルを提案している。本手法は、主に3つのコンポーネントで構成される。
- 予測対象: モデルは、ソースコードのスニペット内の各単語に対する**総注視時間割合(ptgt)**を予測する。ptgtは、特定の単語(関心領域)への総注視時間を、コード・アーティファクト全体の総注視時間で除算したものと定義される。この指標は、特定のトークンに割り当てられた相対的な重要度または注意を定量化する。
- 入力表現: 入力シーケンスは、ソースコードのトークン、注視トークン(人間の目が止まった単語)、および注視トークンの直近の隣接トークンの3つの部分で構成される。
- カスタム損失関数: 本研究の核心的な革新は、ファインチューニング中にモデルの内部注意を人間の注意と一致させるように設計された新しい損失関数である。プロセスは以下の通りである:
- アテンション・リードアウト(Attention Readout): 最終層のTransformer(具体的には、深い層の方が人間の注意とより良く一致するという先行研究に基づき、ヘッド10〜16を平均化する)から、注意行列(Q および K)を抽出する。
- 機械的注意スコア: 注視に関連するトークン間の注意確率を平均することで、スカラー値の注意スコア(a^)を算出する。
- 人間による教師信号: 機械の注意スコア(a^)と、正解となる人間のptgt(a)との間の類似性を計算する。
- 損失の構成: 全体の損失(L)は、言語モデリングのための標準的なカテゴリカル交差エントロピー(CCE)損失と、2つの補助項を組み合わせたものである。補助項の一つは、注視時間の絶対的な大きさを強制するための平均二乗誤差(MSE)であり、もう一つは、注意の相対的な構造(高注意トークンと低注意トークンのランキング)を強制するための変換されたピアソン相関係数損失(Lcorr)である。損失は、補助項が言語モデリングの目的関数を支配しないよう、動的に再スケールされる。
主な貢献
- 新しい損失関数: MSEとピアソン相関係数の両方を用いて、人間の視覚的注意(ptgt)とニューラルネットワークの内部自己注意との間のダイバージェンスを明示的に最小化する損失関数の設計。
- きめ細かな予測: 生体認証やタスクの難易度といった粗い粒度の予測を超え、ソースコード内の個々の単語(トークン)レベルでの注意を予測する。
- アブレーション研究: ピアソン相関係数コンポーネントがモデルの性能に果たす具体的な寄与を実証する体系的な評価。
- スキャンパス予測への拡張: 注意を適合させたモデルを、人間の思考プロセスを理解する必要があるタスクである、注視のシーケンス(スキャンパス)の予測に適用。
実験結果
モデルは、JavaおよびC言語を含む3つの異なるデータセット(Smith、Wallace、およびRodegheroの研究)を用いて評価された。
- 注意予測 (RQ1): 提案モデルは、ソフトウェアエンジニアリング(Bansalら)およびコンピュータビジョン(Tafascaら)のベースラインを大幅に上回った。
- Wallace研究(Java)において、提案モデルは0.45のピアソン相関係数を達成し、ベースライン(0.27および0.21)と比較して64%の改善を示した。
- Rodeghero研究(Java)では、0.48を達成(0.41および0.42に対し16%の改善)。
- Smith研究(C)では、0.25を達成(0.04および0.04に対し467%の改善)。
- 集約された人間のリファレンスに対するモデルの類似性は、個々の人間の参加者間の類似性と同等、あるいは一部の指標ではそれを上回っており、モデルが個人の変動性に隠された「コンセンサス(合意)」としての注意構造を捉えていることを示唆している。
- アブレーション研究 (RQ2): ピアソン相関係数損失を除去すると、すべての指標(ピアソン、スピアマン、ケンドール、コサイン)において性能が低下し、相関係数項が注意の正しいランキングを学習するために不可なるものであることが確認された。
- スキャンパス予測 (RQ3): コード要約に関するBansalらのデータセットを用いた結果、提案モデルは正規化レーベンシュタイン距離(NLD)、NDCG、適合率、再現率において、元のBansalのベースラインおよび商用モデル(GPT-5 NanoおよびClaude-Haiku-4.5)を上回った。特筆すべきは、提案モデルが予測するスキャンパスは、商用モデルが示す「異質な(alien)」思考プロセスと比較して、人間のプログラマ(例:シグネチャだけでなくメソッド本体に注目する)により近い挙動を示したことである。
意義と主張
本論文は、人間のアイトラッキングデータを組み込んだカスタム損失関数を用いてファインチューニングされたTransformerベースの言語モデルが、ソースコード上の人間の視覚的注意を効果的に予測できると主張している。著者らは、このモデルが特定の個人に対する代理モデルではなく、**集約された注意構造のエスティメータ(推定器)**として機能することを強調している。
主な主張は以下の通りである:
- 整合性(Alignment): 人間のデータによって導かれる機械の注意は、コードの単語に対する人間の注意の分布を、人間同士の一致度と同等の精度で模倣することができる。
- タスク理解: スキャンパス予測における性能向上は、内部の注意を人間の視覚パターンに適合させることが、人間の思考プロセスを理解する必要があるタスク(例:コード要約)を扱う能力を高めることを示唆している。
- 限界: 著者らは、モデルが注意を時間的に集約するため、時間的なダイナミクスや回帰パターンが失われる点を控えめに指摘している。また、モデルは人間の注意メカニズムの完全な説明ではなく、訓練データに含まれない言語やタスクへの汎化性についても注意を促している。
本研究は、プログラマの認知を計算論的にモデル化するための前進であり、プログラマがどのような情報を必要としているかを理解し、人間の認知プロセスに適合したインターフェースを設計するためのツールを提供するものである。
毎週最高の computer science 論文をお届け。
スタンフォード、ケンブリッジ、フランス科学アカデミーの研究者に信頼されています。
受信トレイを確認して登録を完了してください。
問題が発生しました。もう一度お試しください。
スパムなし、いつでも解除可能。
週刊ダイジェスト — 最新の研究をわかりやすく。登録