【書き起こし】メルペイが取り組む機械学習システムの品質保証 – Hiroshi Yoshizawa【Merpay Tech Fest 2022】

Merpay Tech Fest 2022 は、事業との関わりから技術への興味を深め、プロダクトやサービスを支えるエンジニアリングを知ることができるお祭りで、2022年8月23日(火)からの3日間、開催しました。セッションでは、事業を支える組織・技術・課題などへの試行錯誤やアプローチを紹介していきました。

この記事は、「メルペイが取り組む機械学習システムの品質保証」の書き起こしです。

それでは「メルペイが取り組む機械学習システムの品質保証」というテーマでお話しします。よろしくお願いします。

自己紹介

Yoshizawaと申します。金融系のエンジニアでキャリアをスタートし、2014年頃から機械学習の仕事をはじめました。7年ほど働いた後、2021年にメルペイに入社し、主に与信周りの機械学習モデルを担当しています。

一つ目に、機械学習を使ったメルペイのサービスを簡単に紹介します。二つ目にメルペイが考える機械学習の品質の考え方を、三つ目のメインセクションで現場での取り組みを、具体例を交えてお話しします。

機械学習を使ったメルペイのサービス

それでは早速、機械学習を使ったメルペイのサービスを紹介します。

一つ目は、メルカリ内や街中でのお買い物を後払い決済できる「メルペイスマート払い」というサービスです。後払い可能な金額の上限を設定した「与信枠」の仕組みの一端を、機械学習の仕組みが担っています。

二つ目は、メルカリでお金を借りられる「メルペイスマートマネー」というサービスです。売上金やポイントでの返済ができる、返済プランをアプリ上でいつでも変更できるなど、返済のしやすさを重視しています。メルカリの利用実績から与信判断をしており、機械学習も重要な要素になっているサービスです。

我々は、メルカリアプリを通じた売買や各行動実績のデータをもとに与信を行っています。メルカリでは、家族構成や職業などの属性情報よりも、メルカリアプリ内での行動実績を重視しています。これによって、従来与信を得られなかった方にも独自の与信を設定できるのです。

サービスの紹介は、以上です。

メルペイが考える機械学習の品質

続いて、機械学習の品質についてどう考えているかという話をします。

品質と聞いて、どのようなことを思い浮かべますか。機械学習システムですので、予測精度の高さは重要な品質のひとつです。しかし、サービスとしての運用を考えると、多くの要求に応えられることも必要だと考えています。

たとえば、お客さまにとっては「便利で使いやすい体験」「公平な扱いを受けられること」も品質の一つだと思います。社会からの要請を考えると、「より良い社会に繋がるか」「法令を遵守しているか」も重要な観点です。また、メルカリグループに目を向ければ、「事業の継続性・収益性」や「グループシナジー」も重要だと思います。

機械学習システムは試行錯誤が必要であり、データの変化に敏感です。これらの特性を踏まえて品質を維持・向上するために、どのような取り組みをすべきかを考えることが重要です。

続いて、品質をどうやって作るかという話に移ります。私たちの取り組みをデータ、モデル、システム、それ以外の4つに分けてお話しします。

現場での取り組み

ここからは、現場での取り組みについて紹介します。

Data

データの観点では記載されている三つの観点で、品質向上に取り組んでいます。

一つ目は、技術的・法的倫理的な観点で使用していいデータを、継続的かつ正しく処理をしていくことです。二つ目は、データの変化に気付いて臨機応変な対応が迅速にできるかです。三つ目は検証可能性で、システムには誤りもありますので、過去にさかのぼって検証できるよう担保していきたいと思います。

以降、具体的な取り組みをお話しします。

一つ目は、特徴量の一貫性の確保です。これは、学習時と推論時で同じように処理した特徴量を使うことをいいます。処理の仕方が同じだという観点に加え、時間軸上扱って良い範囲のデータだけをインプットにできるよう力を割いています。この仕組みとしてはFeature Storeに着目して、その実装の一つであるFeastを利用して実現できるよう取り組んでいます。

出典:Feast 0.9 vs Feast 0.10+ – Feast
https://docs.feast.dev/project/feast-0.9-vs-feast-0.10+#feast-0.10-0.11-and-0.12-architecture

続いて、クリーンな特徴量です。機械学習において、特徴量は非常に重要です。モデルの精度に寄与することはもちろんのこと、社会的責任やお客さまへの責任を果たすため、特徴量の使い方は重要な観点です。

