Mirrativ tech blog

株式会社ミラティブの開発者(サーバサイドエンジニア,iOSエンジニア,Androidエンジニア,機械学習エンジニア,インフラエンジニア, etc...)によるブログです

機械学習で配信中の映像からゲームを推定する機能をリリースしました

おはようございます、機械学習エンジニアのハヤシです。

本稿は前回紹介した 機械学習で配信中の映像からゲームを推定する機能を開発しています🎮 - Mirrativ tech blog の続きとなります。そのため、背景や機能の紹介については最小限に留めさせていただきます。

背景

前回 の記事に開発の背景や想いを書いています。そちらをご覧ください。

機能の紹介

配信中の映像から「今なんのゲームをやっているのか?」を推定する機能です。 機械学習にて画像認識モデルを作り、どのゲームで遊んでいるかを推定するクラス分類機を作りました。

f:id:namagon:20190311182204p:plain
今遊んでいるゲームを推定しています。

A/B テストとその結果

Mirrativでは、新機能をリリースするときには必ずといっていいほどA/Bテストを行います。A/Bテストを行うことで、機能の目的がどれくらい達成されたかを定量的に確認します。その効果を確認した後、本リリースするかどうかを決定します。本機能ももちろんA/Bテストを行いました。

再度この機能の目的を整理します。

  • 【課題】アプリ設定を行わないことで、視聴数やコメント数が伸びづらい。その結果、配信の継続率がアプリ設定者よりも低くなる。
  • 【解決方法】アプリ設定を自動で行うことで、「マイアプリ」や「おすすめ」タブに乗りやすくなる。視聴数やコメント数が伸び、配信継続率が高くなる。

つまり、本機能の対象になるユーザーさん(A群)とそうでないユーザーさん(B群)で、配信継続率を観測することにしました。

まず、配信者さんのユーザー体験と密接に関わっている視聴者数やコメントユーザー数、コメント数から観測しています。

3月11日 のコメントユーザー数以外、すべての指標で伸びています。

f:id:namagon:20190325154745p:plain
各指標の伸び率をプロット

そして、配信継続率の比較結果がこちらです。

本機能でアプリ設定されたことにより、A群の配信継続率がB群の約1.8倍に向上しました。

f:id:namagon:20190324234814p:plain
A群とB群の配信継続率の比較

また、自動設定の内容を定性的に観察するための機構を開発しました。前回作成したプロトタイプを改良したものになります。

f:id:namagon:20190324221042p:plain
自動設定した際に投稿するチャンネル

すると、自動設定対象の Confidence*1の閾値(以下「推定結果の閾値」と表現します)付近で設定ミスが観察されました。

以上の結果から、推定結果の閾値を引きあげた上で本機能をすべての配信者さんに提供をすることにしました。

配信者さんからのフィードバック

ありがたいことに配信者さんから様々なご意見を頂戴しました、その一部を紹介致します。

  • 「ファンタジーライフ オンライン」 の誤検知が多い。

ファンタジーライフ オンラインの自動設定内容を確認したところ、他のタイトルとは異なり設定ミスが目立っていました。そのため、暫定対応としてそのタイトルは自動設定の対象から外しています。

画像分類でこの問題を解く以上アプリ推定の精度が100%になることはありえません。しかし、精度をあげることで可能な限り設定ミスを減らすことはできます。そのため、画像分類モデルのチューニングや再学習などでモデルのパフォーマンスをあげることで設定ミスを減らしていきます。

  • 仲間内だけに見てもらいたいので自動設定するのはやめてほしい。

あえてアプリ設定をしないことでフォロワー以外の視聴者さんを減らしたがっている配信者さんがいました。ですが、この方の希望は「自動設定をやめてほしい」ではなく「仲間内にのみに配信したい」だと思われます。

しかし、 Mirrativ の iOS 版にはフォロワーだけに配信する「限定配信機能」が実装されていません。*2そのため、アプリ設定の仕様はそのままとして iOS 版の「限定配信機能」の開発を検討することにしました。

  • あるゲームからスピンアウトされたタイトルが、派生元のゲームに誤検知されてしまう。

パズル&ドラゴンズ」からスピンアウトした作品の「パズドラレーダー」が「パズル&ドラゴンズ」と誤検知されてしまいました。

現状は教師データのアノテーションを手動で行っていたため、教師データを作れる量に限度がありました。*3

そのため、Mirrativ で配信されている約70%のタイトルにのみ適用しています。*4

パズル&ドラゴンズ」は自動設定対象でしたが「パズドラレーダー」は自動設定対象でした。

f:id:namagon:20190325171146p:plain
左がパズドラの画面で右がパズドラレーダーの画面です*5

この件については、対象タイトル数を拡大していくことにより解決する可能性があると思われます。 ゆえに、まずは対象のタイトルを拡大し、それでも誤検知が起こるようなら別の対策を打つつもりです。

今後の展開

現状のモデルの精度をあげつつ、今後は自動設定対象のタイトルを増やしていきます。 対象タイトルを増やすにあたり、教師データをどうやって作るかが課題となっています。

今後は以下の手法で教師データを作成して対象タイトルを拡大していく予定です。*6

  • 教師データを自動で生成するモジュールを作成する。
  • 一旦手作業で全タイトル分の教師データを集めてモデルを作る。以降は新規タイトルを転移学習させることで手動でも対応できるようにする。

主要なタイトルから拡大していき、最終的には Mirrativ で配信されているすべてゲームを自動設定の対象とします。

そして、将来的には現在遊んでいるアプリを設定する機能を完全に自動化するつもりです。

We are hiring!

Mirrativ では一緒に開発してくれるエンジニアを募集しています!

体験入社や副業も大歓迎です。お気軽にどうぞ!

www.mirrativ.co.jp

*1:推定結果の確からしさ

*2:Android 版では実装済みです。

*3:アノテーションを効率化するためにツールを自作しました

*4:約70%のタイトルの教師データを作るのに、3人がかりで約60時間かかっています

*5:初めてパズドラレーダーの画面を見たとき、普通にパズドラと見間違えてしまいました。ごめんなさい…

*6:現在は教師データの自動作成を検証中です。