徒然開発記

最小努力で最大効果を夢みてる人たちの備忘録

Sponsored link

人工知能、機械学習関連ニュースbot始めました

どうも、お久しぶりです。人工知能ブログのはずが、色々あって雑多なものになってきていますね。脱線している感を感じつつも、これはこれで良いんだろうなと思ってしまっています。

今日のテーマはタイトルにある通り、人工知能機械学習関連のニュースbotを作った話です。実装の部分に触れるつもりはないので、まぁさらっと想定対象とかデータソースなどを書いて行こうかなと思っています。

とりあえずこちらが作ったbot

目的

人工知能関係の良いニュースbotってあんまり無い印象がありました。加えて、RSSリーダー使って独り占めしてるのもなんかもったいないし、どうせなら公開してしまおうと思って作っています。作ったからには半年で1000フォロワーくらい行くと良いなぁ、、とか夢見てます。

想定対象

想定対象は機械学習を実際に実装して実務で使っている人たちです。お手軽の入門とかはなるべく流れてこないようにしています。というのも機械学習なんて手を動かさないと分からないし、頭で理解することなんて雀の涙程の価値もないからです。手を動かさないでエセプログラマーをやってると、こんな風に煽られちゃうよ。プログラマーよ、手を動かせ。

データソース

qiitaやはてぶがメインですが、それだけだとあまり面白みがないので色々と追加しています。というのも、機械学習関連の分かりやすいコンテンツはSlideShareやOpenDeck系のサービスにあるような印象なので、その辺も追加されています。

以下がその一覧。本当はもうちょっとSlideShare足したいけど、なんか挫折した。

最後に

これを読んでても、量産型プログラマーがおぎゃーと一体生まれるだけです。手を動かそう!!

ReactNative所感

ReactNativeをProduction開発で書き始めたので感じたことをつらつらとまとめます。

ReactNativeを開発していていくらかつらみを感じることがあります。素のReactと比較して、あるいはそれ単体でのつらみ。

1. Inspector

Reactを開発していると必ずと言ってもいいほど入れておきたいのがReactDevToolsです。 GithubのこいつとChrome Extensionを合わせるとChromeの開発者ツール画面で素敵なInspectorを拝むことができます。 Chrome開発者ツールのElementsタブのように、Componentのstate, propsなどにアクセスできます。React開発者の必需品ですね。

f:id:bdgaqh1889:20170120203122p:plain

github.com

chrome.google.com

一方, ReactNativeでアプリ開発をしたいときもWebのReactと同様にComponentの中身を見たいことはあります。 しかし、Emulatorで起動するという都合上ReactNativeのInspectorはなかなか微妙と言わざるを得ません。非常に使いにくい。

f:id:bdgaqh1889:20170120203627p:plain

どうですか、これ。わかりにくいでしょう! 私は開発しながらInspectorを起動することは殆どありません。どなたかInspectorの便利な使い方を教えてください。

2. Libraryの未対応問題

Reactの利点は何と言ってもCommunityの活発さですね。 React開発者が作った便利コンポーネントや便利Libraryを使い放題です。

ところがReactNativeのCommunityはReactほどの活発さは未だないため、かゆいところに手が届きません。 Reduxなど、Reactで人気爆発のLibraryを使える場合ももちろんあります。 しかし、ComponentはまるっとReactNative用にコードを書かないといかないためなかなか完全に対応しているものはいまだ多くはありません。

3. NativeModulesのつらみ

Libraryが未対応だと自前で用意しないといけないことが多々ありますね。 特に、iOSAndroidのネイティブモジュールを実行したいときなどはNativeModulesを書く必要がありますね。 こちらが取っ掛かりはかなり面倒くさい。

JavaScriptプログラマだからReactNativeで開発しているのに結局ObjCもJavaも書かなきゃいけないんです。


