翻訳記事: IBM Watson OpenScaleにおけるバイアス軽減

![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/efd54be8-f8a6-956f-4e60-3220d89aa59e.png)

# はじめに
2019/5/2に公開されたMediumの記事 :newspaper: 「**[De-Biasing in IBM Watson OpenScale](https://medium.com/trusted-ai/de-biasing-in-ibm-watson-openscale-95ca89fa2072)**」の翻訳です。[^1]
以下2本の記事に続く3本目の記事となります。(翻訳作業については著者了承済み)

- [翻訳記事: IBM Watson OpenScaleを使用したAIモデルの振る舞いの説明](https://qiita.com/ishida330/items/1c2e35e5dec2250c15f0)
- [翻訳記事: IBM Watson OpenScaleにおけるバイアス検知](https://qiita.com/ishida330/items/2068e6295dee79aad6f1)

[^1]: (2019/05/16)**De-Bias**の訳語は「バイアス**緩和**」より「バイアス**軽減**」のほうがいいんじゃね？というアドバイスを頂いたので直しました。

---

#  IBM Watson OpenScaleにおけるバイアス軽減

May 2, 2019 by Manish Bhide 

AIを改善するのにAI自身が助けとなるでしょうか? 最近のAIの進歩により、これはますますそうなりつつあります。その例の1つが、IBM Watson OpenScaleの「バイアス軽減機能」です。IBM Watson OpenScaleはAIを使って「お客様の機械学習モデルが偏った振る舞い(バイアス)をする可能性があるかどうか」を識別してから、モデルの振る舞いを修正します。つまりIBM Watson OpenScaleは、[実行時にモデル内の公平性の問題を特定する](https://qiita.com/ishida330/items/2068e6295dee79aad6f1)のに役立つだけでなく、モデルのバイアスを自動的に緩和することもできるのです。この記事ではIBM Watson OpenScaleでバイアス軽減がどのように行われているのかについて、詳しくご説明します。

まず、IBM Watson OpenScaleのバイアス軽減機能の利点から始めましょう。

- バイアスの緩和についてオープンソースで利用できる方法としては、モデルの予測結果をランダムに変更することで偏りを是正する方法があります。たとえば、融資の申し込みを判断するモデルが女性に対して偏った方法で振舞っているように見える場合、オープンソースの技法では、一部の女性申込者のモデルの予測を「融資拒否」から「融資承認」にランダムに変更してしまいます。このアプローチでは信用力の無い顧客への融資を承認してしまう可能性があるので、企業ではこの方法は受け入れられないでしょう。IBM Watson OpenScaleは、そのような恣意的な方法での決定は行いません。その代わりに必ず実際のお客様のモデルを使用してバイアス軽減の判定を行う、という革新的なアプローチを採用しています。これは直感に反するように聞こえますが、非常にエレガントな方法です（以下で説明します）。
- IBM Watson OpenScaleのバイアス軽減機能は企業での利用に耐えうるものになっています。堅牢でスケーラブルで、さまざまなモデルを処理できます。オープンソースの手法を使用してバイアスを軽減するのは運用準備に多大な労力が必要となり、誤ったビジネス上の決定を下す可能性があります。

つまり、OpenScaleが対応したようなバイアス軽減のテクニックをオープンソースでやろうとした場合には乗り越えるべき課題が存在します。OpenScaleのバイアス軽減は、2つのフェーズで構成されています。

**学習フェーズ**：バイアスがかかった時の振る舞いを理解するために、お客様のモデルの振る舞いを学習します。
**適用フェーズ**：お客様のモデルが特定のデータポイントに偏って機能しているかどうかを判定し、必要ならバイアスを修正します。

**学習フェーズ**

学習フェーズでは、IBM Watson OpenScaleはモデルによって行われた予測結果を調べたうえで、モデルの振る舞いに偏りがあるかどうかを識別します。たとえば、女性の顧客に対してモデルが「ローン拒否」と判断した場合、他のすべての値を同じにし性別のみを「男性」に変更してから、改めてモデルに予測を要求します。その結果、（性別を男性に変えただけで）「ローン承認」と判断したなら、そのモデルは女性に対して偏った振る舞いをしていることがわかります。このようにして(OpenScaleは) まず、モデルが偏って振る舞っているようなデータポイント群を特定します。この情報を使って、モデルにデータポイントを入力した際にモデルがそのデータポイントに対して偏って振る舞うかどうかを予測できる別のAIモデル（「バイアス予測モデル」と呼びます）を構築します。たとえばお客様のモデルは「郵便番号= 「90200」でクレジットスコア=「中」の場合、女性に対して偏った振る舞いをする」とわかったとします。この場合、バイアス予測モデルは入力データポイントの郵便番号が「90200」でクレジット・スコアが「中」であるかどうかを確認し、そのケースに該当するならモデルは偏った振る舞いをするだろうと予測します。ケースに該当しない他のデータポイントでは、バイアス予測モデルはモデルが偏らずに振る舞うだろうと予測します。

**適用フェーズ**

スコアリングのために新しいデータがお客様のモデルに送信される都度、IBM Watson OpenScaleはペイロード・ロギング・テーブルに内容を記録します。適用フェーズでは、ペイロード・テーブルにあるデータを前述の「バイアス予測モデル」に送信します。もし「バイアス予測モデル」が「お客様のモデルは特定のデータポイントに対して偏った振る舞いをする可能性がある」と示したなら、フェアネス属性(fairness attribute)を少数派(minority)から多数派(majority)に切り替えて、改めてお客様のモデルに送り返します。上記の例でいえばフェアネス属性は「性別」です。特定のトランザクションに対してお客様のモデルは性別の値が「女性」だと偏った判定をする可能性が高い、とバイアス予測モデルが予測した場合、性別を「男性」に反転したトランザクションをつかってお客様のモデルに送信します。お客様のモデルの判定はバイアス軽減後の判定として戻ってきます。つまり、私たちが行っているのは、顧客モデルが偏った振る舞いをする可能性が高いデータポイントについて、お客様のモデルに対し「フェアネス属性のみが多数派(majority)の値で、他のデータはすべて同じ」ような要求を出すことで、判定の偏りを緩和します。

上述の方法では、ペイロード・データがログ・テーブルに記録された後にバイアス軽減を実施します。これを「**受動的バイアス軽減(Passive Debiasing)**」とよび、モデルを利用しているアプリケーションには何の影響もありません。さらに、IBM Watson OpenScaleは、RESTエンドポイントを提供する「**能動的バイアス軽減(Active Debiasing)**」もサポートしています。このRESTエンドポイントは、顧客モデルを使ってスコアリングを行うアプリケーションから呼び出す必要があります。この場合、前述したバイアス軽減の処置は内部的に実行されます。「バイアス予測モデル」が、モデルは偏った振る舞いをしていないと判断した場合は、お客様のモデルの出力をそのまま「バイアス軽減された出力」として単純に返します。このように「能動的バイアス軽減」では、アプリケーションはその場で(on-the-fly)バイアスが緩和された判定結果を得ることができます。まずは「受動的バイアス軽減」を使ってバイアス軽減の有効性を確かめてから、次の段階として「能動的バイアス軽減」に切り替えることができる、というのも良い点です。

受動的バイアス軽減は常にペイロードデータに対して実行されます。受動的バイアス軽減の結果は、「バイアス軽減モデル(De-biased Model)」タブのOpenScale GUIに表示されます（下のスクリーンショット）。
![image](https://cdn-images-1.medium.com/max/1600/1*xY9SvQKRx9KwSn_3R9-TYQ.png)

この画面はバイアス軽減機能により公平性(Fairness)を74％から93％に向上でき、しかも（判定の）精度(Accuracy)には大きな影響を与えずに済んだことを示しています。

一言で言えば、IBM Watson OpenScaleはモデルの予測を恣意的に(arbitrarily)変更するのではなく、「**偏った判断をするお客様のモデルから偏りのない判断を引き出す**」という革新的な手法を採用しています。また、バイアスを緩和するためにどのデータを使うべきかを識別する「バイアス予測モデル」を使っています。つまり、AIをAIの問題を修正するために使っているのです。この記事で言及されているバイアス軽減アルゴリズムは、コンファレンス等で公開されており、下記から入手できます。

- [Bias Mitigation Post-processing for Individual and Group Fairness.](https://arxiv.org/abs/1812.06135)

---
記事はここまで↑

# ご参考

記事翻訳のみならず、過去、自分でもWatson OpenScaleをご紹介した記事をQiitaに書いておりますので、ご興味あればご高覧ください。

:newspaper: [「AIへの信頼」や「説明可能なAI」に絡み、一部で話題の「IBM Watson OpenScale」をザクッとご紹介します](https://qiita.com/ishida330/items/ced6e5233ca61ae0af9d)
:newspaper: [Watson OpenScaleをもう少し「キチッ」とご紹介します(A.K.A.「麗しき誤解」を解く）](https://qiita.com/ishida330/items/db3cbb3763ac3067140f)
:newspaper: [Watson OpenScaleを触る前に知っておきたかったこと（技術Tipsなど)](https://qiita.com/ishida330/items/2c9b049966a988850b06)

以上です。