見出し画像

AI技術に連なるものとしての機械学習のECへの応用 - 導入、教師あり学習

(本稿は、2016年に、楽天ブログのアドベントカレンダーに寄稿した、機械学習の初歩的な内容をECの観点で整理した記事を、アップデートしたものです。)


導入

人工知能(AI)とは、今日、曖昧な使われ方をする言葉ですが、初出は1956年 “The Dartmouth Summer Research Project on Artificial Intelligence (人工知能に関するダートマスの夏期研究会)”いわゆる「ダートマス会議」でジョン・マッカーシーが名付けたの最初だと言われています。ダートマス会議では、さまざまな公理(推理・判断・結論の基礎となる根本の仮定)を組み合わせて、高名な数学の書籍『数学原論(プリンキピア・マテマティカ)』に掲載された定理(公理や定義によって証明される一定の理論)を解くプログラム「Logical Theorem Machine(論理的定理マシン)」が紹介されました。数学の証明を行う、というのは人間ならではの知的活動です。

AIの定義に関して、概念的なことやその議論の変遷は色々と難しいのですが、広く通じるような捉え方としては、AIとは「人間の脳が行う知的作業をコンピューターで実現することを目指したソフトウェアやシステムのことであり、具体的には、環境や物体の認識、人の使う自然言語の理解や論理的な推論、経験からの学習を行うプログラム」のことを指すといえます。AI を実現するための基盤となる技術というのは多岐に渡ります。ほぼコンピューターサイエンスの歴史そのものといってもいいので、自然言語処理、パターン認識、画像処理、音声認識、機械翻訳、ロボティクス、あげればいくらでもあるわけですが、近年のビッグデータの潮流の中、人や企業の多くの活動がデジタル化され、取得可能なデータが増え、活用機会が拡大したことに伴い、それを有効活用するための各種AI技術も注目されています。

AI技術は医療から交通、電力供給まで生活のあらゆる面に関わる形で本当に幅広く使われています。対して、EC(E-Commerce)ではあまり使われていないのではないかというような意見も時々伺うときがあるのですが、実際はECでも様々な利用が見られます。

例えば、2018年に日本マーケティング協会主催教育研修プログラムで、アプリケーションレベルにおいてのAI活用事例を幅広く紹介させていただきました。以下記事に概要があります。

そもそもECでは、人手を介してセールスマンが直に顧客に接してその要望を把握しより付加価値の高いサービスを提供していくということが難しいです。逆説的に、そういうミドル・マンを排除することにビジネス上の意義があるわけです。人手を介していないので、顧客への提供価値を高めていくためには、データ活用の知識・技術を用い、顧客の要望を理解してあるいは推測して商品やサービスを提案するレコメンドや、顧客に応じた情報やサービスの提供を実現するパーソナライズ機能を備えていくことは必須事項と言えます。

それだけでなく、商品検索の精度向上のため、自然言語処理による商品データも用いた詳細な解析や、商品の評判情報を分析する評判解析、レビュー・アナリシス、センチメント・アナリシス等が行われます。また、昨今のマルチメディアデータの普及に伴い、画像認識技術を用いた商品画像・動画の検索機能や、音楽認識機能を用いた音楽・映像コンテンツの検索・レコメンド機能、音声認識技術を用いた対話型のUI機能、更には顔認識技術を用いたペイメント等、多様な活用が広がっています。

10年以上進行してきたビッグデータというトレンドにより、保有データは大量かつ多様となり、人力で取り扱うことが難しい種類や量になってしまいました。このようなデータ増を背景に、AI技術の中でも特に、前述したレコメンド、自然言語処理、画像処理など各適用領域のどれにも横断的に存在する機械学習の重要性が極めて増しています。

例えばレコメンドでは、顧客の購買情報だけではなく、顧客の属性情報や商品の閲覧履歴などを組み合わせることで、推薦された商品のCVRを高めることができます。これを推し進めて効果を最大限まで高めるために、ドメイン知識に基づきながら組み合わせる情報をできるだけ増やしていきたいと考えるのですが、組み合わせるデータの種類が増えていくと、データ間の効果的な組み合わせを行うモデルを人が定め、パラメーターをフィッティングさせていくことは困難になっていきます。実際のビジネスにおいては常に使える時間も予算も限られていますので、その容赦ない制約によって人が業務内で考えることが可能なデータの組み合わせ数の限界に容易に到達します。ゆえに、機械学習手法を効果的に用いて扱えるデータ量と種類を増やしていきつつも、ドメイン知識を用いたフィッテイングとあえてブラックボックス化して精度を高めていくテクニックの駆使というコンビネーションを追求していくことは今日のビジネスにおける現場業務の肝となっていくわけです。


教師あり学習

ECへの機械学習の適用は、ものすごく幅広いわけですが、初学者がその手法としてまず知る必要があるのは、「教師あり学習」と「教師なし学習」という代表的な分類です。教師あり学習とは、事前に与えられたサンプルとなるデータをいわば「教師からの例題(教師情報)」とみなして、それを参考にデータの識別や法則性の導出を行う手法になります。

例えば、(いきなり最初から「それ機械学習じゃないだろ」論争を呼びそうなところから始めますが)回帰分析は教師あり学習の最たる典型手法であり、統計手法として広く知られているため、ECではトレンドの予測、例えば、商品の売れ行きの予測等で使われるケースがあります。楽天ではビッグデータを扱う部署が8年ぐらい前からありまして、そこで商品販売量を予測するシステムを構築しており、季節性・イベントを加味した非線形回帰モデルによる予測を行っています。このシステムは、販売量を被説明変数に、日時、月末、連休、販促活動(セールやキャンペーン等)、天気、温度などの情報を説明変数として学習させることで関係性・法則性を導き、各商品の売上を推定します。説明変数に天気が入っているところがポイントなのですが、一般的に大雨が降ったり、大雪が降ったりするとECの売上はあがります。そこは面白いところです。マイナーな商品の販売量も高精度で予測ができます。人力での予測ですともちろん精度は荒くなりますし、楽天では2億5千万点をこえるアイテムを扱っていてロングテールのテールにあたる量が極めて大きく全てをカバーできることはないわけなので、このようなプラットフォームが必要になります。人手ではないため誤発注による大幅なロスを抑えることもでき、リスクをコントロール可能なレベルにもっていくこともできます。

予測の話に偏ってしまいましたが、他にも教師あり学習では、判別分析である、サポートベクターマシーン(SVM)というバイナリー分類のパターン認識モデルが超有名で、一般的にデータや文書の分類などに広く使われます。ECでも、商品やユーザーの分類に使うこともありますね。また、セキュリティで使われることもあり、例えば、数多あるユーザーアクセスの中から、不正なアクセスを検知するために、過去の不正事例から、IPアドレス、ロケーション、アクセスパターン、検索語のパターン等を素性(機械学習の入力)としてモデルに学習させて判別器を作成する等もあります。SVMを前述の回帰分析に用いたサポートベクターリグレッション(SVR)というのもあります。

判別分析では、集合学習という単純な判別器(弱学習器)を組み合わせて精度を高めていく方法もよく使われます。例えば、各種Boostingの手法(AdaBoost、XGBoost)やRandomForest等です。例えば、楽天では、過去に商品画像の中で特にきれいな画像を選り分けるためにAdaboostを使って抽出したり、またXGBoostを、商品データの分類・整理の精度向上目的で大規模に適用していたりします。

集合学習に関しては、以前、解説記事を書いていますのでこちらもご参照ください。

ところで、上記記事でも触れていますが、RandomForest はあまりドメイン知識がなくても高い精度を出すことができるので結構面白い利用例があります。ドメイン知識が不要でも成果を生むという話は本稿でもこの後も出るのですが、真剣に考える必要があるテーマです。

教師あり学習では、サンプルとなる教師情報に対する学習の結果、過剰にサンプルデータや検証用データに適応してしまい、テストデータ、実データや未知のデータを用いた判別や予測の精度が下がる、いわゆる「過学習(Over Fitting)」なる問題があります。理想的には、サンプルデータにもフィットし(=biasが少ない)、実データにもフィットする(=varianceも少ない)、ですが、これはトレードオフの関係にあります。これは本当に根深い問題で、実際にアプローチによってはどうしてもサンプルデータが少なくなるケースや、モデルに組み込んでいないモデルの外の環境の要因を過小評価してしまっていて、外部環境変化に対応できないケース等があって避けがたい。例えば金融商品の値段を予測していくモデルを作ってもサンプルとなるデータが、物体認識での画像データ等とくらべて圧倒的に少ないですし、例えば災害や政治動向などの影響を実際は大きく受けるので、どうしてもバックテストは完璧なのに実際の予測では思うようにいかないみたいなことがあります。そのため、教師あり学習の適用時には、モデルの自由度や複雑さ、また学習結果を交差検証を通して点検しつつ、過学習をできるかぎり防いでいく心構えが必要です。交差検証に関しては、以下に記事を書いています。

今回は以上です。本稿は次回に続きます。次回は、教師なし学習についてです。



この記事が気に入ったらサポートをしてみませんか?