リリース間近の新規事業「クックパッドマート」の立ち上げの話

こんにちは、買物事業部のデザイナー兼エンジニアの長野です。

現在買物事業部では、クックパッドマートという新規サービスの開発を進めています。この夏にいよいよリリースを予定しており、先日 プレスリリース を発表しました。

クックパッドマートは、今年の1月に私を含めて3名の小さなチームでサービスづくりを開始しました(8/13現在:10名)。チーム発足から半年をかけて様々な検証を行い、サービスを形にしてきたので、本記事ではそのプロセスの一部を下記の流れでご紹介したいと思います。

  1. クックパッドマートとは
  2. サービスが解決したい課題
  3. サービスが提供する価値
  4. 価値仮説に至るまでのプロセス

1. クックパッドマートとは

クックパッドマートは、料理が楽しみになるような食材を、スマホアプリから簡単に注文することができる、生鮮食品のECサービスです。

地域の精肉店や鮮魚店、野菜農家、ベーカリーなどの「こだわり食材」をアプリでまとめて注文できます。 「焼きたてパン」や「朝採れ野菜」などの新鮮な食材を、販売店から集荷した当日に受け取ることができ、1品からでも送料は無料。毎回必要な分だけを手軽に購入することができます。

商品の受け取りは、地域の様々な店舗・施設等に設置された「受け取り場所」の中から好きな場所を選び、好きな時間に受け取ることが可能です。そのため、日中忙しくて買い物をする時間がない方でも、新鮮なこだわり食材を手軽に入手することができるサービスです。

ティザーサイトはこちら

2. サービスが解決したい課題

クックパッドマートは、私たちが普段の買い物に抱える下記のような課題を解決しようとしています。

おいしい食材を新鮮な状態で手に入れることの難しさ

世の中の大半の人は普段の食材はスーパーで購入することが多いと思います。何でも揃うスーパーはとても便利ですが、一方で、スーパーの品揃え次第で食生活が決まってしまうのも事実です。 街にはこだわりを持って厳選された食材を扱う専門店もありますが、多くの人がその存在を知らない、もしくは知っていてもそれらの店舗を回る手間や時間をかけられない、というのが実情だと思います。

まとめ買いせざるを得ない環境と仕組み

仕事をしていたり忙しい人ほど、普段から買い物にかけられる時間は少なく、週末に1週間分をまとめ買いする人も多いのではないでしょうか。 また、ECサービスを利用する場合も、配送コストをカバーするための「最低注文金額」が設定されていることがほとんどです。 そのため、たとえ新鮮な状態で購入したとしても、結果的に家庭の冷蔵庫で鮮度を落としてしまうのが現実です。

3. サービスが提供する価値

クックパッドマートは、これらの課題を解決するため、以下の3つの軸で価値を実現しようとしています。

提供する3つの価値
クックパッドマートが提供する3つの価値

品質が良いこと

おいしい食材は食卓を豊かにし、毎日の楽しみを増やすことができるというのは、あまり疑いようがないのではないでしょうか。 クックパッドマートは、こだわりを持っておいしい食材を届けたいと考えている販売店や生産者の方にご協力をいただき、自信を持っておすすめできる食材だけを商品として扱います。 また、おいしいものをおいしいうちに食べることも大切です。出荷当日に配送し、数日で使いきれる量だけを注文できるサービスとすることで、それを実現しようとしています。

調達コストが低いこと

クックパッドマートはアプリで手軽に注文でき、1品でも送料は無料。受け取りは自宅ではなく、近所の配送拠点を選択する形をとります。 使いきれる量の食材を、いつもの帰り道で好きな時間に受け取れることで、食材の調達にかかるコスト(時間や手間)を減らします。

調理コストが低いこと

献立を考えながら買い物をするのは、時間もかかり、毎日のこととなればストレスを感じる人も多いです。クックパッドマートは、実際の調理例を見ながら食材を注文でき、献立決めと買い物が一度に完結する体験を提供します。 また、新鮮な食材はシンプルな調理だけで十分においしいので、良い食材が手に入れば結果的に調理は楽になるとも考えています。

4. 価値仮説に至るまでのプロセス

上記の「サービスが提供する価値」の仮説に至るまでに繰り返してきた様々な検証のプロセスをご紹介します。

スプレッドシートによる買物代行テスト

チーム発足当初に描いていたサービスイメージは、買い物の手間やストレスを減らすことを目的とした、シンプルな買物代行サービスでした。 そこで、普段の買い物を誰かに代行してもらえることにどれだけの価値を感じられるのか、またそれを実現するにはどのような課題があるのかを検証するため、まずは実際にチームメンバーで社員の普段の買い物を代行するテストを実施することから、プロジェクトを始めました。

