ジョイジョイジョイ

ジョイジョイジョイジョイジョイ

面白さ優先分類器

既存の機械学習モデルの多くは予測精度を最大化することを目指しますが、本稿では面白さを優先する分類器を紹介します。

目次

面白さを優先するとは

例えば、ユーザーのプロフィールから、そのユーザーが成人しているかどうかを分類する問題を考えましょう。 ユーザーのプロフィールに年齢の特徴量 age があれば、年齢が 18 歳以上かどうか (age >= 18) という分類ルールで精度 100% を達成できます。SNS では嘘の年齢を書いている可能性もありますが、大抵の人はおおむね正しい年齢を報告しているはずなので、精度 99% 程度は達成できるでしょう。この分類ルールの精度はとても高いですが面白くありません。

もっと突飛なルールを考えてみましょう。「登録メールアドレスの末尾が@ezweb.ne.jpなら成人、末尾が@icloud.comなら未成年」という分類ルールはどうでしょう。ある程度の精度を達成できそうです。精度はそこまで高くないにしろ、面白いのでオーケーです。このような分類器を得たいものです。

もう少し学術的な例として、抑うつ症状の検出問題を考えます。この検出には様々なテストが提案されています。例えば、憂うつな気分かどうか、将来について悲観しているかどうか、罪の意識を感じるかどうか、など、 21 の質問について自分自身で 4 段階のスケールで回答し、総合点で判断するベックうつ病調査表 (Beck Depression Inventory) が有名です。このテストはうつ病の判定として広く使われていますが、判定方法として「面白い」かは疑問です。「あなたは将来について強く悲観しているので、抑うつです」と言われても、そりゃそうだろって話ですよね。他の面白い結果としては、「エッセイを書いてもらい、わたし (I, my, me, myself) という単語を使う頻度が高いと抑うつ」というルールである程度の精度で判定ができることが知られています [Rude+ 2004, Edwards+ 2017]。抑うつ傾向のある人は、周囲や外界よりも「自分自身」に関する情報を強く意識しやすいと考えられています。もちろん、この判定方法は書き手のスタイルに大きく左右されます。陽気でも「わたし」を多用する人もいるでしょう。実際、この判定方法は統計的に有意であるものの、相関係数は r = 0.13 程度とあまり高くありません。それでも、この判定ルールはその面白さもあって心理学の分野で一定の評判を得ており、様々な関連研究や後続研究が広がっています [Edwards+ 2017]。

本稿で使うもう少し現実的な例として、オフィスに人がいるかどうかを判定する問題(Occupancy Detection というデータセット)を考えます。このデータセットはオフィスに照明が付いているかどうかという単純なルールで 99% 程度の精度が得られます。オフィスは昼間でも基本的に照明が付いていますし、オフィスで照明を消して滞在・就寝する人は(大抵の企業では)いないので、人がいる = 照明が付いているという関係がほぼ成り立ちます。ただ、これで解けてしまうとあまり面白くないです。あとで見るように、実はこの問題、「湿度が高いと人がいる」というルールで精度 85% くらいで解けます。もちろん、湿度が高いだけだと雨が降っているのか人がいるのか区別がつかないですし、人がいてもさほど湿度は上がらないのでそこまで高い精度が出るわけではないです。ですが、湿度計で人がいるかどうかを判定できるというのは、言われてみればできる気もするし、できない気もするし、面白さが感じられるちょうどいいラインです。また、単に面白い・面白くないというだけでなく、そういった非自明なセンサーで問題が解けるのであれば、精度がそこまで必要ないアプリケーションを従来より安価に実現できる可能性もある、という点で実用性も兼ね備えています。

関連する話題としては、特徴選択、モデルの解釈性、説明可能性がありますが、これらは基本的には精度を最大化することを目的としている点で面白さ優先とは異なります。例えば、成人判定の問題に対して特徴選択をすると age という特徴が選択され、age >= 18 という解釈可能な分類ルールが得られるでしょう。これは解釈可能で精度が高いですが、面白くはないです。オフィスに人がいるかどうかを判定する問題では、light という特徴が選択され、light >= 300 という解釈可能な分類ルールが得られるでしょう。これも解釈可能で精度が高いですが、面白くはないです。

