機械学習でデートが”成功する店・しない店”判定器を作ってみた機械学習でデートが”成功する店・しない店”判定器を作ってみたranran2018.10.12TweetShare+1HatenaRSSアローサル・テクノロジーの佐藤社長と次はどんな検証をしてみようか!という話から、今年8月、ZOZOの前澤社長が「食のプライベートアシスタント」を募集したよね!という話題になりました。【前澤アシスタント募集】全国の美味しいレストランを一緒に回りましょう。日本の食文化の素晴らしさを一緒に広めましょう。2018食のプライベートアシスタントの仕事は、全国のレストランを食べ歩き、情報を収集し、味がよかった店舗に前澤社長を連れていくこと。この募集を見たときに思い浮かんだのが、最適なお出かけプランを提案してくれるAI「Leap」や過去の履歴をもとにユーザーの好みを学習してお店を提案してくれる機能が搭載されているアメリカ発のローカルビジネス口コミサイト「Yelp」です。このような流れをみると、みんなから支持されているものの情報よりも自分自身や対象となる状況に最適なものの情報が今後はより求められるようになり、AI技術の発展により誰もがその情報を手に入れられる時代がくると考えられます。現状では前澤社長が求めるようなクオリティの食のプライベートアシスタントをAIで実現することは難しいです。個人の好みを把握するには、その個人の飲食店への評価データを蓄積する必要がありますし、さまざまなシチュエーションや気分に対応することを考えるとまだまだ道のりは長そう......。限られたシチュエーションであれば、プライベートアシスタントに近くためのなにかを作ることができるかもしれない。そこで今回、私、らんらんはデートが成功する・しないでお店選びをサポートしてくれる「デートで成功する店・しない店判定器」の作成にチャレンジすることにしました。デートで成功する店・しない店判定器を作る今回は以下の3シチュエーションごとに「デートが成功する店・しない店判定器」を作ります。デート2回目以降のデート告白したいデートこれらのシチュエーションについて女性を対象にアンケートを行って収集した約1500件分のお店(都内23区)情報とデートの結果を学習させ、デートが成功する店・しない店判定器を作成します。作成した判定器については、どのくらいの精度で成功した・しないを判定できるのかを検証します。実際にこれからデートの予定がある男性4名が選んだお店の成功する・しないを判定してみようと思います。今回学習に使用したデータは、食べログの店舗ページの基本情報(例:以下のピンク枠内)にあるお店紹介文(もしくは、関連情報に記載のあるお店PR文)。(食べログより引用)私が個人的にデートで連れて行ってもらいたいお店である。連れて行ってもらったことはない。このお店紹介文に合わせて、そのデートの結果(成功した・しなかった)を学習させました。学習にはナイーブベイズという文書分類によく用いられる機械学習の手法を使いました。ナイーブベイズは単語の出現確率をもとに分類を行います。テキスト中の単語同士の関係は考慮しないため、文脈を読み取る必要がある場合にはあまり適していませんが、単語単位での特徴が出やすい場合は学習データが少ない場合でも比較的良い精度を実現することができると言われています。ナイーブベイズについてもっと詳しく知りたい方は以下の記事が参考になるので、読んでみてください。・機械学習ナイーブベイズ分類器のアルゴリズムを理解したのでメモ。Pythonで書いてみた。・ナイーブベイズ分類器を頑張って丁寧に解説してみる・ナイーブベイズを用いたテキスト分類デートで成功する店・しない店判定器の精度を試す今回アンケートで収集したデータの70%を学習させ、残りの30%で実際に成功したお店なのか・成功しなかったお店なのかをどのくらいの精度で判定することができるのかを検証してみました。3つシチュエーションごとの結果は以下の通りでした。冒頭にも書いた通り、どんなに素敵なお店に連れて行ってもらったとしても相手がとてつもなくイマイチだったら、それ以降デートのお誘いは断るでしょう。逆に、顔も性格もどストライクな相手であれば、ちょっと汚い居酒屋に連れていかれた程度であれば何の問題もないということもあるでしょう。思える結果ではないでしょうか。ちなみに、それぞれのシチュエーション・結果ごとの特徴的だった単語を上位10個ずつを抽出してみました。ここからいろいろなことが読み取れそうですが......例えば、デートが成功しなかったお店情報の特徴語では「飲む」「徒歩」というキーワードが上位にいることから、飲み物やお酒を推しているお店や駅から近いことをアピールしたがるお店はデートが成功しづらいのかもしれません。デートが成功したお店情報の特徴語にはいずれも「ワイン」が上位10個に含まれていることから、ワインが置いてあるお店のほうがデートが成功しやすいのかもしれません。デートで成功する店・しない店判定器を使ってみるアローサル・テクノロジー株式会社のメンバー4人がデートで使おうと思っているお店を作成した「デートが成功する店・しない店判定器」で判定してみようと思います。メンバーそれぞれが選んだお店がコチラ。イリュージョン」この結果を踏まえ、すべて「成功する」と判定されたAさんと残念ながら告白のシチュエーションでしか「成功する」と判定されるお店を選べなかったCさんにどんなことに気をつけてお店を選んだのかを聞いてみました。Aさん(29歳)「イメージした相手は、東京を知っている同世代・もしくは年上の女性。デートではハッチャケ過ぎず、空気を作り過ぎず、でもどこか雰囲気の良いお店を選びました。2回目以降のお店は、初めてのときよりも賑やかで気さくに話せる雰囲気であることを重視しましたね。相手の女性は、自分でもいろんなお店に行っていて、美味しいものもちゃんと食べてきたという想定なので、定番過ぎないという点にも気をつけました。告白するときのお店は、しっかり予約して行くイメージで、しっかり想いが伝えられるようなちゃんとしたレストランにしました。」Cさん(27歳)「想定したデートの相手は22歳の女性。大人っぽいデートの経験があまりないイメージです。デートで選んだお店は、女性が好きなチーズの人気店。誘いやすそうだな......と思って選びました。時間を気にせず、わいわい楽しめるんじゃないかなと。告白するデートのお店は、とにかく景色がよくて、雰囲気が良くて...場所は横浜ってところもおしゃれなんじゃないかな〜と思って選びました。思っていましたが、選んだ理由を聞いてみると「デートが成功する店・しない店判定器」の結果になんとなく納得できる気がします。今回アンケートに協力してくれた女性の平均年齢は32歳。この点からAさんが想定していた女性がより学習データに近く、Cさんが想定した女性は学習データから外れていたことも結果の要因の1つとなったと考えられます。ツイッター上で今回4人にあげてもらった「初めてのデート」で行くお店について以下のようなアンケートを取ってみました。2018このアンケートと「デートが成功する店・しない店判定器」の結果が一致したことにはちょっと驚きました。高い精度とは言えませんが、ある程度有意な結果を導き出すことができる判定器が作れたといってもよいのではないでしょうか。今回作成した「デートが成功する店・しない店判定器」にはまだまだ改善できる点などが多くあります。AIは人間には見つけられないような特徴を発見することができたり、人間には真似できない速度で情報をアップデートをすることができます。そのような利点を活かしたプライベートアシスタントAIが今後どんどん出てくるのではないかと思います。AIが前澤社長のプライベートアシスタントに立候補する日はそう遠くないのかもしれません。あとがきAROCHANでは、読者の皆さまからの、これってAIでできないの?という質問に対して検証をしてみたり、動画にて解説を行うこともしております。運営するアローサル・テクノロジーでは、人工知能(AI)技術を活用したアプリやサービス開発に関するご相談を受け付けております。記事へのコメントやお問合せフォームでご連絡ください。)この記事へのコメントはありません。URL返信をキャンセルする。