# 概要
- Cppcheck や PHPMD、flake8 といったリンターで有用なコーディング規約の分析
- VR SNS の VRChat でのユーザの分析
- 自社サービスのユーザ行動解析、およびレコメンドシステム試験導入
- 委託サービス内のボットやチートの検出
# 具体的な内容
プログラミングによって作り出されるコードは、各人が自由に書くことができますが、本当に自由に書いてしまうと、可読性や保守性で問題ができてしまいます。そこで、各プログラミング言語には、良い書き方の指針であるコーディング規約とその規約をチェックするリンターというものが存在します。言語によっては、1言語で複数のリンターが存在することもあります。慶応義塾大学、南山大学との共同研究で、GitHub上のソースコードに対して、どのようなコーディング規約が使われているか、あるいは使われていないかを調査し、各リンターの各コーディング規約が有用であるかを調査しました。この成果は、2022年末の電子情報通信学会の論文誌、2023年初頭の日本ソフトウェア学会の論文誌に掲載予定です。
また、活況な VR SNS である VRChat において、ユーザがどのような行動をとっているかについて興味があり、データの収集と分析を行っています。割合にすると、3.6% しかいない日本ユーザですが、そのサービス内の日本ユーザの創作物(サービス内ではワールド)は1割を超えていることが分かりました。また、創作物がどのような人気の変遷を遂げるかも知りたく、簡易なシステムを作りデータの分析と表示を今も継続して行っています。
ゲーム会社に勤務時、そのサービス内では、様々なコンテンツ、アイテムを扱っているものの、ユーザの分析は深くは行われていませんでした。そこで、これまでのノウハウを用いて業務のサービス内のユーザの解析を行いました。例えば、ユーザのアクセス時間・頻度から、ペルソナの分析を行いました。よくアクセスする時間、曜日を調べることで、どのような時間帯に余裕があるのかが分かり、その結果、例えば、学生、会社員、専業主婦などの分類を行うことができました。さらには、社内サービスのアイテムの購買履歴から、ユーザの嗜好のグループ分類を行いました。ユーザはランダムにアイテムを買うのではなく、嗜好に基づいてアイテムを購買しており、そのアイテムで分類することで、ユーザのグループ分類を行いました。さらには、そこから、ユーザの嗜好に合いかつまだ未購買のアイテムのレコメンドするシステムの試験導入なども行うことが出来ました。
業務委託では、そのサービス内に蔓延るボット、チートの検出を行いました。
まず、サービス内のほとんどのユーザは健常なことから、健常なユーザの行動パターンを学習させることで、逆にそのパターンから外れたユーザを、ボットやチートとすることで精度よく検出することができました。このサービスではデータ量が100T弱と非常に多く、BigQueryとDGXを駆使することで処理を行いました。
このように、会社は変わっても、データ分析を様々なサービスに導入し、業務の自動化や改善を行ってきました。また、今後も色々な場面に使用していきたく思います。