問題設定

入力はテーブルデータです。以下のような Pandas DataFrame などを想定しています。最初の d 列が特徴量で、最後の 1 列が予測したいラベルです。

目標は面白い・意外な分類ルールを自動で得ることです。これはテーブル in、分類器 out という形で、Kaggle などでよくある普通の分類問題の設定です。ただし、従来は予測精度を最大化しますが、ここでは面白さを優先し、そのうえで意味のある精度を達成することを目指します。

手法

提案法 EUREKA (Exploring Unexpected Rules for Expanding Knowledge boundAries) は非常にシンプルで、簡単に言うと、LLM で面白い特徴量を選択し、面白い特徴量だけで分類器を構築します。

面白い特徴量の選択は簡単に言うと、LLM に「××だけから〇〇を予測できることと、△△だけから〇〇を予測できること、できたとすればどちらが面白いか」を聞きます。これを複数の特徴量の対について行い、特徴量の面白さのランキングを作成します。ランキングは、選ばれた回数の多い特徴から順に並べます。これはシンプルながらほぼ最適な方法であることが知られています [Shah+ JMLR 2018]。

例えば、「オフィスに人がいるかどうか」という分類問題(Occupancy Detection データセット)でこれを実行すると

  1. HumidityRatio(空気に含まれる水蒸気の量の、乾いた空気の質量に対する比)
  2. Humidity(湿度)
  3. Temperature(温度)
  4. Light(照明)
  5. CO2(二酸化炭素量)

という特徴量のランキングになります。水蒸気量だけから「オフィスに人がいるかどうか」を判定できたら面白い、二酸化炭素量だけから「オフィスに人がいるかどうか」を判定できるのはできて当たり前、ということです。

二つの特徴量を選んでどちらが良いかを聞くのはちょっとしたコツです。もし各特徴量について「どのくらい面白いか点数をつけてください」と聞くと、聞くたびに基準がズレて、たまたま甘い基準で回答した特徴が選ばれてしまいます。また、多くの LLM はポジティブな回答をするようにバイアスがかかっているので、十段階で答えさせると 10 点の付近に回答が偏り、タイがたくさん発生してしまう可能性があります。一対比較は絶対基準ではなく相対基準なので基準点の問題はなくなり、また「どちらか」を選ばせることで、全員平等に終わることはなく、微妙な候補間に差をつけることができます。ブラックボックスな API しか利用できない場合にも使える手法である点も魅力的です。

特徴量の面白さのランキングができたら、面白い上位 K 特徴(K = 1 特徴のみ、K = 3 特徴、など)だけで分類器を訓練します。例えば、HumidityRatio だけからオフィスに人がいるかどうかを判定できるかを試す、HumidityRatio, Humidity, Temperature だけから判定できるかを試すなどです。ここで使う分類器はロジスティック回帰や決定木など解釈可能なものであれば何でもよいです。以下ではロジスティック回帰を用います。

実験結果

まず、様々なデータセットに従来の特徴選択手法と提案法を適用して、どのような特徴量が一番に選ばれるかを見てみましょう。提案法については、まったく予測能力のない特徴が一番にくる場合もあるので、そのときには二位も一緒に載せています(従来法では予測力が高いものが優先されるので、このようなことは起こりえません。予測力よりも面白さを優先したが故に起こることです。)

