社長室の米田です。
メンバー紹介の第5弾は、機械学習を担うData Strategyチームのメンバーにインタビューしました!
昨今注目度の高い機械学習ですが、BASEでの取り組みについて知っていただけると嬉しいです。
【Profile】
齋藤 勇介(さいとう ゆうすけ)
Product Dev Division 機械学習エンジニア
1988年生まれ。群馬県出身。大学卒業後、製造業系EC企業に新卒入社。その後、製造業界向けBtoBサービスで起業、SI企業にて社内向け機械学習サービス導入プロジェクトに携わる。2018年1月にBASE株式会社に入社。現在は、機械学習を活用した機能開発を進めている。趣味はボルダリング。
楊 偉偉(やん うぇいうぇい)
Product Dev Division 機械学習エンジニア
1988年生まれ。2013年に中国科学院を卒業。その後来日し、ソーシャルゲーム会社で開発に従事。2016年5月にBASE株式会社に入社し、現在は機械学習エンジニアとして開発に従事。趣味は山登り。
氏原 淳志(うじはら あつし)
Product Dev Division 機械学習エンジニア テックリード
1983年生まれ。奈良先端科学技術大学院大学のバイオサイエンス研究科を卒業後、株式会社数理技研に入社。受託開発でバックエンド全般の開発に従事。2015年9月にRetty株式会社に入社し機械学習に本格的に携わる。2018年2月にBASE株式会社へ入社し、現在は機械学習基盤の構築などを担当している。社内部活でビール部の部長を務める。
では、それぞれ現在担当している業務について教えてください!
齋藤:ショッピングアプリ「BASE」のホーム画面下部に表示されている特集の自動作成化を進めています。
例えばECサイトで「ワンピース特集」といった特定のテーマやカテゴリに沿って商品やショップが紹介されていることがあると思いますが、その特集のタイトルと紹介する商品のリストを機械学習で自動で生成させるためのロジック作りやデータ作り、実装を担っています。タイトルは必要であればあとから社内のメンバーが調整できるように、そのための管理画面も作ったりしてます。
これまではアプリユーザー全員に同じ特集を表示していましたが、今後はそれぞれのユーザーにパーソナライズした特集を表示できるよう進めています。
氏原:最近はData Strategyチームのメンバーが使うインフラの整備を行っています。メンバーのみなさんがどうやったら機械学習をしやすくなるかを考えて、その環境づくりに力を入れています。
以前は、画像の類似商品APIというものを作ったことがあって、これはアプリの商品ページに表示される「関連する商品」の精度を向上させるために作ったものです。
この実装によってファッションカテゴリの商品は表示される関連商品の精度が良くなったのですが、食品だと同じようにはうまくいかなくて。食品カテゴリの商品は、商品情報として食品そのものの画像を掲載されている場合もあれば、パッケージが掲載されている場合もあって、画像から関連商品を推定するにはあまり向いていなかったため、今度はテキスト系の類似商品APIを作成して、商品ごとに画像のAPIかテキストのAPIのどちらかを判別して類似商品を表示するようにしました。
楊:オーナーズが使う管理画面にはお知らせを掲載できるのですが、ショップごとに最適な内容を表示できるよう、その学習モデルを作っています。掲載している情報としては、ショップの売上を上げるためのヒントや「BASE」をより活用していただくような内容です。
オーナーズの管理画面の行動履歴やログイン情報、発送までのリードタイムなどの情報を基にそのショップに合った情報を掲載できるように日々改善しています。今後は例えば商品の購入があったらすぐに、といったようにリアルタイムで情報を出せるように進めています。
それでは、BASEに入ったきっかけを教えてください!
齋藤:BASEに入社したきっかけは転職ドラフトで指名を受けたことです。実は指名を受けるまでBASEを知りませんでした。
前職から機械学習の業務に携わっていて、次はECの分野で機械学習に取り組んでみたいなという思いがありました。というのも、ECでは商品の画像やテキストの情報、ユーザーが購入にいたるまでの行動履歴など様々なデータが存在しているイメージがあったのと、例えば購入など明確なゴールを設定しやすいサービスなので、機械学習が貢献できる部分が大いにあると思っていたからです。
またBASEの面接を受ける中で、例えばアプリでのリコメンドや規約に違反した商品を販売しているショップの自動検知など課題が具体的にあって、それに対して自分がどう貢献できるかがイメージがついたこともあり、入社を決めました。
氏原:私も転職ドラフト経由でBASEに入社しました。
前々職は受諾開発をしていた会社でバックエンド開発をしておりまして、研究所が関わるような仕事もありそこで機械学習に少し触れる機会がありました。前職のRettyで本格的に機械学習を始めました。
BASEに入社を決めた理由ですが、引き続き機械学習に携わりたいという気持ちはもちろんあったのですが、私、個人的にクラフトビールすごく好きで、「BASE」はクラフトビールを販売するのに地方の醸造所との相性がいいなと思ったのもありまして…(笑)
しかし選考を受けていた当時、ショッピングアプリ「BASE」でクラフトビールを探したりしてたのですが、なかなか自分が思ったようにビールが表示されませんでした。自分が機械学習を取り入れて、自分もアプリのユーザーさんももっと日本全国の美味しいビールと出会えるようにしたいというモチベーションがあったのも入社を決めた理由の1つですね(笑)
楊:前職はゲームの会社で開発に携わっていました。大学院で機械学習に関する研究を行っていたこともあり、業務で機械学習に携わりたいという思いが強くなり、転職活動を始めました。
私が選考を受けていた当時はBASEにまだ機械学習エンジニアは1人もおらず、これから機械学習を本格的に立ち上げていくということで、1人目の機械学習エンジニアとして入社しました。
これまでのプロジェクトや業務で印象的だったものを教えてください!
齋藤:昨年からBASEではプロジェクト制で開発を進めるようになり、デザイナーやエンジニアと協力して短期間で機能リリースをいくつか経験できたのは良かったです。
実装した機能としては以前テックブログにも書いた検索キーワードを入力した際に関連キーワードを表示させるものや、検索キーワードを入力している途中で関連するキーワードを表示するといった開発に携わりました。
関連キーワードのリスト作成に関しては、実際にアプリ内で過去に検索された履歴を活用してリストを作成し、一定のルールで不適切なものを除外するなどして進めました。最終的には人の目で確認して違和感がないかも確認しました。リストの作成やチェックというと一見地味ですが、ユーザーさんに違和感なく検索を使っていただくためには必須の作業なので、根気強くリストの精度向上から実装までを行いました。
氏原:先ほどもお話しした類似商品APIを作ったことですかね。入社して最初に取り組んだ大きな実装になります。
それまでなかったData Strategyチーム専用のAWSアカウントを作って、そのインフラで初めて提供した機能が類似商品APIでした。インフラの構築から行ったので、ほんとに0から組み上げた機能ということで印象に残っていますね。ここでいまのData Strategyチームで利用している基本的なインフラが出来上がりました。
インフラ構築にあたって、「BASE」では様々なショップから商品が毎日登録されるので、毎日機械学習モデルを更新できるような仕組みを考えたり、Terraformを使うのも初めてだったので貴重な経験になりました。
楊:大変だったこと、になるのですが、ある日レコメンドエンジンの計算が追いつかなくなってしまったことがありました。
急激に行動ログが増えてしまったことが原因なのですが、不測の事態にも対応できるよう計算基盤の調整・計算データの取捨選択を工夫し、今では安定して運用出来ています。
その他にも、計算に使用する行動ログの仕様変更が発生することもあるので、他のチームと連携して開発しています。
今後、Data Strategyチームで取り組んでみたいことを教えてください!
氏原:現在はインフラ寄りの業務を比較的担っているのですが、またアルゴリズムを作るといったことに取り組みたいなと思っています。そのためにもっと使いやすいインフラをまずは整備していきたいですね。現在のData Strategyのインフラはまず動くことを最優先して構築したため、まだまだ手作業が残っています。もっともっと自動化して、アルゴリズム考えたら、ワンクリックでそのアルゴリズムが反映されるような環境を作りたいなと思っています。
楊: いま取り組んでいる管理画面のショップオーナーさんへの情報提供機能を作っていくにあたって、中国のECサービスを色々調べたんです。参考になる情報も得た一方で、管理画面が少し複雑だなと感じることもありました。
それらで得た知識を取り入れながら、「BASE」のコンセプトである「お母さんも使える」を両立できるように、誰にとっても分かりやすく使いやすい機能に落とし込んでいきたいです。
齋藤:これまでは機械学習のモデルを作って、まず機能をリリースすることを目標にしていたので、今後はモデルをアップデートしていったり、新しいアルゴリズムに挑戦してショップと購入者さんが出会う機会をつくっていきたいです。
氏原:私が過去に作ったアルゴリズムで、数か月間更新されていないものもありますね…(苦笑)モデルの更新も自動化できるようにしたいです。
齋藤:明らかにおかしい結果が出ていないかという部分はもちろんチェックしているんですが、より精度を高めていく取り組みをしていきたいですね。
氏原:あとData Strategyチームって社内からも何をやっているのかまだまだ詳しく知られていないんじゃないかなと思うところがあって。
たしかに、畑違いの私からすると、機械学習は「なんだか難しそう」という漠然としたイメージがあります。
氏原:他のチームとData Strategyチームの協業がさらに進むように、いま社内向けに「こういうアルゴリズムを使ったらこういうことができるよ」といったサンプルページを作っています。
具体的にどういうことが機械学習で実現できるかというイメージをもってもらうことで、他のチームのメンバーが「こういうことやってみたいんだけど、Data Strategyチームと協力して実現できないかな?」というアイデアを出しやすくなればいいなと思っています。