最初のテストで用意したシステムはごくシンプルです。Googleスプレッドシートで作った発注書と、全ての注文をまとめた買い出しリストの2つで、実装期間は約3日ほど。注文したい人は、発注書のテンプレートをコピーし、欲しい食材の注文数を記入後、チームのメーリングリストに共有する、というものでした。

スプレッドシートの発注書と買い出しリスト
実際に使用したスプレッドシートの発注書と買い出しリスト

目的の価値検証ができる最も簡単な方法を選んだことで、チーム発足後わずか2週間で最初のテストを実施することができました。

結果どうだったか

初日だけで20名以上の社員から注文が入り、レジ袋20袋以上の量の食材をチームメンバー3人で買い出しに行きました。

このようなテストを1回実施してみただけでも、本当に山ほどの課題とサービス改善のヒントが得られました。その一部を以下に紹介します。(実際はこの形式のテストを数回実施しました)

  • 普段買っているスーパーの商品と同等のものを届けても、あまり有り難みを感じてもらえない
  • 1:1の買い物代行はスケールが難しい上に、コストが見合わなそう
  • 複数店舗での買い出しと、それらの店舗を巡る配送を分ける仕組みは良さそう
  • まとめて買い出した後の個別仕分けは恐ろしく大変で効率化が必須
  • 注文時に量感がわからず、持ち帰れないほどの量を頼んでしまう人がいる
  • 鮮魚はその日のオススメをおまかせで選び、食べ方まで提案したところ、とても評判が良かった
  • おいしい!と実感できた人から、自然発生的にレビューが届いた(チームのSlackチャンネルに写真と感想が寄せられた)

買い出しテスト後の仕分けの様子
最初の買い出し後の仕分けの様子(カオスです。。。)

このテストを経て、

  • おいしさに自信を持っておすすめできる商品だけを届ける
  • 1:1の買い物代行ではなく、1:Nのルート配送の仕組みを構築する
  • おいしい食べ方の提案まで含めた、買っただけで終わらない買い物体験を作る

といったサービスのコンセプトが明確になりました。

プロトタイプアプリによるテスト

上記のスプレッドシートによるテストは単発で行ったため、使う社員も少しイベントごとのような意識になってしまうという課題がありました。そこで、

  • 定常的に注文を受け付けられる仕組みの構築
  • 習慣的に使ってもらうための課題の洗い出し

を次の検証のステップとしました。

習慣的に利用してもらうために、スプレッドシートを手動で管理する形式を卒業し、簡単なWebアプリケーションを構築しました。この時も、機能は最低限に絞り、デザインも凝り過ぎずに、最短でテストを開始できる方法を意識して開発を進めました。アプリケーションの実装は約1週間ほど、コンテンツの準備などを含めるとリリースまで2週間ほどの期間でテストを開始しました。

Webアプリケーションの画面
実際のWebアプリケーションの画面

結果どうだったか

このタイミングから、社員はいつでもクックパッドマートで食材を注文できるようになり、毎週火・木の2回、注文された食材をオフィスに配送するテストが今現在も続けられています。

日常的に配送が行われることで、利用する社員も普段の買い物の手段の一つとしてクックパッドマートを使ってくれるようになりました。初回注文からのリピート率は約7割で、ほぼ毎回注文をしてくれるヘビーユーザーも出てきています。日常使いするほど、アンケートで厳しめのご意見をもらえることも多く、サービス改善に必要なフィードバックを常に得られる状況を作ることができました。

また、定常的に配送オペレーションを回すことで、配送の度にオペレーション上の新たな課題が見つかり、日々改善が進められています。社内テストを繰り返すことによって磨き上げが進んだオペレーションの例をいくつかご紹介します。

  • チームメンバー自ら買い出しに出向いていたものが、徐々に社外に委託することができるようになり、一部では配送員が直接店舗から商品を受け取る仕組みもできてきた
  • 商品に貼り付けるラベルに記載する情報の改善により、仕分けミスや受け取り間違いが起こりにくいシステム構築が進んだ
  • 当初ユーザーの不安要素に多く上がった保冷の問題も、配送時に常に温度計測を行い、検証を繰り返すことにより、食材に適した温度を維持しての配送が実現できてきた

チームMTGの様子
オペレーション改善を行うチームの配送振り返りMTGの様子

配送オペレーションのように複雑性の高いものは、トライを繰り返せる環境が常にあることが改善スピードに直結します。常時社員から注文が入る状態を作れていることで、配送の仕組みもどんどんブラッシュアップされ、サービス全体としての品質向上を進めることができています。

社外ユーザーテスト

上記の社内テストを日常的に実施するのと並行して、社外のターゲットユーザー層の方にご協力いただくユーザーテストも繰り返し実施してきました。 目的は、社員としてのバイアスが無い、より一般的なユーザーの率直な反応をみることです。

ユーザーテストは、毎回下記のような形式で実施しています。

  • ターゲットに近いユーザーのリクルーティング
  • 社内テストで運用中のプロトタイプアプリを使ってもらう
  • 参加できるチームメンバー全員、別室でユーザーテストの様子を観察する(参加できなかったメンバーは録画でキャッチアップする)
  • チーム全員で分析・振り返りをする

インタビュー観察部屋の様子
インタビュー観察部屋の様子

インタビュー後の分析の様子
インタビュー後の分析の様子

結果どうだったか

社内テストで使っているシステムと同じものを見せた場合でも、前提知識やバックグラウンドが異なる社外ユーザーからは、やはり社員とは異なる反応がたくさん得られました。その例をいくつかご紹介すると、

  • オフィス配送のイメージが持てない環境にいるユーザーも多い

    • 比較的近距離に住む社員が多いクックパッドに比べ、通勤時間が長く、持ち帰りがより現実的でない
    • 勤務先がオフィスビルとは限らず、小規模な店舗勤務など、配送拠点になるイメージが持てない
    • 会社の雰囲気的に買い物をしている姿を他の人に見られたくないという感覚の人も多い
  • 商品の品質(おいしさ)がアプリ上では判断できない

    • クックパッド社員は背景知識やクチコミにより初回注文のハードルがそこまで高くなかったが、一般ユーザーがサービスの品質を信頼して初めて注文するハードルはその何倍も高そう

このような結果はメンバー全員で受け止め、オフィスを配送先のメインとして考えていた方針を転換したり、おいしさを伝えるための方法をアプリ内に留まらずに広くアイデア出しをして検討したりと、プロジェクト全体の方向性修正に役立てています。

モバイルアプリへの移行

このように様々な検証を経て、徐々に社外リリースの方向性や価値仮説が定まってきたところで、これまでの知見を盛り込んだリリース版iOSアプリの開発を開始しました。

これまでのプロトタイプアプリのコードやデザインは捨てて、システム設計からすべてリニューアルする形式で開発を進めています。テストと改善をスピード感を持って繰り返してきたプロトタイプアプリは、どうしても不要なコードや現在の要件に合わない設計が残っているので、リリース要件が固まったこのタイミングで刷新する判断をしました。

今現在は社内テストも全てリリース版のiOSアプリに移行しており、社外リリースに向けた磨き込みを進めています。

まとめ

このように、ミニマムなテストで価値検証を繰り返すプロセスを愚直に続け、ようやく社外にリリースできる形のサービスとしてまとまってきたのが今です。

サービスの登場人物が多く(注文ユーザー・販売店・配送員・受け取り拠点)、食材というリアルなモノが介在する複雑性の高いサービスなので、実際にテストを回しながら品質を上げていくプロセスの有用性を強く実感しています。 またこのようなプロセスは、インターネット上にとどまらない買い物体験全体をデザインしている感覚が強く、サービス開発者としてとても刺激的で面白いです。

社外リリース後も、まだまだ価値検証と改善のプロセスは続きます。もしあなたの街にクックパッドマートの受け取り場所ができたら、ぜひ利用して、フィードバックをください。(東京都渋谷区・目黒区・世田谷区の一部エリアから順次リリース予定)

また、この記事を通して、クックパッドマートのサービス開発にご興味を持っていただけた方がいらっしゃいましたら、ぜひ一緒にサービスを作りましょう! エンジニア・デザイナーはもちろん、様々な職種で、一緒にサービスを作り上げる仲間を募集しています(募集要項: エンジニアオープンポジション)。ご応募おまちしております。

機械学習を用いてユーザーのご意見分類業務を効率化した話

こんにちは。研究開発部の @vanhuyz です。機械学習・自然言語処理を中心に研究開発しています。 今回は機械学習を活用してユーザーからのご意見を 81 のカテゴリーに自動分類し、ユーザーサポートスタッフによる手動分類の工数を半分にできた話を紹介したいと思います。

背景