データセット 予測タスクの説明 Group LASSO Logistic Regression Validation Selection EUREKA
Occupancy Detection 室内に人がいるかを予測 Light
室内の光量
Light
室内の光量
Light
室内の光量
HumidityRatio, Humidity
湿度比と湿度
Twin Papers 論文がより引用されるかを予測 Lengthen_the_reference
参考文献が長いかどうか
Lengthen_the_reference
参考文献が長いかどうか
Lengthen_the_reference
参考文献が長いかどうか
Including_a_Colon_in_the_Title
タイトルにコロンを含むか
Mammographic Mass 乳房腫瘤の良悪性を予測 BI-RADS
放射線診断医による診断スコア
BI-RADS
放射線診断医による診断スコア
BI-RADS
放射線診断医による診断スコア
Density, Age
腫瘤の密度と患者の年齢
Breast Cancer Wisconsin 乳がん診断(良性/悪性) Bare_nuclei
細胞核が露出して見える頻度
Bare_nuclei
細胞核が露出して見える頻度
Uniformity_of_cell_size
細胞サイズの均一性
Marginal_adhesion
細胞同士の接着の強さ
Adult 年収が5万ドル以上かを予測 capital-gain
投資や資産売却によるキャピタルゲイン(収益)
capital-gain
投資や資産売却によるキャピタルゲイン(収益)
capital-gain
投資や資産売却によるキャピタルゲイン(収益)
capital-loss
投資や資産売却によるキャピタルロス(損失)
Website Phishing サイトがフィッシング詐欺かを予測 SFH (Server Form Handler)
フォーム処理状態
SFH (Server Form Handler)
フォーム処理状態
SFH (Server Form Handler)
フォーム処理状態
popUpWindow
ポップアップウィンドウの有無

従来法は、基準は異なるとはいえ、どれも予測に効く特徴を選ぶことを目指しているので、おおむね同じような特徴が選ばれます。提案法だけかなり様子の違った特徴の選び方になっています。

先に述べたように、室内に人がいるかを予測する Occupancy Detection データセットでは、予測力が高いのは室内の光量ですが、面白い特徴量としては湿度が選ばれています。

二つの似た論文が与えられたとき、どちらがより引用されるかを予測する Twin Papers データセットでは、「参考文献が長いかどうか」が最も予測に効きます。たしかに、参考文献が長いとしっかりと調査したうえで、過去の研究に裏付けられている可能性が高いので、より良い、より引用される論文になると考えられます。また、現代では、引用すると引用先の論文の Google Scholar ページなどに載ることになるので、そこから露出も増えて引用されるチャンスも増えそうです。

一方、面白さを優先すると「タイトルにコロンを含むか」という特徴で引用されるかを予測することになります。かなり突飛な特徴量ですが、後で見るように、実はこの特徴だけでも意味のあるくらいには引用数の多寡を予測できます。

乳房腫瘤の良悪性を予測する Mammographic Mass データセットの BI-RADS は放射線診断医が手動で付けるスコアです。これは専門医による診断なので、極めて信頼性が高いです。これを予測に使ってしまうと精度が高くなりすぎるので、予測コンペなどでは省かれることが多いですが、今回はあえて含めて実験を行いました。既存の特徴選択手法は当然、これを最も予測に使える特徴量とします。一方、提案法は BI-RADS が入っていたとしても、これを使ってしまうと面白くないので、Density や Age などのほかの特徴量を優先して使います。

年収が5万ドル以上かを予測する Adult データセットでは、従来法で選ばれたのは capital-gain ですが、提案法が選んだのは capital-loss です。たしかに損失の方でも年収を予測することはできそうで、そっちで予測する方がなんか面白いです。

ちなみに、capital-loss を使ってロジスティック回帰を訓練すると「損失が多ければ多いほど、年収が5万ドル以上である確率が上がる」という結果になり、これである程度の精度を達成できます。損失が多いと年収が高いというのはやや直観に反しますが、年収が5万ドル未満の人はそもそも売却できる資産がなく、大規模なキャピタルロスをしているというのは不動産売買などをしており大きな資産を持っている可能性が高いので、キャピタルロスが多い → 年収が高いというシグナルになると考えられます。面白いですね。

実際に、提案法で選ばれた特徴量で訓練した分類器の精度が以下の通りです。

提案法で選ばれた特徴量で訓練した分類器の精度。面白い特徴量だけからでも非自明な精度を達成できる。Chance は最も割合の多いクラスだけを出力し続けるときの精度。* は尤度比検定で有意な当てはまりをしたことを示す。

