SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2018 夏】セッションレポート(AD)

共通のスキルセットを持つことがエンジニアとデータサイエンティスト協業の鍵――ヤフーのビッグデータ活用【デブサミ2018 夏】

【B-3】 加速するビッグデータ社会〜Yahoo! JAPANにおけるデータ利活用の事例とエンジニアの歩み〜

  • このエントリーをはてなブックマークに追加

 近年、ビッグデータの利活用がさまざまな企業で進んでいるが、何より重要なのはデータを分析・解析するだけでなく、実際のプロダクトや事業に活用することだ。一般にビッグデータの利活用というとデータサイエンティストなどアナリストが注目されがちだが、エンジニアもまた重要な鍵を握るのは間違いない。そこで本セッションでは、ヤフー株式会社 プラットフォーム統括本部 メディア開発本部 田地 将也氏が、ヤフーのデータ利活用の事例を紹介しながら、バックエンドエンジニアとして開発に携わってきた立場から、エンジニアのデータとの付き合い方について提言を行った。

  • このエントリーをはてなブックマークに追加

ヤフー株式会社 プラットフォーム統括本部 メディア開発本部 アジャイルひよこクラブ 田地将也氏
ヤフー株式会社 プラットフォーム統括本部 メディア開発本部 田地将也氏

エンジニアのデータとの付き合い方とは?

 ビッグデータは、これまで事業の中のほんの一部に活用されてきた。しかし近年では、事業全体にデータドリブンな考え方が浸透し、エンジニアにも「データとの付き合い方」が求められるようになってきたという。

 セッションに登壇したヤフー株式会社の田地将也氏は、「Yahoo! JAPAN」アプリ(Y!の赤いマークがついているもの)のPUSH開発チームのリーダーとして、チームをまとめつつ、自らもコードを書くエンジニアである。活動としてはYahoo! JAPANトップページのバックエンドやユーザーの未来行動を提案するアプリ「Yahoo! Sonomy」の開発に携わってきた。

 入社直後の2012年頃は、Yahoo! JAPANのPCトップページの開発に関わっており、試験的に「主なサービス」の一覧にレコメンド機能を適用したのが田地氏のデータサイエンスとの出会いだという。当時はすべてにレコメンド機能を提供していたわけではなく、ABテストのようなやり方で提供されるようになっており、サイエンスチームが専用のレコメンドエンジン&APIを提供していた。

 トップページからAPIを叩くと、APIからはサービス名とスコアの一覧が返される。そのリストをソートして、上位3つまでにレコメンドを適用するといったものだった。当時の開発について田地氏は「サービス側としては特にレコメンドの中身を意識することなくAPIを叩くだけで利用できた。その分、レコメンドの中身がどんなことをやっているのかまったく理解していなかった」と振り返る。

用意されたレコメンドエンジン&APIで開発。中身を意識していなかった
用意されたレコメンドエンジン&APIで開発。中身を意識していなかった

 その後、トップページにもっとデータの利活用を求める機運が社内に生まれ、さまざまな取り組みが実施された。その中でも、「Yahoo! JAPANトップページのスマートデバイス版」「Yahoo! Sonomy」の2つの事例について紹介された。

「Yahoo! JAPANトップページのスマートデバイス版」「Yahoo! Sonomy」のデータ活用事例

 まず2013~2014年頃に開発された「Yahoo! JAPANトップページのスマートデバイス版」では、パーソナライズの力を使って、グリッド表示やタイムライン表示の最適化を目指したという。当時は人もおらずすべて自分で「気合で作る」状況で、SNSのバズり具合と時間減衰を考慮したフルスクラッチの関数で実現していた。

 「当時は無理に対数関数などを組み合わせてなんとか作っていたが、サイエンスの専門知識が無い中での開発であったためつらかった。パーソナライズについても『パラメータとして時間減衰のようなものが必要』といった、勘所は少しわかったように思う。一方で、気合ドリブンのロジックで作り続けるのは難しく、バグもあり、プロダクトオーナーの要望に十分に応えられなかったのが残念」と田地氏は語り、「改めて専門家の力を借りたいと感じた」という。

 そして次に担当したのがアプリ「Yahoo! Sonomy」のバックエンド開発だ。位置情報に興味関心をかけ合わせたパーソナライズに取り組んだという。まずトップページのサイエンスチームが開発するパーソナライズエンジンに手を入れて「Sonomy用のAPI」を開発。パーソナライズの仕組みの根幹となる機械学習モデルの生成は、トップページのサイエンスチームが基本形を作っていたが、トップページのニュースレコメンド用だったため、一部Sonomy用にプラグインを開発した。そして、記事のカテゴリ分類などは一部フルスクラッチで自前のモデルを開発している。なお、これらの開発は2014~2015年頃。田地氏はこの時に初めて機械学習に触れ、その後の基礎になったという。

Sonomyにおける機械学習の開発
Sonomyでは専用のAPIを開発した

 そして、同時期に「Yahoo! JAPAN」アプリのタイムラインにレコメンドエンジンを採用した。こちらはユーザーの興味関心を使ったパーソナライズが目的であり、当初は検索ワードや閲覧したページのワードベクトルを利用し、回帰で学習させてスコアリングしていく形をとった。

 この時に田地氏は機械学習の初歩を理解し、実際に開発する経験を踏めたことがありがたいと語る。さらにデータサイエンティストが何を言っているのか、どんなことを気にするのかなどが、だんだんわかってきたという。

 「機械学習で効果を出すのにすごく時間がかかる。大量のログデータを学習器に入れて学習させると『モデル』ができてくる。大きなチューニングをせずとも70~80%の分類性能を出すことはできたが、その後チューニングをして分類性能を上げていくことが本当に難しいと実感した。何が邪魔をしているのかを考えながらデータのクレンジングを行ったり、学習に必要なデータとしてどのようなものが必要なのかを推測したり、そうしたことが必要であるとバックエンドエンジニアなりにわかってきた」

 さらに、2012~2015年の間だけでもデータの利活用は急激な速さで進化し、必要性に対する実感もわいてきたという。そして、実際の共同開発を通じて機械学習や自然言語処理の初歩を体験できたことで、データ利活用の勘所が少しずつわかってくると、今度は自分が学んだことを他の機能にも適用したくなってきたという。

次のページ
PUSH通知にレコメンド、タイミング、現在地をプラス

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【デブサミ2018 夏】セッションレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11015 2018/08/23 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング