SHOEISHA iD

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

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

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

【デブサミ2016】18-A-6レポート
Yahoo! JAPANを支えるデータテクノロジー ~ 機械学習、クラウド分散システム処理モデル

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

 本セッションでは、Yahoo! JAPANを支える2つの代表的なデータテクノロジーが紹介された。前半はヤフーのサービスの機能改善を行っている機械学習について、ヤフオク!カンパニー ヤフオク!開発本部 サイエンス部の山下勝司氏が説明。常時3900万個の出品があるヤフオクでは、深層学習を利用した画像処理や分散表現を用いて機能改善を実施しているという。その実例を紹介した。後半はクラウド分散システム処理モデルについて、データ&サイエンスソリューション統括本部 データインフラ本部 開発3部の今野賢氏が説明。データ分散モデルの現状と課題、そしてそれらを解決する理想のデザインモデルの実装例を紹介した。

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

ヤフー ヤフオク!カンパニー ヤフオク!開発本部 サイエンス部 山下勝司氏
ヤフー ヤフオク!カンパニー ヤフオク!開発本部 サイエンス部 山下勝司氏
同社 データ&サイエンスソリューション統括本部 データインフラ本部 開発3部 今野賢氏
同社 データ&サイエンスソリューション統括本部 データインフラ本部 開発3部 今野賢氏

カテゴリー違いは人が判断、その順序を機械学習が決定

 最初に登壇したのは、ヤフオク!カンパニー所属で、ヤフオク!の機械学習を担当している山下氏。「やまかつと呼んでほしい」と会場に呼びかけ、セッションはスタートした。ヤフオク!は1999年にサービスが開始された日本最大級のインターネットオークションサイトだ。「出品数は常時3900万個。これは1秒当たりに換算すると273個となる」と山下氏。スマホユーザー数も非常に多く、2015年4月のデータで、PCユーザーが約1117万人、スマートフォンユーザー数は約1671万人。「これは昨年の数字。スマートフォンユーザー数はもっと伸びてきていると思う」と山下氏は説明する。

 ヤフオク!では解決したい課題があるという。それはカテゴリー違いの出品をいかになくすかということ。例えば「MacBook Air」というカテゴリーで検索すると、本来、このカテゴリーではMacBook Airは本体だけが該当するのだが、「別カテゴリーである周辺機器やパーツも登場してきてしまうことがある」と山下氏は語る。「カテゴリー違いはユーザビリティを下げてしまう。だからこそカテゴリー違いを検知することが大切」と山下氏。

 検知の方法の第一は人によるもの。これは高い精度で検知できるが、さばく量やスピードに限界がある。そこで利用するのが機械学習である。機械学習では過去の情報から学習するため、未知のパターンが表れた場合、検知の精度が低くなる。そして基本的に機械学習は100%の精度を達成できないなど、「機械学習は銀の弾丸ではない。向き不向きがあり、ツールとして適切に使う必要がある」と山下氏は説明する。

 そこでヤフオク!では人が判断し、その判断する順序を決定するところに機械学習を用いるというハイブリッド手法でカテゴリー違いの検知を行っている。この手法を採用することで、人、機械学習双方のメリットが享受できるからだ。

 カテゴリー違いの検知モデルとしては、まず商品タイトルの利用が考えられる。しかしながら、自然言語処理だと判断が付きかねるタイトルがあるため限界がある。そこで「単語に加え、画像も利用する」方法を採用。つまり「MacBook Air」であれば、本体が写っている写真だけをOKとするのである。この画像に写っている物体を認識するところに「深層学習を利用している」と山下氏は説明する。

 深層学習にもいろいろな手法があるが、ヤフオク!で採用しているのが、CNN(Convolutional Neural Network)である。「CNNによる物体認識の精度は人を超える」と山下氏はシベリアンハスキーとエスキモードッグの画像を見せてその精度を紹介した。

 物体認識の学習データは、ヤフオク!の過去の出品画像を基にしており、その数、約2万件。「これはまだ少ない」と山下氏は言う。

 実際にノートPCである確率を出力すると、キレイな画像では約8割の確率で判別できたという。「あくまでも人が最終的に判断する順序のための識別。確率が低い順に見ていき判断することになる」と山下氏。今後は「学習データを高精度、大量、継続的に増加させる仕組みの構築、新しいパターンへの対応など精度の向上に努めていきたい」と意気込む。

物体認識を利用し、目視チェックの順序を決める
物体認識を利用し、目視チェックの順序を決める

分散表現を利用し、検索ランキングを実現

 続いて山下氏は分散表現を利用した検索ランキングについて紹介。検索ランキングではCTR(商品詳細画面へ流入する確率)、CVR(その後に入札する確率)などを最大化するモデルをつくっている。検索ランキングでは多くの特徴を利用しているが、その1つが単語で、「特にタイトル中の単語を重視している」と山下氏は語る。

 しかし単語を特徴に利用した場合には、表記ゆれや同義語があった場合に課題となり、一般的には正規化や同義語辞書を作成することで対応する。だが「同義語辞書の整備には人手が必要なので、コストがかかるという問題がある」と山下氏は指摘する。ヤフオク!の商品ドメインが多岐に渡っているため、同義語辞書の単語数も莫大となり、高コストになる。

 そこで計算によって求めるために利用するのが分散表現というわけだ。例えばサッカーとフットボールは同義語となる。これを分散表現にすると近いベクトルで表される。そこで単語の分散表現を使ってクラスタリングし、意味が近い単語群を同一クラスタにするというわけだ。学習コーパスは商品タイトル、約5000万件の商品数(重複を除外)、単語数は約3億8000万、Vocabulary(ユニークな単語)は約40万。モデルはk-means、距離はコサイン類似度を使ってクラスタリングを行い、商品タイトルを置き換えていくということを行っている。

分散表現では意味が近い表現は近いベクトルとなる
分散表現では意味が近い表現は近いベクトルとなる

 分散表現は発展が著しいので、今後はskip-gram以降の分散表現のモデルを利用していく予定だという。「重複タイトルの判断精度、クラスタリング精度を今後も向上させていきたい」こう語り、山下氏のセッションは終了。

次のページ
分散処理モデルの課題解決を歴史から探る

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

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

もっと読む

この記事の著者

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

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング