ボカロ楽曲の検索サービス(アルファ版)作りました。
NII・IDRで提供されているニコニコデータセットを利用した、ボーカロイド楽曲の検索サービスです。
大学3回生の時に自分で遊ぶ用、兼、卒業研究の受講資格用に作ったアプリを転職時の面接ネタのために公開したくなったので、すごい大雑把にですが、作りなおして公開してみました。
アプリは6月頭くらいからチマチマ書き直していたので今月はそんなにコード書いてなく、 サーバー周りの経験値が足りてないのでそのあたりで疲れました。
サーバー構築・運用は理論を少しかじってたくらいなので、これから痛い目にあって勉強することになりそうです。
機能の詳しいことは当該サイトの情報メニューに書いたのでそちらに任せます。
課題は山ほどありますが、特にコメント特徴量の可視化の部分と、いろいろ機能をオミットしているところが大きな課題ですね…
課題1: コメント特徴量の可視化
自分だけで使ってた頃は、検索結果のコメント特徴量のみをつかってIsoMapで可視化してました。 不特定多数のユーザーが利用するとなると、検索結果ごとに計算できるような贅沢な計算機も、それを借りるお金もないので、 事前に動画全体で埋め込み位置を計算するか、特徴量をクライアントに送信してクライアントサイドで特徴量埋め込みをする必要があります。
クライアントサイドの計算は、計算機の能力によってはかなりしんどそうなのでボツにしました。 (基本ライブラリ頼みなので、JavaScriptで機械学習アルゴリズムを書き直せるか不安というのもあります。)
で、IsoMapで約70,000動画について計算すると、メモリがウードッカーンしてしまいまして… メモリ消費が少なかったのと、流行りっぽい、そしてpythonラッパーがあるという雑な理由だけで Barnes-Hut t-SNE を使っています。
GitHub - dominiek/python-bhtsne: Python module for Barnes-Hut implementation of t-SNE (Cython)
データをぶっこんだだけで、チューニング等はしてません()
コメントの類似関係がうまく埋め込みできているかさっぱりです。要勉強ですねこれは…
課題2: オミットした機能の復活
マイニングをうたってるわけですし、このあたりは早く作り直したいです。
・検索結果から更にフィルタする機能(特定動画のプロット点色付けとか)
・タグの予測(アイテムベースのレコメンドとか。線形SVMみたいな比較的軽い学習器とか。)
・検索結果に対する簡単な統計出力
・マイリストとの比較
サーバーはVPSの高くないやつを借りたので、お金に余裕がでてきたらいいやつ借りて、簡単なコメント検索・分析機能を付け加えたいです。 あとはスマホ対応ですかな。デザインとかCSSとかも疎いもので…
いい勉強になるし、自分で自分のほしいものができるのは楽しいので、これからもこれほしいなと思った機能をパk…追加したいです。
ただ、しばらくは転職先探しになりそうです。南無三。
いままで一人で遊んでた理由ですが……
すでに上位互換なもっとやばいサービスがあるからです。
作る前には先行研究・開発のリサーチが大切ですね()