studio15

HARU というアニメレコメンドサービスを作った

HARU

ここ1~2年くらいでコンテンツのレコメンドに対する興味が高くなっていたので、試しに自分で作ってみた。

コンテンツの一般的なレコメンドは、「これを見ている人はこれも見ています」的な協調フィルタリングや、他にはスポーツものであれば似たようなスポーツものを出したり、もしくはマンガなんかだと絵柄の近さで近い作品を出したりしている。
ただ、協調フィルタリングはトレンドに影響を受けやすそうな気がしていて、例えば今期のアニメを観ている人は他の今期のアニメも観ています、というような感じになりそうで、あまり楽しい結果が出なさそうだ。
ジャンルでの類似も、例えば「お仕事もの」のアニメだったとしたら、アルバイト先でのドタバタの人間模様が面白い作品もあれば、仕事への熱い姿勢を中心に描いたものもあるわけで、それらの作品の魅力のコアが共通しているかというと、そうではないと思う。

ということで HARU は、そのアニメを観たときの感情の近さに注目してレコメンドが出るようにしている。

昔に見て好きだったタイトルから最近の近しいタイトルを見つけたり、逆に最近観たアニメから昔のアニメをディグったりしてほしい。

あと、このブログを書く前に SNS でこっそりサービスの紹介をしたときに「レビューから次に見るアニメを探そうとすると、ネタバレを踏んだり、ネガティブなコメントが目に入ったりするが、HARU はそういうことがなくて良い」と言ってもらえて、なるほどそういう使い方もあるのかと発見があった。

About ページに書いてあることの深堀り

HARU について

分類のしくみ

まず Annict API でアニメの全タイトルをリストアップしている。
そして Annict API は画像を提供していない ので MyAnimeList API から画像を取得する。
さらに、Annict API からタイトル情報(タイトル名や公式 URL や Wikipedia の URL)を OpenAI API gpt-5-mini (web search) に渡して、独自に設定した「ムード」および「トーン」の分類を行ってもらっている。

「ムード」はその作品を 100 人が見たときにどれくらいの人がその感情を抱くかの指標で、「トーン」は作品の客観的な性質のようなものとして分けている。
内部的には例えば「文明・時代」のトーンの場合は 0 が原始的な時代、25 が中世、50 が現代、75 が近未来、100 が未来、といった形で基準値が設定されている。

このあたりの分類軸と基準値のチューニングは今後の課題だが、再集計を走らせるたびに [禁則事項] 円かかるので、あまり手軽には行えない。
しばらくは現状の分類データでドッグフーディングしたり、マッチ度のチューニングをメインにやっていくことになる。
(ムードには「ドキドキする」を追加しようかと思っている、ドキドキする系の恋愛アニメをあまり見ないので重要な感情なのにすっかり見落としてしまっていた。トーンには「テンポのよさ」みたいなのも入れてもいいかもしれない)

ベータ版であること

スタート時点でかなりの赤字を出してしまっているし、データの更新のたびにお金がかかってしまうし、マネタイズのプランもないのでいつまで続けられるかわからない。
単独で認知度を上げるのは難しいタイプのサービスだと思っているので、どこか既存のサービスがこの仕組みを取り入れて(フォークして)運用してくれるのを目指している。

アニメに限らず、マンガや小説にもこういったアプローチのレコメンドが増えてほしいと思って作っているので、HARU が視聴者のみならずエンタメ系のサービスの中の人に新しい刺激を与えられていれば幸いである。