しかし、このNativeModulesやサードパーティのモジュールなどをうまく駆使することができれば、ReactNativeはとてもたくさんのことを実現できます。 これからネイティブアプリ開発をお考えのそこのあなた!ReactNativeを是非考慮してみてください!

Takamichi

家づくり始めました。

どうも、12月入ったにもかかわらず、パーカー1枚で外を出歩いています、かんです。古くからの趣味が遂にとても楽しい感じになってきたので、毎日わくわくしています。 インターン先も移動することになり、次はやっとデータ分析してグロースハックする感じのところです。やっとだ。楽しみ。ブログもたくさん書けそう。

留学から帰ってきてから半年ほどたった10月頃。しばらく日本にいる予定だし、昔からやりたかったこと始めようかなーと思って何をするかなんとなーく考えていた。ノリと勢いで大学院にいくことになっちゃったし、時間は腐る程ある。

趣味のプログラミングは続けるとして(ていうかお仕事だし)、それとは別で現実世界で物作りをしたいなーって。 いっそのことでっかく、島作りとかしたかったけど、どうにも俺には地面を新たに作る程の力は無いらしい。惜しいところまではいったんだけど。

じゃぁ島を作るためにはどうすればいいんだろう。無人島にゼロから住み始めるとしたら、まずは家が必要だ。家を建てるのは現実的でないし、建ってる家のリノベーションから始めるか。 お、川口にいい感じの賃貸があるぞ。。。

ということで契約しちゃいました

あ、写真撮り忘れた。。。 和室が3つ、92m2 の超広い物件。しかも!! 壁壊して良い、床剥がして良い!! まさにリノベーション物件!!

こんな感じのイメージの家を目指して、改築して行きます(・∀・)

あとは全部自動化したい!AI執事みたいなのもコーディングしたいし、生きるの楽にして行きたいな〜

データサイエンスによる業務改善が一般的になり始めた今、Facebookの前例からそのチームのあるべき姿を見つめ直してみる

QuoraにまとめられたFacebookのグロースチームに所属するAndy Johns人物が直接回答した有名なWhat are some decisions taken by the “Growth Team” at Facebook that helped Facebook reach 500 million users.というスレッドがある。

Andyの回答は日々の意思決定に焦点をあて、戦術・雇用・戦略・文化作りの4つの軸から、如何にしてたったの4年間でユーザー数を5億人にまで伸ばしたかについて具体例を交えながらまとめていた。

Andyのまとめだけもとても秀逸なのだが今回は、先輩からのリクエストを元にして以下の3つの異なる軸からこのスレッドを切り取ってみたい。自画自賛にはなるが、個人的にはこれらの切り口でもAndyに負けないくらい示唆に富む内容に仕上がったと思ってる(*・ω・)笑 

  1. KPI策定に必要な要素とは
  2. PDCAサイクル高速化のためには
  3. 彼らの行った具体的な施作

本題に入る前に、、

本題に入る前には2010年時点でのFacebookのグロースチームに関する情報とFacebookの現状ユーザー数について少し触れておきたいと思う。

Facebookのグロースチームは当時、国籍のバラバラな30人ほどのメンバーが所属していた。このグロースチームが買収やパートナーシップ、FBページのマルチリンガル化も含めた、最適化の全責任を負っていた。その中には、なども含まれていた。残念ながら現在のグロースチームの情報は探せなかったので、知っている人がいたらどなたかFacebookかコメントにて教えて頂けたらとても嬉しいです。。

2006年に誕生したFacebookは2010年までにユーザー数5億人を達成。そこから2015年末までで、ユーザー数を3倍の15.9億人までに伸ばした。直近の2016年7月までに更に1億人を獲得し、17億人を超えた。これにはLGBTの人の要請を請けてFacebookが実名ポリシーを緩和したことなんかも影響しているのかもしれない。

f:id:kanakkun:20160909111905j:plain

出典:TechCrunch:facebook earnings Q4

それでは本題へ!

グロースチームのKPI 策定方法

実際に何かしらのサービスの最適化を行うとなっても、その第一段階である問題設定からKPI策定までの手順が分からなかったりすることが多い。中にはKPI策定した段階で「買収がベストプラクティスだ」という答えが出ることもあるが、ここではショートカット無しの自力での成長戦略に関するKPI策定手順をまとめてみる。

Facebookユーザー数増加のためのKPI策定の手順について

この場合のKPI策定の第一ステップは、課題をいくつかの小さな問いに分割していくことから始まる。今回はユーザー数増加を大きな課題としているので、KPIは少なくとも未登録・登録したて・利用中・利用停止の4段階のユーザーを対象に設定される必要がある。

対象が明確になれば、以下の4つをKPI策定への細分化された問いとして定義できる。 1. どうやって新規ユーザー獲得率を増やすか 1. 新規ユーザーをできるだけ早くアクティブユーザーにするための方法 1. アプリ使用時間を高めるためのトリガーはを引っ張る方法 1. 流出したユーザーを引き戻すためにどんなことができるのか

これはAndyが実際に作ってくれたカスタマージャーニーと、各段階のユーザーに対する課題に対する図で、なんとなくイメージをつけるのに最適かもしれない。

f:id:kanakkun:20160909103525p:plain

出典:Quora:What are some decisions taken by the "Growth team" at Facebook that helped Facebook reach 500 million users?

大抵の場合は、これらの問題の解を探しているうちに「新規ユーザー獲得にはFacebookの写真をアップロードできる機能を拡張すればいいんだ!」といった具体的な答えが見つかる。その答えが見つかったら、次の2つの手段からどちらが効率良いか考える必要がある。

  • 既存のユーザー接点の価値を高める
  • 新しいユーザー接点を0から作る

例えば写真の例でいくならば、既存の写真アップロード手順の簡易化と、Google Photoからのインポート機能を作成といった、2つのチャネルについて考えることができる。

ユーザーに登録を促すようなサービスを提供しているのであれば、Facebookのグロースチームが実際に見つけた次の例から、ユーザー接点最適化のヒントを得ることができるかもしれない。

  • 招待メールの絶対量を増やす
  • 既存ユーザーによる招待メールの送信を促す
  • 招待メールのCTRを高める
  • 既存ユーザーによる招待メールのCTRを高める
  • ログアウトページのデザイン性
  • 登録フォームの最適化
  • 登録前のアカウント認証メールの改善

ユーザー獲得のためのKPIの策定は積み上げ棒グラフのようなもので、それぞれのチャネルが少しでも改善すれば、全体としては莫大な効果を発揮することになる。チャネルの数を増やせば増やすほど、全体のユーザー数もどんどんと増えて行く。

もちろんただ単にチャネルを増やせば成功する訳ではない。増やしたならば最適化をしなくてはいけないし、そのチャネルの評判が悪ければ逆効果になるかもしれない。

チャネルを増やし、それぞれの質を高めるためには、失敗を恐れずにチャレンジを繰り返し、リスクを取りながらPDCAサイクルを高速で回していくことが必要とされる。もちろんFacebookのグロースチームもPDCAサイクル高速化のための工夫を行っていた。

PDCAサイクル高速化のための取り組み

僕は本田圭佑が好きで、彼に関する記事などは頻繁に目を通している。彼のまっすぐな姿勢というか折れない精神とかは天性のもので自分には無いものだし、何より有言実行だしかっこいい。サッカー選手でありながら自分で経営もしてるあたりもとても好き。そんなビジネスにも手を伸ばしている本田圭佑が、目標達成に関することでこんなことを述べていた。

挫折は過程、最後に成功すれば挫折は過程に変わる。

だから成功するまで諦めないだけ。

成功をいち早く獲得するためにはできるだけたくさんチャレンジすることが必要で、そのためにはリスクテーキングは欠かせない。誰しもリスクを取ることはなるべく避けたいと願うが、企業として成功するためにはリスクを取りチャレンジをたくさんして、PDCAをできるだけ高速で回すことが必要だ。