クックパッドは現在約 5,500 万人の国内月間ユーザーがあり、日々ユーザーからたくさんのご意見やご要望を頂いています。創業してからユーザーの声を大事に扱う文化があり、どのご意見も一度目を通すようにユーザーサポートスタッフが努力しています。ご意見はスタッフによってさらに分類され、必要に応じてディレクターやエンジニアに振り分けられています。

例えば、こんな感じのご意見が来ています。「このレシピは簡単なので、子供とやってみました。楽しかったです」や「機種変更して、ログイン出来ません」や「もっと具体的な内容でも検索できるようにしてほしいです。例えば、冷蔵庫の余りもので作りたいときに何種類かの食材でも検索できると助かります。」などです。

現在、ご意見に対して 100 以上のカテゴリーが登録されています。例えば、ポジティブ・ネガティブ・検索関連・ログイン関連・つくれぽ・不具合などです。

f:id:vanhuyz:20180808154458p:plain

ユーザーサポートスタッフが社内システムを使い、ご意見を読んでカテゴリーリストから適切なカテゴリーを選んだ上で、システムが Slack の適切なチャネルに転送してくれます。これにより、関係するディレクター・エンジニアはご意見を読むことができ、すぐその場で議論します。 ただし、ご意見の数が多く、カテゴリーも多いため、毎日の分類作業が大変で、ボトルネックとなっていました。そこで、自動分類の仕組みを導入したいと考えました。

ご意見分類におけるチャレンジ

ご意見分類をパッと見ると簡単そうかもしれませんが、実はそうではありません。

  • まず、カテゴリー数が多いです。現在は 100 カテゴリー以上があり、今後もどんどん増えていきます (open set problem)。

  • 次に、1つのご意見が複数カテゴリーに所属することがあります (multi-label problem)。例えば、「つくれぽを投稿するのは楽しいし、もらえるのも嬉しいですね。」というご意見は「ポジティブ」と「つくれぽ」に入っています。

  • また、蓄積されたデータは不均衡 (imbalanced data) です。汎用的なカテゴリー(例えば、ポジティブなご意見・不具合報告)のご意見が非常に多いのに対し、最近リリースしたばかりのサービス(Amazon Echo Skill, storeTV など)のご意見はまだ多くはありません。また、クローズされたサービスも多数存在し、それらに関するカテゴリーはいらなくなります。

取り組みについて

以上の3つのチャレンジに向けて、どのように解決したのかを簡単に説明します。今回は Google の Rules of Machine Learning を参考にしながらプロジェクトを進めました。43 ルールもありますが、その中で以下の 3 つを気にして進めました。

1. Don’t be afraid to launch a product without machine learning.
(機械学習を使わないことを恐れるな!)

辞書ベースの手法を試しました。例えば、「探、調べ、検索、キーワード」という単語が含まれるご意見は「検索関連」と判断されます。この方法だと、かなり高い精度が得られますが、再現率が低いです。そして、100 以上のカテゴリーの一つずつに辞書を作るのがあまり現実的ではないので、他の方法を試すことになりました。

2. Choose machine learning over a complex heuristic.
(複雑なルールになってきたら機械学習を選択!)

multi-label problem 対応で、1つのカテゴリーに相応する1つのバイナリ分類器を作りました。例えば、「ポジティブ」カテゴリーは ポジティブ-or-not 分類器になります。最終的にデータが少なすぎるカテゴリーを除いて合計 81 の分類器を作成しました。将来もしカテゴリーが増えたら、そのカテゴリーに相応する分類器を作れば良いので、open set problem も対処できます。 imbalanced data problem (負例が正例より圧倒的に多い)に関しては、正例はそのままにし、負例は正例と同数になるように無作為に選びました。

f:id:vanhuyz:20180808154522p:plain

3. Keep the first model simple and get the infrastructure right.
(シンプルなモデルを保ち、インフラを適切に保つ)

今回はサポートベクターマシン (SVM) を採用し、scikit-learn で実装しました。F1 Score を 85% 以上になるまでチューニングしました。このぐらいの精度でも十分なので、早い段階でインフラを整備し、本番環境に導入しました。もちろん100% の性能を達成することは難しいため、完全に自動分類で手作業をなくすことではなく、分類業務へサポートという形で導入しています。

以下は導入後の管理画面のイメージで、結果的にご意見サジェストという形で導入しています。

f:id:vanhuyz:20180808154629p:plain

