ディープラーニングで日本酒をレコメンドするアプリを作った話

以前、壁打ちアプリを作っているという記事を書いて早一ヶ月。「開発、順調です!」と書きたい気持ちはすごいあるのだけれど、ここ最近はタイトルにも書いた通り、ディープラーニングを使って日本酒をレコメンドするというWebアプリを作っていました。

こんなの。
何で秋田の日本酒なのかっていうと、単に自分の出身が秋田なので。ひとまずレコメンドの練習がしたくて、その結果として秋田のために何か貢献できるといいなぁと漠然と考えた結果、秋田の日本酒をレコメンドしてみたらいいんじゃないかという考えに。

技術的な話

今回、一般公開するアプリとしては初めてDjangoで作ってみました。一般公開してない自分用ツールとかで何度か試してみたんですが、個人開発プロダクトとしては初。慣れてくるとけっこう楽しいです。相変わらず作り方合ってるかはわからないんだけれど。
また、今まではずっとフロントエンドはVue.jsで作ってたんですが今回は構成がシンプルだったのでJS自体使ってないです。今後改善するときは使うかもしれないけど。そのときはVue.jsを使うと思います。CSSのフレームワークはBulmaです。これは多分ずっと変わらない。超使いやすい。
構成としては2つのシステムで動いていて、まずユーザーが操作する画面を作っているDjangoの部分。それとは別に、機械学習の結果を返すAPI的なシステムがあります。こっちは従来通りBottle.py。
ユーザーがフォームに入力して送信すると、このAPI的なサーバーと通信して、オススメの日本酒情報が返ってくるのでそれをDjangoで表示する。これだけ。
API的なサーバーを用意したのは、機械学習の処理をここに寄せたかったため。今後も機械学習を使ったプロダクトをいろいろ作りたいと思ってて、今後は全部この形式で作っていったら楽かなぁと漠然と考えてます。ちなみに機械学習部分はKerasを使っています。
そのうち時間が出来たら既存個人開発プロダクトのSeekGeeksSeekUpsもこの形式に作り直したいと考えていたり。

デザインの話

私の過去の個人開発プロダクトは全部デザインがグダグダです。本やサイトでWebデザインを勉強しようと思っても全然続かない。今回はもう、誰かに依頼してでもきちんとデザイン整えたいと思っていたのですが。
このアプリを開発中に、コラボポストさんというクリエイターのマッチングアプリができてまして、そちらの方でデザインメンターという形でデザインを教えてくれる方を募集してみたところ、幸運にもご連絡が頂けまして、コラボポストの開発者の一人でもある咲坂美音さんにお手伝い頂けることに!
しかも、デザインの相談をしたらその日のうちに素敵なデザイン案を頂けるという神対応。
嬉しくてテンションが上がり、週末を使って一気にコーディングを終えてリリースできました。
今回、機能的には「日本酒を選ぶ」「オススメ結果を表示する」しかなく、自分ではチェックボックス並べたりレコメンド結果を太字にしたりフォントを大きくしたりするしか思いつかなかったのですが、頂いたデザイン案では画像をふんだんに使い、フォントも工夫してあって、「あぁ、やっぱり一人で作って出さなくて良かった…」と心の底から思いました。
私のCSSの技術が拙く、頂いたデザイン案の魅力を100%引き出しきれてはいないのですが、今までのプロダクトのデザインを考えると、個人的には満足な出来でした。本当に感謝です。 

機械学習の話

去年の年末辺りから「機械学習面白いんじゃね?」となって勉強すること数カ月。
何気にLSTMで文章生成したり、ナンバーズ3の当選番号予測器を作ったりとやってきましたが、今回初めて一般公開プロダクトとしてディープラーニングを使って個人開発プロダクトをリリースしてみました。そういえばSeekUpsもレコメンドやってますが、こちらはディープラーニングではなく、協調フィルタリングというやつです。
「思い返したら意外といろいろやってんな?」という気持ちです。まだまだいろいろ作るけども。
個人的にはトピックモデルが気になっています。
その他だとこんなのも。

ナンバーズ3の当選予測、ちょいちょいひと桁くらいは当たってるんですが難しいですね。
ミニなら一回当たってたな、というのが一回あったくらいです。
今度それについてもエントリ書いてみようかな。

壁打ちアプリの話

冒頭にも触れたし、固定ツイート(2019/7/12時点)でも書いてるやつです。
これからやっていきます。
こちらも、壁打ちで入力した内容に合わせて広告やサービスをレコメンドするような機械学習要素を取り入れていく予定です。頑張る。

これからの話

壁打ちアプリを作って相談しながら、日本酒レコメンドAIを改善していこうと思っています。
それはそれは頑張ろうと思いますので、良かったら皆様、応援よろしくお願いいたします。
具体的にはツイッターでフォローとか。

やるぞ!


To Be Continued