上記のことを叶えるためにAndyは、Facebookで実践していた3つのポイントを挙げている。それは小手先の短期的な努力で結果の見えることではなく、長期間継続的に続けていく必要のある組織作り的な面が多かったことが印象的だった。

  1. 経営陣とグロースチームの距離感
  2. カルチャー作り
  3. M & A

経営陣とグロースチームの距離感

memeboxのデータサイエンスによる業務改善例で述べたようにデータによるグロースチームは経営陣に近い距離にある必要がある。Andyもグロースチームと経営陣が近い関係にあったことに写真までつけて触れていた。これはグロースチームのリーダーであるChamathザッカーバーグを含めた経営陣が仲良く話している瞬間が切り取られている。

f:id:kanakkun:20160909103049p:plain

出典:Quora:What are some decisions taken by the "Growth team" at Facebook that helped Facebook reach 500 million users?

グロースチームが経営陣と近い距離を必要としている理由には、成長(グロース)の特性が影響している。成長は1部門として認識される実行されるべきことではなく、経営者のような視点から全ての部門に対して、企業ミッションを達成するために実施される必要がある。この写真からも分かるようにFacebookのグロースチームも、経営陣からの手厚いサポートを受け、部門横断的な視点から成長のための最適化を行っていたようだ。

最後にAndyは、企業の成長のために経営者がするべき意思決定で、何よりも大切なものがあることに触れた部分を引用したいと思う。それは壮大な企業ミッションの策定でもなく、グロースチームの会社内でのあるべき姿に触れる象徴的な内容だった。

グロースをエンジニア・オペレーション・企画チームの日々の活動において、最も根本的な要素と位置付ける。経営者がするべき最も大事な意思決定は、企業でのグロースのポジション設定にあるのかもしれない。

カルチャー作り

国際色豊かなグロースチームのオフィス天井には、メンバーの出身国の国旗が掲げられている。

f:id:kanakkun:20160909103509p:plain 出典:Quora:What are some decisions taken by the "Growth team" at Facebook that helped Facebook reach 500 million users?

グロースチームのオフィスの天井には、これらの国旗と並んで2つだけ、どこの国にも属さない旗が掛けられていたという。そこに掲げられていたのはグロースチームのメンバーが胸に刻むべき使命であり、リスクテーキングに恐怖を抱く人を奮い立たせるような内容になっていた。

GO BIG OR GO HOME

UP AND TO THE RIGHT

他にもありとあらゆる場所にメッセージは散りばめられていて、有名なDONE IS BETTER THAN PERFECTなんかは、オフィスの壁に書かれていたメッセージのうちの1つであった。

f:id:kanakkun:20160909103534p:plain

出典:Quora:What are some decisions taken by the "Growth team" at Facebook that helped Facebook reach 500 million users?

このような文化作りや経営陣によるサポートのような組織作りの取り組みが、高速でPDCAサイクルを回すためには役に立つのかもしれないなー、、と思ったりもした。続いて少し違ったPDCAサイクル高速化(というかショートカット?)の例を挙げてみる。

M&A

何かしらの目標があってなおかつ資金が潤沢にあるならば、企業を買収することもPDCAサイクル高速化の1つの手段かもしれない。Andyは実際にFacebookのグロースチームが主導で、企業の買収やパートナー提携が行われたと述べていた。

ここではFacebookが実際に行った、友人レコメンド機能拡張に向けた、企業買収によるサイクル高速化の具体例を挙げる。

Octazenの買収

Facebookのミッションは世界中の人を繋げることだ。そのためにはソーシャルグラフのような人間関係のリストを作成することは必須だった。そしてこのゴールに向かうためにFacebookが選んだのは、自前でのソーシャルグラフ作成ではなく、その情報を持っているOctazenというマレーシアのスタートアップを買収だった。