導入前はスタッフが 100 以上のカテゴリーの中から探さないといけないのに対し、導入後は数少ない「もしかしてカテゴリー」の中だけ選択すれば良いので、非常に楽になりました。(「もしかしてカテゴリー」になかった場合は、従来通り、全カテゴリーの中から探すことです。)実際に計測したら工数を半分まで減らすことができたという結果になりました。 また、分類するスタッフに聞いたところ、昔はメンバーによって判断のばらつきがありましたが、今は直感的に分類精度が上がったという話もありました。

また、学習モデルの精度を上げるために、再学習の仕組みを導入しました。選択されていない「もしかしてカテゴリー」は学習の負例となり、Rundeck/Jenkins で毎週定期的に training コンテナを起動し、モデルを再学習しています。新しいモデルができたら、inference コンテナがそのモデルに切り替えるように設定します。仕組みは以下のイメージです。

f:id:vanhuyz:20180808154645p:plain

これによって、状況が変わっても、モデルを劣化なく長期的に使うことができます。これからしばらく運用し、いつか完全に自動分類できるかもしれません。

最後に

今回は機械学習を用いてご意見分類業務を効率化した話を紹介しました。 クックパッドでは機械学習を活用したくさんの問題を解決しています。 このエントリを読んでご興味をお持ちいただけた方は、ぜひとも採用ページからご応募ください。

iOSDC Japan 2018 に2名が登壇&ブースでお待ちしております!

こんにちは!広報部のとくなり餃子大好き( id:tokunarigyozadaisuki )です。

毎日異常気象が続いていますね。猛暑に豪雨…みなさん、体調管理には十分気をつけてくださいね。

さて、iOSと周辺技術を題材としたカンファレンス、iOSDC Japan 2018が今年も8月30日(木)〜9月2日(日)に開催されますね!

クックパッドは、昨年同様プラチナスポンサーをさせていただいておりますので、ブースを出展いたします。また、弊社エンジニア@giginet@slightairが登壇し、@sgr-ksmtが当日スタッフとして関わってくれます。カンファレンスには、他にも多くの社員が参加いたしますので、会場でクックパッド社員をお見かけの際には、お声がけいただけますと嬉しいです。

登壇スケジュール

クックパッドの社員2名は、カンファレンスの3日目と4日目に登壇いたします。 以下、スケジュールと登壇内容のご紹介です。

3日目 9月1日(土)

11:20〜 Track A 三木 康暉(@giginet ):詳解Fastfile

プロジェクトが大規模化していくと、さまざまな業務を自動化したくなってきます。同時にロジックが増え、特定の人しかメンテできなくなったFastfileにお悩みの方も多いでしょう。 このトークでは、実際の活用事例を交えながら、大規模プロジェクトにおける効果的なFastfileの書き方、プロジェクトの雑務自動化についてをお話しします。 そのほか、fastlaneコミッターによる明日から使える実践的なtipsも数多くお伝えします。

コメント

Fastfileについて30分も何を話すんだ、と我ながら不安ですが、なかなか他所で聞けない知見を盛りだくさんにしたいと考えていますので、fastlaneを運用している方だけではなく、業務改善に興味がある方全てに役立つ内容にしたいと思っています!

16:20〜 Track C 茂呂 智大(@slightair):動作確認のための社内アプリ配信サービスを新たに作った話

アプリの開発中にビルドしたアプリをCrashlyticsBetaやDeployGateなどにアップロードし、手元で動作確認できるようにしているチームは多いと思います。 僕たちもそういったサービスを使ってきましたが、様々な課題が出てきたため自分たちの使い方にあったシステムを新しく作りました。 どういった課題がありどういうツールを用意したのか、そしてどうリリースフローが改善されたか話します。

コメント

組織に合わせてどういう仕組みやツールを用意したのか、それによってどう開発環境を改善できたかという話ができればと思っています。がんばります。

4日目 9月2日(日)

16:10〜 Track A 三木康暉(@giginet ):🀄

Swiftの様々な言語機能を使って麻雀を遊んでみましょう! Swiftyな麻雀ライブラリの実装や、和了判定のアルゴリズムなどについてお話しします。

コメント

最終日の最後で、皆様お疲れだと思うので、頭を使わずに聞けるLTになると良いなと思います。僕はすでに準備で疲れています。

ブース

iOSDC Japan 2018 では、ブースの出展をいたします。グッズの配布はもちろんですが、今回は、みなさんに楽しんでいただける特別プログラムを予定しておりますので、乞うご期待……! ぜひ、お立ち寄りくださいね。

おわりに

発表内容へのご質問やクックパッドにご興味をお持ちの方は、お気軽にブースまでお越しください。みなさまにお会いできることを楽しみにしております。