フェイスブック、ボットを使った偽ユーザー同士の交流でバグ探し
知性を宿す機械

Facebook is using bots to simulate what its users might do フェイスブック、ボットを使った偽ユーザー同士の交流でバグ探し

フェイスブックは、プログラムを変更した影響を確認する新たな方法を開発した。 by Karen Hao2020.05.03

フェイスブックは、プログラムを変更した影響を確認する新たな方法を開発した。

他のあらゆるソフトウェア企業と同じく、フェイスブックもまた、アップデート時には製品のテストを実施する必要がある。だが、25億人のユーザーを抱えるフェイスブックにとって、普通の規模の企業が実施するデバッグ手法では不十分だ。一般的なデバッグでは、ユーザーの操作に対して期待どおりに反応するか、1人のユーザーが得られる体験の確認に焦点が当てられることが多い。対照的に、フェイスブックの主な問題の実に25%は、ユーザー間でのやりとりによってのみ発生するものだ。数十億人のユーザー同士のやりとりに対し、新たな機能を導入したりプライバシー設定を適用したりするため、どのような影響が出るのかを見極めるのは難しい。

そこで、フェイスブックは、ユーザーの行動をシミュレートするためのスケールダウンしたプラットフォームを構築した。「WW」と呼ばれるこのプラットフォームは、新たなアップデートをリリースする前にエンジニアが望ましくない影響を発見し、修正するために利用するものだ。また、コミュニティ体験を改善するためにプラットフォームに加えられる変更点を、自動的に推奨する役割も持つ。

フェイスブックは、ハードコーディングされたボットと、機械学習をベースにしたボットを混ぜ合わせ、一度に数百から数千人のユーザーのシミュレーションを実施している。機械学習をベースにしたボットは強化学習アルゴリズムを用いて学習し、トライ・アンド・エラーを繰り返しながら特定の目的に照らして、自らの行動を最適化する方法を身に着けていく。ボットは、他のユーザーを騙そうとする詐欺師や、他人のプライベート画像にアクセスしようとするハッカーなどの役割を担い、さまざまなシナリオを実行していく。たとえば詐欺のシナリオの場合、詐欺師を演じるボットは、詐欺に最適な標的を見つけるという目的が与えられる。対照的に、詐欺の標的となるボットに対しては、ユーザーが詐欺の被害に遭う脆弱な行動の中から、もっとも一般的なものをいくつか実行するようハードコーディングされる。各シナリオに関わるボットは数体だが、システム全体では数千もの異なるシナリオを同時並行で実行するよう設計されている。

こうした危険なシナリオが実行されている間、システムはボットのプライバシー設定や彼らの行動に対する制限といった、さまざまなパラメーターをシミュレーション内で自動調整する。調整のたびに、どのパラメーターの組み合わせがもっとも望ましいコミュニティ行動を実現できるかを評価し、最適なバージョンをフェイスブックの開発者に推奨する。

できる限り本物に近いシミュレーションを実行するために、WWは本来のシステムと別個に作られたテスト版ではなく、実際のプラットフォーム上に直接構築されている。この点も、他の大半のテスト方法との大きな違いとなっている。ただ、ボットは表からは見えないようになっている。通常、ユーザーはプロフィールや各種Webサイト機能など、フロントエンドのユーザー・インターフェイスを通じて、フェイスブックを利用している。一方で偽のボット・ユーザーたちは、バックエンドのコードと直接やりとりできる。これによって、ボットと本物のユーザーが共存でき、ユーザーとボットが誤ってやりとりをしてしまうことなく、より正確にプラットフォーム上でさまざまなシナリオをシミュレートできるようになっている。

現時点では、フェイスブックは悪意ある人物によるプラットフォームのコミュニティ・ガイドライン違反をより困難にするために、このシステムを各種機能のテストや改善に利用している。だがフェイスブックはプラットフォームのアップデートが、ユーザーとの合意事項や各種統計にどういった影響を与えるかをテストするなど、今後このシステムを別の形で活用していくことも視野に入れているという。