Octazenは、友人情報などを引き出せる権利をユーザーに認めてもらい、その情報を元にユーザーの連絡先リストやソーシャルグラフを抜き出して人間関係の繋がりのリストを作っていた。

Facebookは買収したOctazenの情報を元にして、自社で取り組んだら数年はかかるソーシャルグラフを数ヶ月で完成させた。拡充した友人レコメンド機能によって、継続的なユーザー数の増加を可能にしたのだ。

目的達成のためにPDCAの高速化を図ることは確かに大切なのかもしれない。でもサイクルを回し続けるのは工数もかかるし、精神的にも骨の折れる仕事だ。このような目標が現れた時、買収によるPDCAプロセスのショートカットも1つの手段として有効なのだろう。

具体的な施作

ユーザー5億人獲得のためにはいくつもの最適化を実践し、中には特別な施作もあったようだ。しかしAndyが強調して述べていたことはとてもシンプルなことで、memeboxのデータサイエンスによる業務改善例でも書いた、教科書通りのことを淡々とやり続けることだった。

僕たちが取り組んだ施作で、伝えていかなきゃいけないことは山ほどあるよ。でもね、そのほとんどは特別なものじゃなくて、マーケティングの教科書に載ってる内容なんだ。テストして、本番で試してみて、フィードバックを元に洗練する。これを繰り返していただけさ。

実際にAndyが上げていた具体例を挙げる前に、ここに書かれていることを愚直に実行してもうまくいく訳がないということには注意しておかなきゃいけない。プラットフォームだけでなく、時代によってもユーザーの行動は変化していく。これらを参考に、自社サービスで最も有効なように最適化を図っていくことが大事だと肝に銘じておきたい。

ここではその最適化の例を箇条書きでまとめていく。どのようなプロセスでこれらの具体例が導かれたかも丁寧に説明されているのだが、既に内容的には盛り沢山だし、また別の機会にそのプロセスについてはまとめたいと思う。以下が最適化の具体例だ。

  1. 文章よりもボタンを使おう
  2. ボタンの位置と言葉には気をつけよう
  3. 位置だけじゃなく、サイズ・色・影なども大切!
  4. 速さは正義。速度の遅いサイトはCV率を意識していないも同然
  5. 価値のあるコンテンツを作るために、見出しやサブ見出しを充実させよう
  6. 文字を使いすぎないこと。シンプルで簡潔なサイトを
  7. 色使いはグロースハッカーのたしなみ
  8. 画像はCV率を高める。効率良く使う方法をテストしよう
  9. ユーザーへの感謝を上手に述べれば、CV率もアップ
  10. 正しく使われれば、商品説明の動画はとても効果的だ
  11. ユーザー登録ホームはシンプルに。自動入力が可能な構成にしよう
  12. 所属欲求などの人間の欲求を上手に使おう(ex. 友達N人がサービスを使ってます!)
  13. メールの件名・送信元アドレス・日時のABテストは抜かりなく
  14. htmlメールよりもテキストメールの方がCV率が高かった!
  15. 広告を上手に使おう。更にランディングページを効率化すると3倍もCV率があがることもある
  16. 広告の画像やメッセージを数日間隔でローテーションさせると更に効果が上がる
  17. Facebook広告をクリックするための手段もシンプルに
  18. AdwordsのCTRを上げるには動的にキーワードを入れられるようにしよう
  19. SNSシェアボタンの位置もABテストを
  20. SEOメタデータの最適化も忘れずに
  21. 2万件以下のAdwordsキャンペーンしかもたないなら、1キーワード対して1つの広告グループを作成しよう。これによって狙いのキーワードに対して重複なく広告を打てるし、Adwords広告のCTRを上げるにはこれが一番手っ取り早かった

ソース

What awesome top strategies for conversion optimization What are some decisions taken by the Growth team at Facebook that helped Facebook reach 500 million users

