見出し画像

AI技術に連なるものとしての機械学習のECへの応用 - 拡張編

(Photo by Freepik)

去年、機械学習のECへの応用と第して2本の記事を書きました。

2本目の記事の最後に、「次回は、『教師あり学習の拡張的な手法』を取り扱います」と予告しておりまして、今回はそれに関する記事となります。


半教師あり学習

半熟みたいな響きがあります。半教師あり学習です。

前回に引き続いて、代表的なECとして楽天の例を出します。楽天では多様な店舗の各商品の解説文やデータから、マスターとなる汎用プロダクトカタログを構築するというテーマも文書分類の問題として捉え、各種自然言語処理手法の適用を進めています。しかし、取り扱っている商品は2億アイテム。食品から飲料品、衣服、電化製品、デジタルコンテンツ、スポーツ用品、自動車、家とか甲冑(!)とか仏壇とか船とかヘリコプターとかに至るまで多彩でして、ここで教師あり学習の適用を考えた場合、商品の全種類に対応した教師情報を与えることは困難です。そもそも甲冑のサンプルデータってなんですかね。過学習しまくりな気がします。そこで教師あり学習だけを用いず、ブートストラップ法的なリサンプリングを繰り返すアプローチを採用したりしています。参考文献がないんですけど、このスライドの31ページに言及があります。

半教師あり学習とは例えば、少数のサンプルデータ(教師情報)を用いてまずは学習を行ない、その後、ある程度の実データを分類して、その結果のうち確度の高いものをサンプルデータと捉え直して再度学習をします。それを繰り返すことで、教師情報を多く与えることが困難でも、教師あり学習で期待できるような効果を得ることができる。半教師あり学習は、楽天のような大量かつ多様な商品データに対しては有効に作用する面があるアプローチであり、なかなか技巧的な手法です。また、半教師あり学習は、Human-in-the-loop の一種と捉えられることもあります。


プロダクトカタログの構築に関しては、以下の記事でも書いています。


構造学習

文書分類問題として捉えるという話を前述しましたが、他にも文書分類問題としてではなく、違う自然言語処理の問題として捉えることで、様々な手法が適用できます。例えばマスターとなるカタログデータ構築のための商品解説文からの属性値抽出を、系列ラベリング問題と捉え、それに有効なテクニックを活用することで、商品データの解析を高度化しています。系列ラベリングというのは、入力としてデータの列を与えて、出力として個々のデータにラベルを付与するというものですが、具体例を挙げると、文章をインプットとして与えて、文章の各単語がそれぞれ何の品詞かを推定し、品詞ラベルを付与したアウトプットを得る、というような問題があります。個々の単語ごとにバラバラに品詞を推定するよりも、文章にあるそれぞれの語の品詞を、文章全体の構成を意識しながら一緒に考えていき、一括出力した方がいいケースがあるわけです。そういうときに使うのが構造学習です。

楽天では構造学習手法の一つである構造化SVMや、条件付き確率場(CRF)を用いています。構造学習は教師ありが基本ですが、教師なし・半教師の手法もあります。更にCRFでは、データを推定して分類するだけでなく、あるラベルに分類されるかどうかの確率値も算出し、より高度な推定を可能にします。それもあってか、CRFは形態素解析や固有表現抽出によく使われますね。実際の楽天での使用例としては、商品解説文やレビュー文から商品の属性やその値、レビューにおける評価観点やその評価(良いのか悪いのか)を抽出するために、LDAにCRFを組み合わせて適用したりしています。


オンライン学習

機械学習の勉強をしていたりすると、時々オンライン学習なる言葉に出会うことがあります。これは決して人がオンラインで(インターネットサービス等で)勉強するという意味ではないところが曲者です。

例えばSVM等の教師あり学習では、与えられた全てのサンプルデータをまずは学習、訓練します。しかし、サンプルデータの量によっては、または、アプリケーションによっては全てのデータについて一度に学習を行うのがあまり適していない時があります。はじめの方で書きましたように全てのビジネスは時間的制約があるわけですし、またコンピューターの処理能力・メモリの容量など、扱えるデータ量の制約というシステム的な問題もあります。そもそも、サンプルデータが常に逐次やってくるみたいなケースもあります。そのようなケースにおいては、データが与えられるごとにパラメーターを最適化し直して学習すると便利で、そのような手法をオンライン学習と呼びます。逐次学習と呼び替えるとおさまりがいい感じです。代表的な手法としては、パーセプトロン、CW、AROW、SCW 等があります。日本語の文献は比較的少ないのですが、集合学習の RandomForest をオンライン学習でできるようにした Streaming RandomForest なる手法もあります。

楽天では、今まで見た例からも自然言語処理における機械学習の重要性を色々鑑みまして、RakutenMAという学習器つきの形態素解析器を開発し、OSSとして公開しました。

形態素解析部分は、文字単位の系列ラベリングモデルを用い、学習の部分はオンライン学習であるSCW( Exact Soft Confidence-Weight Learning )を利用しています。SCWはCW(Confidence-Weight)という、学習データそれぞれの出現頻度による違いを考慮したアルゴリズムを更にノイズに強くしたもので、ソフトマージンの最適化をしている・損失上限の証明がなされている等かなりメリットの多い技術です。Javascript で手軽に動きますのでぜひご活用ください。


以上、機械学習の各ジャンルをECへの応用という観点で記載しました。今後は、AIによる需要予測、のような形で、AIによる具体的なアプリケーションを掘り下げていく記事も執筆していこうと考えています。



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