Amazon Bedrock を用いた掲示板投稿監視システムの実現
~ 株式会社ゲームエイトによる生成 AI 実装解説
Author : 笠井 一輝 (株式会社ゲームエイト), 長友 健人 (アマゾン ウェブ サービス ジャパン合同会社)
Game8 は株式会社ゲームエイトが運営する日本最大級のゲーム攻略サイトです。Game8 にはユーザー同士が情報交換や交流するための掲示板があり、日々多くのコメントが投稿されています。時々、荒らしや誹謗中傷などの不適切なコメントが投稿されますが、これらはサービスブランド毀損、ユーザー間のトラブルにまで発生する可能性があります。担当者による目視の確認で不適切なコメントを非表示にする監視業務をしていましたが、1 日数万件のコメントが投稿されるため見逃しが発生すること、リアルタイムな対応が難しいという課題がありました。
そこで全投稿のリアルタイム監視を実現するために Amazon Bedrock を用いて投稿監視システムの構築を開始しました。
本記事では掲示板投稿監視システム構築における工夫、導入効果について詳しく紹介いたします。
ゲームエイトにおける掲示板の監視業務
Game8 では誹謗中傷・スパム・個人情報などを不適切なコメントとして非表示にする監視業務を実施しています。ただしコメントの適切・不適切の判断は単純ではありません。コメントの不適切さにはグラデーションがあり、明らかに不適切なものもあれば、一見誹謗中傷に見えるがニュアンスは友好的である判断が難しいグレーなものも存在します。監視業務の担当者は各掲示板の特性を理解した上でグレーなコメントを非表示にする判断をしています。
Self-Consistency を用いたコメントのラベリング
Large Language Model (LLM) を使用したコメント監視の自動化において、不適切なコメントの評価の信頼性を高めるために Self-Consistency を導入しました [1]。Self-Consistency とは、Temperature (出力の多様性を制御するパラメータ) を適度に設定し、LLM に同じ入力を複数回与えて得られた出力の一貫性を評価することで、出力の信頼性を評価する手法です。
従来の課題として、単純な二値的なラベリング (例:誹謗中傷は "Insult"、スパムは "Spam") では不適切さにグラデーションのあるグレーなコメントを評価できませんでした。プロンプトの指示で LLM に直接スコアを出力させる方法は、一般的に信頼性に問題があることが知られており、実験的にも信頼性が担保されなかったため採用しませんでした [2] 。
そこで、Self-Consistency を用いて同一のコメントに対して複数回のラベリングを実行することで、不適切さの定量的な評価を可能にしました。例えば、あるコメントに対して 5 回のラベリングを実行し、"Insult" ラベルが 3 回出現した場合、そのコメントの誹謗中傷度を 60 % と評価できます。この手法により、不適切さにグラデーションのあるグレーなコメントも適切に評価できるようになりました。
[1] Xuezhi Wang, Jason Wei, Dale Schuurmans, Quoc V Le, Ed H. Chi, Sharan Narang, Aakanksha
Chowdhery, and Denny Zhou, “Self-consistency improves chain of thought reasoning in language
models,“ In The Eleventh International Conference on Learning Representations, 2023a, URL https://openreview.net/forum?id=1PL1NIMMrw.https://arxiv.org/pdf/2203.11171
[2] Dhruva Bansal, Nihit Desai, “Improving data quality with confidence,” URL https://www.refuel.ai/blog-posts/labeling-with-confidence
Self-Consistency を用いた掲示板監視システム
1. ラベルの用意と重み付け
社内の監視業務のガイドラインに即した不適切さを表すラベルを用意し、ラベルごとに重みを定義しました。ビジネスインパクトの大きいラベルの重みを大きく設定することで、非表示にされる確率を高くしています。
Label | 重み |
safe_comment | 0 |
spam | 0.8 |
insult | 0.8 |
defamation | 0.9 |
personal_information | 0.9 |
crime_incitement | 1 |
copyright_infringement | 0.9 |
meaningless | 0.6 |
ラベル例
2. Claude 3 Haiku の Temperature を 0 以上にした上でラベル付けを複数回実行
Temperature の値と実行回数の最適な値はタスクによって異なります。また実行回数が多いほど出力されるラベルのばらつきの計測を精緻にできますが、実行回数が多くなるに従いコストがかかります。
本件では実験的にコストと精度のバランスの良かった値を採用し、Temperature は 0.5、ラベル付けタスクの実行回数は 5 回と設定しました。また、モデルは Claude 3 Haiku を採用しました。
出力例
1回目: ["personal_information", "crime_incitement"]
2回目: ["personal_information", "safe_comment"]
3回目: ["personal_information", "insult"]
4回目: ["personal_information", "crime_incitement"]
5回目: ["personal_information", "crime_incitement"]
3. 不適切さのスコアの算出
タグの重みと LLM から出力されたラベルの出現回数をかけ合わせた数値の合計を、出力されたタグの総数で割ることでスコアを算出します。2. の例でスコアを算出するとこのようになります。
Label | 出現回数 | 重み |
personal_information | 5 | 0.9 |
crime_incitement | 3 | 1 |
insult | 1 | 0.8 |
safe_comment | 1 | 0 |
不適切度スコア
Score = ((0.9 * 5) + (1.0 * 3) + (0.8 * 1) + + (0 * 1)) / (5 + 4 + 1) = 0.83
4. 閾値を設けてコメントの表示・非表示を判定
3. で算出した不適切度スコアに閾値を設けて White (適切)、Gray (適切・不適切の判断が難しい)、 Black (不適切) に分類します。分類後、White は表示、Gray は人手で判断、Black は自動で非表示にする対応方針としました。例えば、不適切度スコアが 0.7 以上は Black と設定した場合、3. の例は不適切度スコアが 0.83 なので Black に分類され、コメントは自動で非表示になります。
システムアーキテクチャ
投稿監視システムはコメント投稿後に非同期で不適切さの判定を行います。非同期化によりコメント投稿自体に不適切さ判定の処理時間が発生しないので、ユーザーの体験を損なわずにシステムの導入ができました。
① ユーザーが掲示板のコメントを投稿
② Amazon Elastic Container Service (Amazon ECS) 上のサービスが Amazon Relational Database Service (Amazon RDS) にコメントを保存
③ Sidekiq に投稿内容をキューイング
④ Sidekiq から非同期にコメントのラベリング処理を AWS Lambda にリクエスト
⑤ AWS Lambda 内で Self-Consistency を用いたラベリングを実行し、コメントの不適切度スコアを算出することで White、Gray、Black に分類
⓺ AWS Lambda が Sidekiq にラベリング結果をキューイング
⑦ Amazon ECS が ラベリング結果に応じてAmazon RDS 内のデータを更新、 Black に分類されたコメントは非表示になりユーザーからは閲覧できなくなる
導入効果
投稿監視システムにより以下の 3 つの効果を確認しました。結果としてサービスブランド毀損、ユーザー間のトラブルのリスクを大きく減らすことに貢献しています。
- ユーザー間のトラブルに発展しそうなコメントを防げており、リスクマネジメント推進に大きく寄与しました。
- 下記図から投稿監視システムによる自動非表示件数 (黄色) が手動非表示件数 (赤色, 青色) を大幅に上回っていることが確認できます。自動非表示件数は手動非表示件数の約 5 倍であり、今まで見過ごされていた不適切なコメントにも対応できるようになりました。
- 不適切な投稿の即時非表示化が可能になったことにより、ユーザーからの報告が減少し監視業務の 3 割削減に貢献しました。心理的負荷の高い監視業務を減らしたことにより担当者から良いフィードバックを得ています。
「荒らしコメントの書き込み主に IP を変えられる」「通報されない」という対処の難しいパターン全てに人力で対応し続けるのは非現実的でしたが、本機能の導入によりこれらのコメントが削除されユーザー間のコミュニケーションを阻害する書き込みが目に見えて減りました。
また、「記事に関する議論が行われる場」として成立させるには少し語気の強い書き込みであっても議論が活性化するようなコメントは残しておきたかったのですが、この点もプロンプトチューニングによって良いバランスで運用できていると感じています。
まとめ
本記事では Claude 3 Haiku を用いた不適切な投稿を監視するシステムの構築方法と効果について紹介しました。本システムを導入する以前は、ユーザーの投稿量の多さから全てのコメントを監視することが叶わず、ユーザー間でのトラブルを未然に防ぐことが難しい状態でした。これを解決するために監視システムの開発を行い、実用的な投稿監視システムを導入することで一定の成果を上げることができました。
本件は、AWS さんの手厚いサポートをいただけたことでここまで取り組むことができました。この場をお借りして改めてお礼を申し上げます。
今後の展望として更なるプロンプトのチューニングや、掲示板監視システムのモニタリング環境の構築をし、よりユーザーにとって快適なコミュニケーションの場を提供することを目指します。
筆者プロフィール
笠井 一輝
株式会社ゲームエイト
開発部 開発1グループ
2021年に株式会社ゲームエイトに入社。フルサイクルエンジニアとして国内ゲーム攻略メディアのコンテンツ領域全般の開発を担当。
開発技術: Ruby/Rails、Typescript/React
今回学んだ知見を活かして更なるLLM施策を実施していけたらなと思っております。
長友健人
アマゾン ウェブ サービス ジャパン合同会社
ソリューションアーキテクト
AWSのソリューションアーキテクトとして Web 系のお客様を中心にアーキテクチャ設計支援を担当。
べつに自転車が趣味ではないのに、自転車で台湾一周しました。
ちなみに犬の名前はキリちゃんです。
AWS を無料でお試しいただけます