for文を使わずに、15文字だけでpandasのDataFrameを上下反転させる

目標

こんな感じで日付が新しい順で入っているデータを日付順で上下反転させて取り扱いたくて、ぐぐった。日本語ソースで簡単に出てこなかったのでもちろん英語で調べざるを得なかった。。。ソースはこちら

変更前

2016-06-13  16910  16910  16620  16630   213980    16630
2016-06-10  17280  17280  17090  17180    67270    17180
2016-06-09  17340  17390  17190  17270    59900    17270
2016-06-08  17320  17440  17180  17440    56410    17440
2016-06-07  17250  17310  17140  17260    50000    17260
...           ...    ...    ...    ...      ...      ...
2001-08-24  11200  11250  11090  11180   227960    11180
2001-08-23  11430  11430  11100  11180   228950    11180
2001-08-22  11190  11490  11170  11380   184270    11380
2001-08-21  11320  11370  11150  11280   135740    11280
2001-08-20  11300  11350  11200  11270   170890    11270

変更後の目標

2001-08-20  11300  11350  11200  11270   170890    11270
2001-08-21  11320  11370  11150  11280   135740    11280
2001-08-22  11190  11490  11170  11380   184270    11380
2001-08-23  11430  11430  11100  11180   228950    11180
2001-08-24  11200  11250  11090  11180   227960    11180
...           ...    ...    ...    ...      ...      ...
2016-06-15  16390  16590  16330  16520    92530    16520
2016-06-16  16460  16500  15970  16010   157200    16010
2016-06-17  16240  16350  16160  16180   140830    16180
2016-06-20  16460  16630  16450  16540    84920    16540
2016-06-21  16450  16800  16350  16760   136000    16760

反転させるためのコード

data.iloc[::-1]

で終わり、笑 実際に叩いてみたら上下入れ替わってびっくりした 相変わらず iloclocとかその辺の仕組みがよく分からない、笑

pythonでのデータサイエンスのお供、pandasでの要素指定の仕方

背景

たまにはちゃんとコードを書く系の内容も。pandasでdataframeの指定をするところでいろいろと混乱してしまって無駄に時間がかかった。整理するがてらにまとめたいと思う。pandasビギナーがまとめたものなので、間違ってたりもっといいまとめがあるならばアドバイスくれればと思います。

それぞれのversionは以下のとおり。

pandas (0.18.1)
numpy (1.11.0)
Python 2.7.10

3つの要素指定の方法

pandasのDataFrameでの要素の指定の仕方は3つ。

  • df[ a ]
  • df.loc[ a, b ]
  • df.iloc[a, b]

前提とするDataFrameは10minites to pandasを参考に以下のコードで作成した。

dates = pd.date_range('20130101', periods=6) df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))

できたDataFrameはこんな感じ。

                   A         B         C         D
2013-01-01 -0.682002  1.977886  0.348623  0.405755
2013-01-02  0.085698  2.067378 -0.356269  1.349520
2013-01-03  0.058207 -0.539280  0.023205  1.154293
2013-01-04 -0.319075  1.174168 -1.282305  0.359333
2013-01-05 -2.557677  0.922672  0.202042  0.171645
2013-01-06  1.039422  0.300340  0.701594 -0.229087

df[ a ]型の指定方法

指定の仕方で行方向だったり、列方向だったりに処理ができるっぽい。

#単独のカラム(列)を指定
df[‘A’]  # カラム名 = A を指定
df.A     # 同上

#行方向のスライス:df[ 0:3 ]
df[0:3]                    # 0行目から3行目まで指定
df[‘20130102’:’20130104’]  # インデックスが2013-01-02~2013-01-04 までを指定

インデックス・カラムのラベル名で指定する -> locメソッド

指定する引数(って呼んでいいのかな?)の1つ目がインデックスに対する操作、2つ目がカラムに対する操作。

# 該当するインデックスの取得
# A    0.469112
# B  -0.282863
# C   -1.509059
# D  -1.135632
# Name: 2013-01-01 00:00:00, dtype: float64
df.loc[dates[0]]

# インデックス・カラムを同時に指定する。
#                    A        B
# 2013-01-01  0.469112 -0.282863
# 2013-01-02  1.212112 -0.173215
# 2013-01-03 -0.861849 -2.104569
# 2013-01-04  0.721555 -0.706771
# 2013-01-05 -0.424972  0.567020
# 2013-01-06 -0.673690  0.113648
df.loc[:, [‘A’, ‘B’]]

# インデックスをインデックス名で取得する
#                    A        B
# 2013-01-02  1.212112 -0.173215
# 2013-01-03 -0.861849 -2.104569
# 2013-01-04  0.721555 -0.706771
df.loc[‘20130102’:’20130104’, [‘A’, ‘B’]]  # カラムを複数指定する時は、リストで渡す

# 一個だけ指定する場合は、loc よりも at を使ったほうが早い
#0.46911229990718628
df.at[dates[0],'A']

インデックス・カラムの位置番号で指定する

行列に置き換えた時の要素の位置で指定する方法。これももちろん、複数選択できる。

# インデックスの位置で指定(今回は3行目)
# A    0.721555
# B  -0.706771
# C  -1.039575
# D    0.271860
# Name: 2013-01-04 00:00:00, dtype: float64
df.iloc[3]

# インデックス / カラム の同時指定(ここでは3〜4行、0〜1列目)
#                   A        B
#2013-01-04  0.721555 -0.706771
#2013-01-05 -0.424972  0.567020
df.iloc[3:5,0:2]

# とびとびの特定の要素を指定
#                    A        C
# 2013-01-02  1.212112  0.119209
# 2013-01-03 -0.861849 -0.494929
# 2013-01-05 -0.424972  0.276232

df.iloc[[1,2,4],[0,2]]

慣れるしかない!

話題の韓国系コスメスタートアップmemeboxに見る、データサイエンスでの業務改善を教科書通り丁寧に行うことの凄さ

仲良しの先輩から突然こんなニュースが送られてきた。データで流行をつかみ世界最速成長!Yコンビネーター出身の韓国コスメ「Memebox」、美容スタートアップ最大の累計約100億円を資金調達

シリーズCまででのこの調達額は、美容系スタートアップの中では最大規模だし、サンフランシスコを拠点にする、韓国コスメのECサイトってこれだけで目を引く感じなので、調べてみることにした。

どんな会社?

データをフルに活用して流行を上手に捕まえた結果、大成長した韓国系コスメを扱うECサイト。会社のスタートは名前の通り箱をユーザーに送っていた。その時のビジネスのプロセスは以下のとおり。

  • 無料の試供品のようなものを企業から集める
  • ユーザーに送ってフィードバックをもらう
  • フィードバックを企業に送る

もともとはECサイトを運営していたわけではなく、アンケート会社のようなビジネスをしていたみたい。2015年にその事業を完全に取りやめECプラットフォームの運営に注力。現在では17万点以上の有名な韓国系コスメを、アジア・アメリカの女性に対して販売している企業とのこと。元々データを使って、市場から意見とかを汲み取るのが上手な会社だったんですね。

中国での売上成長率は毎年12倍、アメリカでの売上は毎年5倍近くで伸びているらしい。ハンパないな。。 韓国コスメは国境関係なく受け入れられるものだと認識して、プロモーションを開始。現在ではアジア兼全体よりも、スペイン語話者からの売り上げの方が多いんだとか。こんなTweetをユーザーにさせちゃうくらい、みんなのハートをわしづかみにしている。

急成長の理由はもちろんデータ解析。SNSを解析して顧客の潜在ニーズをくみ取って、商品作成、バズを起こしてオンラインでの顧客をさらに獲得っていうやり方。