特徴量のバグがないかを特徴量ごとにテストしているのに加え、法的・倫理的観点として、プライバシー保護や公平性を考慮したときに使っていい特徴量かを確認しています。MLエンジニアだけではなく、ビジネス側の部門とも協力して判断し、モデルに組み込んでいます。

三つ目は変化への対応で、データが変わっていくドリフトのチェックをしています。チェックにはTensorflow Data Calidation(TFDV)を使っており、学習時と推論時、あるいは推論時と前回の推論時のデータ分布を比較しています。

ただ、この取り組みは完全に自動化しておりません。「特徴量を眺める会」といい、実際にMLエンジニアによる目視での確認も実施しています。気になる点や問題点を見つけた場合は、その場で対応方法を議論して臨機応変に対応しています。

問題が発生した場合などに事後的に当時の状況を再現して検証できるよう、データの保管を行っています。機械学習モデルの行動を保存するのに加え、学習データ、予測データ、そのときのハイパーパラメータ、その他モデルの学習、推論に設定しているパラメータを一通り保存しています。

以上が、データに関して我々が取り組んでいることの一例です。

Model

続いて、モデルの観点でお話しします。

大きく分けて開発と運用の二つのフェーズに分けて、何をやるべきかを考えています。汎化性能や有用性のチェックはもちろん、運用を見据えてどういうアルゴリズムを選択するかを考えて開発を行っています。

モデルに関する取り組みの具体例を紹介します。

一つ目がモデルモニタリングです。モデルを実装して運用しはじめた後に、その精度を継続的にモニタリングする仕組みというのを実装しています。汎化性能の確保や、コンセプトドリフトなどが起きたときにその異変を早期に検知・対処することが目的です。

多くの機械学習システムも同様かもしれませんが、モデルの生の出力値に加えて後処理をし、何段階かの処理を経てお客さまに届けることがあるかと思います。この後処理の工程ごとに精度指標を時系列でモニタリングし、精度が劣化したときに原因箇所を追跡できるような工夫を行っています。

続きまして、再学習の効率化・自動化です。機械学習モデルのアルゴリズムを選定するとき、ビジネスニーズを満たすかはもちろん、運用しやすいかどうかも考慮する企業が多いと思います。

考えるべきこととしては、「ビジネスニーズを満たせる精度がどれくらいか」「説明性がどの程度必要か」があります。他にも推論にかけられる時間や、再学習までにかかる時間やどれくらいの頻度で再学習すべきかという観点を考えながら、アルゴリズムを選定する必要があります。新しくモデルを作るときは、それらをクリアできるアルゴリズムを選んでいます。

我々の場合、メルカリの行動データを使っている関係上、一定、外れ値に強い、外部環境の変化に強いモデルを使っていきたいと考えています。そのような観点も踏まえてアルゴリズムを選定しています。また自動再学習基盤も検討・構築しており、再学習を自動でデプロイすることも試しており、現在PoCを実施中です。

モデルの予期しない振る舞いは、どのような機械学習モデルでもある程度起こりうるかと思います。起きてしまったことに対しては特徴量の改善やルールベースロジックの追加などで再発を防止できますし、我々もそのような対処をたくさん行ってきました。

一方、潜在的に事業に影響を及ぼしかねないバグの可能性も、排除しきれません。バグが起きた場合もしくは起きる前に、どのような事象が起こりうるかを整理した上でテスト実施を検討しています。このテスティングはまだ整備中ではありますが、より制御可能な予見性の高い機械学習モデルを開発していくという取り組みを検討しています。

System

続いて機械学習のコンポーネント以外、つまりシステム全体でどのように品質保証をしていくかについてお話しします。

機械学習システム全体と捉えたときに、品質の観点での大きな役割はふたつです。

一つ目は機械学習モデルの弱点をシステム全体で補うという考え方で、誤判別したときに事故を起こさないことを担保するために、機械学習コンポーネント以外のところで補足しする、法的な規制をする、規約との整合性を最終的に担保するという役割があります。

もう一つは、システムの開発・運用の迅速性・正確性をシステム全体で担保する役割です。機械学習の開発ではどうしても一定の試行錯誤が発生しますし、想定と違う動きをすることも多々あると思います。そのようなときに早くPDCAを回すことが大切ですので、迅速性・正確性にも力を割いています。

一つ目は機械学習モデルの補完ということで、先ほど一つ目にお話した内容になります。

機械学習モデルでトップレベルの情報量が少ないときに、誤判別のリスクが高くなると考えます。そのようなケースでは、より頑健性の高い方法で予測値を作成する仕組みを構築する、サービスの規約・法的制約から外れるほどの予測値が出力された場合は、システム内で検知して適切な値になるよう対処することを、機械学習のモデル以外で行っています。

次は、開発の生産性・正確性です。再学習が必要な場合や、アルゴリズムや特徴量を変更するときに実験し、早くデプロイしたいケースがあると思います。一定試行錯誤を含んだ実験作業を、いかに効率化するかに力を割いています。

完全に自動化することできない部分は多々あると思うのですが、我々の取り組みの一つとしてはVertex AI Pipelinesというサービスを利用してパイプラインの可視化・実験の効率化を行っています。

オペレーションの正確性や迅速性確保のために取り組んでいる内容です。

モデルの学習、評価、推論の後処理という一連の機械学習のパイプラインを GCPのComposerを利用して自動化しています。

データ観点の事例紹介のところでもお話しましたが、間にMLエンジニアのデータ分布確認作業も入っており、完全に自動化しているわけではありません。確認作業でミスを起こしてしまったり、時間がかかったりしないよう極力自動化するようにして、最小限の作業で正確かつ迅速にオペレーションをこなしていけるよう取り組んでいます。

確認作業に必要なデータの準備処理の自動化や、確認作業のメンバーへの通知、その後の処理の軌道など、かなりオペレーションを細かく分解分析して自動化できるところを探しています。

内容に関してはブログにも記載しています。興味のある方はご覧ください。
https://engineering.mercari.com/blog/entry/20220428-06da50715c/

以上が、機械学習システムとして取り組んでいる内容になります。とはいえ、このシステム以外の観点で品質維持向上に役立っていると思われる考え方や実践例もあります。最後にそちらも紹介します。

Others

ここでは、主に二つの観点でお話しします。一つはプロダクトの視点についてでシステム以外のプロダクトを取り巻く環境の話、もう一つは品質の継続性についてで今のMLシステムは一定品質を確保できるとして、それをどうやって継続していくのかという観点になります。

一つ目は、プロダクトの視線です。機械学習チームのメンバーだけでなくビジネス部門を含めた与信事業に関わるメンバー全員で、さまざまな観点から各指標・施策をチェックしています。

機械学習チームだけでは機械学習のメトリクスにフォーカスが当たりやすいのですが、事業全体で考えることで、UXや収益性の観点からも議論し、最終的なアウトプットのチェックをすることができます。

実際にその特徴量を使うべきかという議論に関して、公平なサービスが提供できているかという観点で、Privacy officeでも利用していいかをチェックしています。機械学習エンジニアチームが一次判断をした後、Privacy officeでこれを使っていいかを議論をすることで、公平性の確保に努めています。

二つ目はカルチャーです。品質の継続性において、組織のカルチャーは非常に重要だと思います。今のプロジェクトを上手く終えるだけでなく、継続的に品質改善していくチームカルチャーを作ることに努めています。新メンバーが改善・提案をしやすい、また改善に着手しやすいチームであることが大切です。

カルチャー醸成のための一つ目の取り組みは、ドキュメンテーションの徹底です。ドキュメンテーションの意義は、過去の意思決定の根拠をたどり、将来の施策や改善に繋げることです。たとえばニューメンバーが入ってきたときに「なぜこの実装なのか」「当時どうしてそのような意思決定をしたのか」を辿れるようにするのが、品質の継続性という観点で重要です。

二つ目は、与信年表です。これもドキュメンテーションの一つではあります。ですが、機械学習モデルの変更履歴だけではなく、与信事業としてある時点でどういう与信をしていたのかを年表でまとめることで、当時のデータがどういう環境で生成されたのかが事業全体として共有できるというつもりで作っています。

三つ目は、Trust & Opennessなカルチャーです。このカルチャーが根付いていると強く感じまして、それによって違和感を覚えたときに声を上げやすい、そして改善提案をチーム内・事業内でしやすい環境が育まれています。この環境が、品質の継続的な改善にも役立っています。

最後に

私たちMLチームは、機械学習システムの品質がお客さまや社会に対してかなり直接的に影響を及ぼします。非常に挑戦のしがいと緊張感のある空間です。

いろいろな意味での品質が求められますので、組織力だけでも技術力だけでも、求められる品質には及びません。その双方に着目して自己成長しながら、総動員で品質向上に取り組んでいます。

ビジネス側とエンジニアが全体で与信事業の品質向上に取り組んでおり、最後にお話ししたカルチャーの醸成も、基礎品質の一つとして我々の機械学習モデル、ひいては与信のプロダクトサービスの品質を形づくっていると思います。

ご清聴いただきありがとうございました。

  • X
  • Facebook
  • linkedin
  • このエントリーをはてなブックマークに追加