ほとんどのケースで、一番面白い特徴量だけ使った場合でもチャンスレート(最も割合の多いクラスだけを出力し続けるときの精度)よりも高い精度を達成できています。例外は、室内に人がいるかを予測する Occupancy Detection データセットの HumidityRatio 特徴量と、乳房腫瘤の良悪性を予測する Mammographic Mass データセットの Density 特徴量のみです。HumidityRatio 特徴量は単体でも、統計的に有意な当てはまり度合いを見せるのですが、有意とはいえ効果量が小さいことと、クラスに偏りがあることなどから、予測精度の観点ではチャンスレートに到達できていません。これらのケースにおいても、二番目に面白い特徴まで使えばチャンスレートを上回る精度で予測できています。

前述のように、室内に人がいるかを予測する Occupancy Detection データセットでは、「湿度が高いと人がいる」というルールで 85% 程度の精度を達成できています。

論文がより引用されるかを予測する Twin Papers データセットでは、「タイトルにコロンが含まれている方が引用されやすい」というルールで 52% 程度の精度を達成できています。例えば "Twin Papers: A Simple Framework of Causal Inference for Citations via Coupling" や "Beyond Exponential Graph: Communication-Efficient Topologies for Decentralized Learning via Finite-time Convergence" のように、メインタイトルの前に提案法の名前や簡潔なコンセプトを載せることが該当します。これをするとキャッチーで人目を引きやすくなると考えられます。精度としては低いですが、テストデータは 17,000 件もあり、その中でチャンスレートから約 2% 増えているというのは統計的には十分強力なシグナルです。「タイトルにコロンがあると引用が(わずかに)増える」という結果は「たくさん引用すると引用が増える」という結果よりも非自明で面白いです。

ちなみに、一番面白くないと判定されている特徴量は Self_citation(自分の過去の論文を自分で引用する自己引用の有無)です。自己引用する著者の引用数が増えるのは当たり前ですね。実際、訓練した分類器でも、自己引用には被引用数に対して強い正の効果があると判定されています。

以上のような面白い法則がテーブルデータを入れるだけで自動で出てくるというのが嬉しいポイントです。

最後に、疑似相関について触れておきます。得られた分類器が表す法則は(従来の分類器と同じく)疑似相関の可能性があります。必要であれば、ここから因果分析に進む必要があります。しかし、面白さ至上主義のもとでは、疑似相関も大きな問題ではありません。例えば、「ニコラスケイジが映画にたくさん出演した年はプールで溺死する人が多い」という有名な法則があります [Vigen 2015]。

もちろんこれは全くの偶然なのですが、あまりにも面白いので統計分析や因果分析の教科書などで幅広く引用・活用されてきました。このような面白い疑似相関を発見するのも、面白さという点ではそれはそれで有益なことだと思います。もちろん、因果と混同しないように気をつけ、ニコラスケイジの映画が見たいので大量の人をプールに沈めるといった間違った行動は避けなければなりません。

おわりに

分類器の精度が高くなれば嬉しいですが、面白い分類器が得られるというのも嬉しいものです。Kaggle などのコンペティションでは精度で勝負することが多いですが、面白さを競い合うことがあってもよいと思います。

本稿が、分類器の精度だけでなく面白さにも目を向けるようになるきっかけになれば幸いです。

arXiv:Interesting First Classifiers
英語:Interesting First Classifiers - Data Processing Club

著者情報

この記事がためになった・面白かったと思った方は SNS などで感想いただけると嬉しいです。

新着記事やスライドは @joisino_ (Twitter) にて発信しています。ぜひフォローしてくださいね。

佐藤 竜馬

佐藤 竜馬(さとう りょうま)

京都大学情報学研究科博士課程修了。博士(情報学)。現在、国立情報学研究所助教。著書に『深層ニューラルネットワークの高速化』『グラフニューラルネットワーク』『最適輸送の理論とアルゴリズム』がある。

プロフィールを見る