Reports

リクルートのデータスペシャリストとして1ヶ月半インターンシップに参加しました!

初めまして、北海道大学工学部で統計学・機械学習やRide Sharingの交通シミュレーションを研究しております、山本優汰と申します。
今回、10/23〜12/8の1ヶ月半リクルートのデータスペシャリストのインターンに参加させていただきましたので、その内容や感想をご紹介いたします。

【リクルートのインターンシップのここがすごい!】

はじめに、私が感じたリクルートのインターンシップのすごいと思ったこと、オススメなポイントについて述べたいと思います。

多くのユーザを抱えるサービスに携われる!

皆さんはリクルートについて、どんなイメージを持っていますか?
大学生なら、やはり人材領域のイメージが強いでしょうか。ご存知の方も多いとは思いますが、リクルートは人々の暮らしに身近なサービスを数多く提供しています。私自身はお恥ずかしながら『SUUMO』ってリクルートのサービスだったのかと、就活を始めてから知りとても驚きました(笑)
中でもリクルートは、昨今データ活用に力を入れており、サービスに機械学習やAIの技術が積極的に取り入れられています。データサイエンス的な観点で見ると、様々なサービス・プロダクトに関連する多くのデータが手に入るわけですからより良いサービスのためにこれを活用しない手はないわけですね。
今回のインターンでは私は『ホットペッパービューティー』の案件に携わりました。『ホットペッパービューティー』は私自身も普段利用しますし、この記事を読まれる多くの方が利用されているのではないでしょうか?
私が実際に『ホットペッパービューティー』の案件に携わる中で感じたのは、施策がうまくいけばビジネス的に相当大きなインパクトをもたらせそうだ!という事です。データサイエンティストが生み出したモデルやデータの分析結果というのはやはり多くの人に利用されてなんぼだと思います。たとえめちゃくちゃ良いモデルを開発できたとしても、例えば会社のごく一部の人間にしか使われないのであればビジネス的インパクトは結果小さいものになってしまいます。それに対し、『ホットペッパービューティー』など、非常に多数のユーザを抱えるサービスにデータサイエンティストの成果が応用されると、その成果に比例してビジネス的インパクトがもたらされるのでデータサイエンティストとしてやりがいを感じますし、モチベーションも保ちやすいなと感じました。

美味しいご飯が食べられる!

まじめなお話はさておき、美味しいご飯屋さんに連れて行っていただきました!!
私自身は北海道に住んでいて遠方なので、頻繁に東京のオフィスに出社することはできなかったのですが、出社した際には東京で美味しいものが食べられてよかったです(笑)
本当に美味しかったです、ありがとうございます!

よもやま

リクルートには「よもやま」という独自の文化があり、それは、職階や職域にとらわれず、特に議題も決めずに自由にお話や相談をしましょうというものです。インターン生も週に1回程度人事メンターの方とよもやまの機会が設けられており、インターンの困りごとはもちろんのこと、就活の話や趣味の話も相談できます。人事メンターの方には本当に真摯に話を聞いていただけますし、些細な困りごとも遠慮なく相談できると思います。特に相談することがなければ、話したいことを話すだけでリクルートの社風、文化を自然に知っていけると思います!

夕会

インターン期間中、勤務した日は毎日現場メンターの方と夕会と呼ばれるミーティングで進捗の共有や困りごとの相談などができます。技術的な質問はここですればたくさん教えていただけると思います!

【取り組んだこと】

ここからは実際に私が本インターンで取り組んだことについて述べたいと思います。
皆さんは『ホットペッパービューティー』で予約をされる際、クーポンを選ぶことがありますよね?そのクーポン選びの際に、求めているクーポンが下の方にあって大変…なんてこともあるのではないでしょうか?そのクーポンの並びがユーザによってパーソナライズされれば…こんなに嬉しいことはないと思います。その要望を叶えることを目的としたのが、今回のクーポンの並び順の最適化の案件でした。
ヘア領域のクーポン並び替えモデルはすでにABテスト(オンラインテスト)で成功しておりましたが、ネイル/まつげ/リラク/エステ領域の現状の並び替えモデルはABテストで良い結果が得られておりませんでした。そこで、私はネイル/まつげ/リラク/エステ領域のクーポンの並び替えモデルの改善を担当しました。

インターンの前半では、ネイル/まつげ/リラク/エステ領域のドメイン知識の習得やツールの習得、現モデルの理解につとめました。特にデータ分析・集計においてはBigQueryを用いました。BigQueryは大規模なデータを高速に分析できるのですが、私自身はSQLを授業でしか使用したことがなかったので始めは慣れませんでした。また、コーディングルールがあったのでその書き方に馴染むように徐々に習得していき、最終的にはかなりSQLの読み書きができるようになりました。
本案件で私が注目したのは、「順位バイアス」です。
今回扱ったデータの正例は「予約されたかどうか」なのですが、この予約されたクーポンとユーザの真の好みのクーポンというのは必ずしも一致しません。これは、クーポンを探す際には上から順にスクロールしていきますが、この時クーポンを全て見ずに離脱するケースもあり、クーポンの順位による順位バイアスが存在するからです。

(参考:Recruit Data Blog: 「双方向の表示順バイアスを考慮したランキング指標」翁啓翔、西村直樹)
(参考:齋藤優太さんによるUnbiased Learning to Rankまわりに関する大変わかりやすいスライド

このような順位(position)バイアスやUnbiased learning to rankの分野について私はほとんど知らず初心者だったのですが、自分なりに調べたり現場メンターの方にアドバイスもいただきながら、順位バイアスを考慮した評価指標であるIPSrecall@kを実装しました。

IPSRecall@kは上のような式で表され、Qはユーザの予約の集合とします。k番目までに予約クーポンを予測できたら1、それ以外は0となる値をデータセットにおけるクーポンの並び順(店舗入稿順)での正例の観測確率で割っています。詳しいお話はいろいろな記事等にあると思いますが、このIPSrecall@kの評価指標はユーザの好みを評価する理想的な評価指標に対して不偏となることが知られています。このP_observeに関しては、ABテスト期間のユーザのクーポン閲覧ログから推定しました。

次に、モデルの学習の段階でも順位バイアスを考慮することによってモデルのIPSrecall評価を改善できるのではないかと考え、モデルの改善を行いました。まずは、ユーザごとに「普段どのくらい上位のクーポンを予約しているか」の特徴量を導入しました。これによって、普段からかなり上位のクーポンを予約するユーザには上位のクーポンを推薦するといったようなことが期待できます。

その次にIPWな損失関数を導入しました。

こちらは通常のクロスエントロピー損失(分子部分)をP_observeで割っています。
この損失関数では、より下の方のクーポンの予約の損失を大きくしてよく学習するようにという意味合いを込めています。これはなぜかというと、より下の順位のクーポン予約というのは、ユーザがより下の方のクーポンまで見て予約していると仮定できます。この場合、ユーザがより多くのクーポンのうちから選んで予約していると考えられるのでユーザの好みのクーポンを予約した可能性が高いと言えます。よって上の方のクーポン予約よりは下の方のクーポン予約の方がモデルにはより学習してほしいと言えるので、上の損失関数を採用しました。

以上の特徴量と損失関数の改善の二つの取り組みによって、モデルのIPSrecallが改善しました!
ここまでが私がインターン期間中にメインに取り組んだことですが、実際はいろいろなことを考えたり試したりしていました。その中ではうまくいかなかったことの方が多かったのですが、社員さんや現場メンターの方にアドバイスとしていただいたのは、失敗も十分に価値があるという事です。それは、失敗して「それはなぜか?」という考察まで与えれば大きな知見として今後に活かせるからです。なので、今後データサイエンスのインターンシップに取り組まれる際に、「精度が上がらない・・・」「成果になってるかな・・・」と不安に感じられる方もいらっしゃると思いますが、どんどんいろいろなことを試してみたり実験してみたりするのが大事だと思います。もし、それが失敗に終わったとしても、それに対する考察は成功するのと同じくらいのインパクトをもたらせる可能性があると思います!

【感想】

今回リクルートでインターンをして、この一ヶ月半は本当に充実したものでしたし成長できたと実感できました。このようなインターン期間を過ごせたのは、現場メンターの方々、人事メンターさん、現場の社員の皆さん、人事の社員さん、その他多くの社員さんのご協力があってのものだったと思います、本当にありがとうございます!今回はデータサイエンスの中でも、統計的・数理的な取り組みができたのかなと思うのですが、リクルートでは皆さんがやりたいことを聞いてもらえますし、それに取り組めるように可能な限りセッティングしてもらえます。なので、インターンシップでは何かを既に極めている人も、これから極めようとしている人もきっといい経験ができると思います!本当にオススメなので、ぜひ参加してみてください!

Reports