![ヤフー ヤフオク!カンパニー ヤフオク!開発本部 サイエンス部 山下勝司氏](http://cz-cdn.shoeisha.jp/static/images/article/9309/9309_001.jpg)
![同社 データ&サイエンスソリューション統括本部 データインフラ本部 開発3部 今野賢氏](http://cz-cdn.shoeisha.jp/static/images/article/9309/9309_002.jpg)
- 講演資料(山下氏):ヤフオク!における機械学習 ~深層学習、分散表現~
- 講演資料(今野氏):クラウド分散システム処理モデルの遷移およびその展望
カテゴリー違いは人が判断、その順序を機械学習が決定
最初に登壇したのは、ヤフオク!カンパニー所属で、ヤフオク!の機械学習を担当している山下氏。「やまかつと呼んでほしい」と会場に呼びかけ、セッションはスタートした。ヤフオク!は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割の確率で判別できたという。「あくまでも人が最終的に判断する順序のための識別。確率が低い順に見ていき判断することになる」と山下氏。今後は「学習データを高精度、大量、継続的に増加させる仕組みの構築、新しいパターンへの対応など精度の向上に努めていきたい」と意気込む。
![物体認識を利用し、目視チェックの順序を決める](http://cz-cdn.shoeisha.jp/static/images/article/9309/9309_003_s.gif)
分散表現を利用し、検索ランキングを実現
続いて山下氏は分散表現を利用した検索ランキングについて紹介。検索ランキングではCTR(商品詳細画面へ流入する確率)、CVR(その後に入札する確率)などを最大化するモデルをつくっている。検索ランキングでは多くの特徴を利用しているが、その1つが単語で、「特にタイトル中の単語を重視している」と山下氏は語る。
しかし単語を特徴に利用した場合には、表記ゆれや同義語があった場合に課題となり、一般的には正規化や同義語辞書を作成することで対応する。だが「同義語辞書の整備には人手が必要なので、コストがかかるという問題がある」と山下氏は指摘する。ヤフオク!の商品ドメインが多岐に渡っているため、同義語辞書の単語数も莫大となり、高コストになる。
そこで計算によって求めるために利用するのが分散表現というわけだ。例えばサッカーとフットボールは同義語となる。これを分散表現にすると近いベクトルで表される。そこで単語の分散表現を使ってクラスタリングし、意味が近い単語群を同一クラスタにするというわけだ。学習コーパスは商品タイトル、約5000万件の商品数(重複を除外)、単語数は約3億8000万、Vocabulary(ユニークな単語)は約40万。モデルはk-means、距離はコサイン類似度を使ってクラスタリングを行い、商品タイトルを置き換えていくということを行っている。
![分散表現では意味が近い表現は近いベクトルとなる](http://cz-cdn.shoeisha.jp/static/images/article/9309/9309_004_s.gif)
分散表現は発展が著しいので、今後はskip-gram以降の分散表現のモデルを利用していく予定だという。「重複タイトルの判断精度、クラスタリング精度を今後も向上させていきたい」こう語り、山下氏のセッションは終了。