Retrograde: JupyterLabでのリアルタイムバイアス通知(論文紹介)
こんにちは。ZENKIGENデータサイエンスチームの川﨑です。所属チームでXアカウントを運用しており、AIに関する情報を発信していますのでご興味あれば覗いてみてください。
図1. 本研究で作成されたJupyterLabの拡張機能「Retrograde」のイメージ図。JupyterLab in Retrograde: Contextual Notifications That Highlight Fairness and Bias Issues for Data Scientistsより引用。
論文は以下になります。
背景
公平性に気をつけながら、機械学習モデルを作る。言うは易しですが、実態として行うことは難しいと感じることが多いのではないでしょうか。機械学習モデルのバイアスを検知する手法は多く提案されていますが、実際にバイアスを含むかを左右するのはデータクレンジング、特徴量作成、モデル学習の一連の作業で行われる様々な処理に起因します。そして、モデル構築後のバイアスからこれらの処理をどうすべきだったのかについて検討することは困難です。
そこで、本研究ではデータサイエンティストがバイアスの可能性についてリアルタイムで通知を受けることができるJupyterLabの拡張機能「Retrograde」を提案し、その効果を検証しています。
Retrogradeとは
図2. 本研究で作成されたJupyterLabの拡張機能「Retrograde」の処理イメージ。JupyterLab in Retrograde: Contextual Notifications That Highlight Fairness and Bias Issues for Data Scientistsより引用。
Retrogradeは、公平な機械学習モデルを作成するためにデータサイエンティスト向けに開発されたJupyterLabの拡張機能です。この拡張機能は、モデル構築段階で行われる様々な処理を行う / 行わないの意思決定こそが機械学習モデルの公平性に大きな影響を与えるという考えのもと、データサイエンティストにバイアスの可能性についてリアルタイムで通知を送ることができます。
Retrogradeの主な機能は以下のとおりです。
機能1. データ追跡機能
Retrogradeはnotebook内で実行されたコードを継続的に分析し、pandas DataFrameやSeriesオブジェクト、scikit-learnモデルとの関係を記録します。この情報に基づいて、データがどのように処理され、モデルがどのように構築されたかを追跡します。
機能2. 通知機能
Retrogradeは、データ追跡機能で収集された情報に基づいて、公平性とバイアスに関連する特定のイベントを検出すると、データサイエンティストにカスタマイズされた通知を行います。
通知1. 保護すべき属性の通知
データセットに、保護すべき属性(人種、性別など)が含まれていることを警告します。データサイエンティストは、これらの保護された属性を予測変数として使用しないように注意する必要があります。
通知2. 欠損データ通知
欠損データと保護すべき属性との間に有意な相関関係がある場合に警告します。欠損データを単純に削除するとバイアスが生じる可能性があるため、欠損値の補完や、削除する行の選択基準を見直すなどの対策を促されます。
通知3. 代理カラム通知
保護すべき属性と強く相関している変数(代理変数)を検出した場合に警告します。代理変数を予測変数として使用すると、間接的にバイアスが生じる可能性があります。
通知4. モデルレポート通知
モデルの性能(適合率、再現率、F1スコアなど)を保護すべき属性ごとに計算し、グループ間の差異を強調して表示します。これにより、モデルが特定のグループに対して不公平な予測を行っていないかどうかを評価することができます。
通知5. 反事実通知(モデル頑健性に関する通知)
データをわずかに変更した場合にモデルの予測がどのように変化するかを示します。これはモデルの頑健性を評価し、モデルが特定の特徴量に過度に依存していないかどうかを判断するのに役立ちます。
実験
実験は、データサイエンティスト、ないしは機械学習に関する知識を持つと判断された51名を対象にオンライン上で実施されました。参加者はRetrogradeの通知の有無で3つのグループに分けられ、ローン承認を自動化する分類モデルを構築するタスクが与えられました。
- 通知なしグループ: Retrogradeの通知を受け取らない。
- 継続通知グループ: タスク実行中、Retrogradeの通知を継続的に受け取る。
- 事後通知グループ: タスク終了後、Retrogradeの通知を一括で受け取る。
- 参加者がモデル構築後にどういった考えを持っているかについて評価することを目的としてグループ分けされていますが、今回の記事ではアンケートに関する考察パートは割愛しています。
データセットは、公平性に関する問題を意図的に含むよう人工的に作成されています。また、本実験では公平性や倫理的側面について対応することを明示的に指示としては与えておらず、参加者は自身の判断でモデルを構築することを求められています。
参加者には実験後にアンケート調査が行われ、Retrogradeの通知がモデル構築にどのような影響を与えたかについて評価を受けました。
モデル構築タスクとアンケート回答の完了後、研究メンバーが各参加者のnotebookを確認し、欠損値処理の方法や予測に用いた変数などが分析されます。さらに、各グループのモデルの性能(適合率、再現率、F1スコアなど)を保護すべき属性ごとに計算し、グループ間の差異を評価します。
結果
データ処理方法の比較
図3. 実験条件ごとのデータ処理方法の比較。JupyterLab in Retrograde: Contextual Notifications That Highlight Fairness and Bias Issues for Data Scientistsより引用。
表より、継続通知グループは保護された属性(人種や性別など)を予測変数として使用する人数が少ないことがわかります。他にも、欠損データを含むレコードを削除せず何かしらで欠損値補完するなど、より慎重なデータ処理が行われていることが示唆されます。
モデル精度の比較
図4. 実験条件ごとのモデル精度の比較。JupyterLab in Retrograde: Contextual Notifications That Highlight Fairness and Bias Issues for Data Scientistsより引用。
表より、最終的に提出されたモデルのF1スコア、適合率、再現率、偽陽性率、偽陰性率は概ね近いと考えられます(平均と偏差より)。このことから、Retrogradeの通知有無がモデルの全体的な精度には大きな影響を与えていないことが示唆されます。
保護すべき属性のグループごとの精度比較
図5. 実験条件ごとの保護すべき属性のグループごとの精度比較。JupyterLab in Retrograde: Contextual Notifications That Highlight Fairness and Bias Issues for Data Scientistsより引用。
こちらの表は、保護すべき属性のグループ間(白人/黒人、男/女など)の各種モデル性能指標のうち、最も高いグループと最も低いグループスコアの差を示しています。
表より、真ん中の条件の継続通知グループのF1スコアが最も低いことがわかります。また、それ以外の各種指標でも継続通知グループのスコアが低い指標が多く、全体的な精度は同等であっても公平性の観点から望ましいモデルが構築されていることが示唆されます。
まとめ
以上、Retrogradeというモデル開発中にモデルバイアスの可能性を通知するJupyterLabの拡張機能について紹介しました。本論文では、Retrogradeが諸々のデータ追跡や通知をどのように行っているかに関する詳細な説明も行われていますので、興味のある方はぜひ論文を読んでみてください。
お知らせ
少しでも弊社にご興味を持っていただけた方は、お気軽にご連絡頂けますと幸いです。まずはカジュアルにお話を、という形でも、副業を検討したいという形でも歓迎しています。
Discussion