コスメ業界では最速の成長を記録している同社。現在韓国にて3つのコスメブランドを立ち上げ更なる加速のための準備をしているらしい。韓国のGangmanには自社店舗も持っていて、O2O施作にも抜かり無い。更に2つの店舗をこの8月中にオープンさせようとしてる。

データの使い方

Memeboxの代表が、Fortune誌に対して「僕らは、たくさん顧客データが欲しがってくれるものを教えてくれるデータを持ってるからねっ」と語っちゃうくらい、データドリブンなマーケティングをしている会社。

CEOはインタビューでこのように語っている。

私たちは新しいプロジェクトが当たるか外れるかを予想したことはないんです。 立てた仮説まで私たちを確実に導いてくれる証拠を、データを用いて見つけない限り、 新しいプロジェクトは始めないんですよ。

3年後にはこんな考え方がメインストリームになるだろうけど、それを率先してやるのはすごいなぁ。

もうちょっと細かく見ていけそうなので、個別に見ていくことにします。

データ収集と活用法

データ収集は、主に売れ行き商品ユーザーからのフィードバック。分かりにくいので顔用のパックの具体例で。

顔に潤いを与えるためのパックは2013年頃からアジアを中心に注目され始めた商品で、ほんの最近から、世界中で爆発的な大ヒットをし始めた。

Memeboxは多種多様な製品ラインを揃えることはもちろん、その他にユーザーから特に人気の高い特徴を持つ製品を自社でも製造し始めた。ECサイト運営して化粧品販売して、なおかつそれらの競合商品まで作っちゃうなんて、同業他社からはすごく嫌われそう、笑

つまりMemeboxの売れ行き商品データの使い方は、引き続き保湿パックの例を使うとこんな感じ。

  • 自社のECサイトで売れ行きの保湿パックの特徴抽出
  • その特徴を元に、自社で製品を作る
  • 売れる

まずプラットフォームを持ってる会社の圧倒的な強さを感じるデータ戦略。

データで見つけた競争市場の抜け穴

1つのデータ分析の結果にマーケットの穴を見つけたことがある。彼らはデータを分析してあげることで、現在のコスメ市場では中価格帯($13〜$17)の商品がほぼ無いということがわかった。

で、この企業はもちろんここを埋めるような商品を開発して市場に打ち出し大成功。あんだけたくさんの企業が商品を出してるのに、この価格帯だけ空いてるのに誰も気づかないなんて、、人間の先入観による旨味みたいなものはまだまだ市場に転がっていそう。

データを使う上でのマインドセット

リスクを取りたがら無いと言われる日本人はよく、「効果があるか分からないからそんな大変な思いをしてまで、データを使う必要がない」みたいなのを聞く。

彼らによるとデータを使うっての失敗の数を減らすためなんだとか。

「失敗は成功のもと」という言葉もある通り、失敗なくして成功はない。失敗学っていう学問が存在するくらい大切なもの。なんで大切かというと、事業の方向修正をする上で必要だから。ただ、データを使うと予め方向性や選択肢を絞ることができる。つまり、リスクを取る回数が減らせる。すごく良い。

結局何がすごいのか

一見すると当たり前のことしかしていない同社。やってることだけ聞くと派手な印象に残るような凄さはないのかもしれない。ただ、実際の企業環境に照らし合わせてあげるとその凄さが伺えるのかも。

自社のデータをちゃんと収集して、顧客との関係も構築、収集したデータをもとにして製品を開発して、オンラインでのプロモーション。

教科書通りのことをしているんだけど、これをするためにはデータ分析が軸になった組織作りがされていないと出来ないんだと思う。誰もが直観じゃなくデータをもとに分析しようとする組織なんて、構築することは相当難しいのはなんとなく分かるしね。。

彼らは更に研究所まで作っているみたいだし、更に大きな成長をしていくんだろうなぁ、、 今後も注目してみていきたいものですね。

出典

FORTUNE

Data analysis helps Memebox find beauty market niche

Sponsored link