(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-28
(45)【発行日】2023-08-07
(54)【発明の名称】情報処理装置、情報処理方法および情報処理プログラム
(51)【国際特許分類】
G06F 16/903 20190101AFI20230731BHJP
G06N 20/00 20190101ALI20230731BHJP
G06Q 30/0601 20230101ALI20230731BHJP
【FI】
G06F16/903
G06N20/00 130
G06Q30/0601
(21)【出願番号】P 2020101290
(22)【出願日】2020-06-10
【審査請求日】2021-05-19
【審判番号】
【審判請求日】2022-04-22
【新規性喪失の例外の表示】特許法第30条第2項適用 公開日 令和1年12月4日 外部登壇 https://search-tech.connpass.com/event/156014/ 公開日 令和2年3月18日 投稿情報 https://techblog.yahoo.co.jp/entry/20200318819061/
【早期審査対象出願】
(73)【特許権者】
【識別番号】319013263
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】井関 洋平
(72)【発明者】
【氏名】鈴木 翔吾
【合議体】
【審判長】須田 勝巳
【審判官】林 毅
【審判官】吉田 美彦
(56)【参考文献】
【文献】米国特許出願公開第2018/0189292(US,A1)
【文献】米国特許出願公開第2009/0240680(US,A1)
【文献】国際公開第2019/234810(WO,A1)
【文献】米国特許出願公開第2019/0391982(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F16/903
G06N20/00
G06Q30/0601
(57)【特許請求の範囲】
【請求項1】
検索クエリにマッチする検索結果を取得する取得部と、
取得された前記検索結果に、前記検索結果に対するユーザの行動ログに応じたラベルを付与して学習データを生成する生成部と、
生成された前記学習データ
にフィルタをかけ、前記学習データを選別する選別部と、
選別された前記学習データを用いて機械学習を行う学習部と、
前記機械学習の結果得られた学習モデルを用いて前記検索結果の表示順位を設定する設定部と、
を備え、
前記生成部は、コンバージョンへと至る段階的な行動のそれぞれに基づいて、前記検索結果として取得された文書のうち、
前記ユーザがクリックし、コンバージョンに至った文書であれば第1のラベルを付与し、
前記ユーザがクリックしたが、コンバージョンには至らなかった文書であれば第2のラベルを付与し、
前記ユーザがクリックすらしなかった文書であれば第3のラベルを付与することで、各行動が行われた文書にラベルを付与し、文書ごとの特徴量を分散処理クラスタに蓄積し、前記分散処理クラスタに蓄積された文書ごとの特徴量から、分散処理フレームワークを用いて前記学習データを生成し、
前記選別部は、前記学習データの数を制限するためにトランスフィルタを間に入れて、生成された前記学習データにフィルタをかけ、前記学習データを選別し、
前記学習部は、
選別された前記学習データを用いて、勾配ブースティング決定木を用いたランキング学習により前記学習モデルを構築する際に
、前記学習モデルが大きくなり過ぎないように
前記学習モデルのモデルサイズを所定の大きさに限定
する
ことを特徴とする情報処理装置。
【請求項2】
前記生成部は、前記検索結果として取得された同一の文書に対して、検索クエリごとに異なるラベルを付与する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記生成部は、前記検索結果として取得された文書のうち、優先的に表示すべきものに前記第1のラベルとして最上位のラベルを付与し、表示しても違和感がないものに前記第2のラベルとして次点のラベルを付与し、表示すべきでないものに前記第3のラベルとして最下位のラベルを付与する
ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記生成部は、前記検索結果として取得された文書のうち、コンバージョンに至ったものに前記第1のラベルとして最上位のラベルを付与し、前記ユーザにクリックされたものに前記第2のラベルとして次点のラベルを付与し、前記ユーザにクリックされなかったものに前記第3のラベルとして最下位のラベルを付与する
ことを特徴とする請求項1~3のうちいずれか1つに記載の情報処理装置。
【請求項5】
前記選別部は、取得された前記検索結果にフィルタをかけ、前記検索結果を選別し、
前記設定部は、選別された前記検索結果を前記学習モデルに入力して前記検索結果の表示順位を設定する
ことを特徴とする請求項
1~4のうちいずれか1つに記載の情報処理装置。
【請求項6】
前記選別部は、構築された前記学習モデルへの入力データの数を制限するためにトランスフィルタを間に入れて、取得された前記検索結果にフィルタをかけ、前記検索結果を選別する
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記設定部は、選別された前記検索結果を前記学習モデルに入力し、前記学習モデルから出力された前記検索結果の表示順位を設定する
ことを特徴とする請求項5又は6に記載の情報処理装置。
【請求項8】
前記設定部は、前記検索結果の表示順位の上位の所定順位以内のものを、より高精度な学習モデルに入力して、再度、前記検索結果の表示順位を設定する
ことを特徴とする請求項
5~7のうちいずれか1つに記載の情報処理装置。
【請求項9】
前記生成部は、検索フロントエンドから送信されたユーザの行動ログと、検索エンジンから送信された前記検索結果のランキングログとに基づいて、前記学習データを生成する
ことを特徴とする請求項1~
8のうちいずれか1つに記載の情報処理装置。
【請求項10】
前記検索フロントエンドから送信されたユーザの行動ログと、前記検索エンジンから送信された前記検索結果のランキングログとは分散処理クラスタに蓄積され、
前記生成部は、前記分散処理クラスタに蓄積された前記ユーザの行動ログと前記ランキングログとから、分散処理フレームワークを用いて、前記学習データを生成する
ことを特徴とする請求項9に記載の情報処理装置。
【請求項11】
前記生成部は、購入又はボタンの押下というコンバージョンへと至る段階的な行動のそれぞれに基づいて、前記検索結果として取得された文書のうち、
前記ユーザがクリックし、購入又はボタンの押下というコンバージョンに至った文書であれば前記第1のラベルを付与し、
前記ユーザがクリックしたが、購入又はボタンの押下というコンバージョンには至らなかった文書であれば前記第2のラベルを付与し、
前記ユーザがクリックすらしなかった文書であれば前記第3のラベルを付与することで、各行動が行われた文書にラベルを付与し、文書ごとの特徴量を分散処理クラスタに蓄積し、前記分散処理クラスタに蓄積された文書ごとの特徴量から、分散処理フレームワークを用いて前記学習データを生成し、
前記学習部は、生成された前記学習データを用いて、勾配ブースティング決定木を用いたランキング学習により、前記学習モデルを構築する
ことを特徴とする請求項1~10のうちいずれか1つに記載の情報処理装置。
【請求項12】
前記検索結果には、前記検索結果の情報を表す特徴量が与えられている
ことを特徴とする請求項1~11のうちいずれか1つに記載の情報処理装置。
【請求項13】
情報処理装置が実行する情報処理方法であって、
検索クエリにマッチする検索結果を取得する取得工程と、
取得された前記検索結果に、前記検索結果に対するユーザの行動ログに応じたラベルを付与して学習データを生成する生成工程と、
生成された前記学習データ
にフィルタをかけ、前記学習データを選別する選別工程と、
選別された前記学習データを用いて機械学習を行う学習工程と、
前記機械学習の結果得られた学習モデルを用いて前記検索結果の表示順位を設定する設定工程と、
を含み、
前記生成工程では、コンバージョンへと至る段階的な行動のそれぞれに基づいて、前記検索結果として取得された文書のうち、
前記ユーザがクリックし、コンバージョンに至った文書であれば第1のラベルを付与し、
前記ユーザがクリックしたが、コンバージョンには至らなかった文書であれば第2のラベルを付与し、
前記ユーザがクリックすらしなかった文書であれば第3のラベルを付与することで、各行動が行われた文書にラベルを付与し、文書ごとの特徴量を分散処理クラスタに蓄積し、前記分散処理クラスタに蓄積された文書ごとの特徴量から、分散処理フレームワークを用いて前記学習データを生成し、
前記選別工程では、前記学習データの数を制限するためにトランスフィルタを間に入れて、生成された前記学習データにフィルタをかけ、前記学習データを選別し、
前記学習工程では、
選別された前記学習データを用いて、勾配ブースティング決定木を用いたランキング学習により前記学習モデルを構築する際に
、前記学習モデルが大きくなり過ぎないように
前記学習モデルのモデルサイズを所定の大きさに限定
する
ことを特徴とする情報処理方法。
【請求項14】
検索クエリにマッチする検索結果を取得する取得手順と、
取得された前記検索結果に、前記検索結果に対するユーザの行動ログに応じたラベルを付与して学習データを生成する生成手順と、
生成された前記学習データ
にフィルタをかけ、前記学習データを選別する選別手順と、
選別された前記学習データを用いて機械学習を行う学習手順と、
前記機械学習の結果得られた学習モデルを用いて前記検索結果の表示順位を設定する設定手順と、
をコンピュータに実行させ、
前記生成手順では、コンバージョンへと至る段階的な行動のそれぞれに基づいて、前記検索結果として取得された文書のうち、
前記ユーザがクリックし、コンバージョンに至った文書であれば第1のラベルを付与し、
前記ユーザがクリックしたが、コンバージョンには至らなかった文書であれば第2のラベルを付与し、
前記ユーザがクリックすらしなかった文書であれば第3のラベルを付与することで、各行動が行われた文書にラベルを付与し、文書ごとの特徴量を分散処理クラスタに蓄積し、前記分散処理クラスタに蓄積された文書ごとの特徴量から、分散処理フレームワークを用いて前記学習データを生成し、
前記選別手順では、前記学習データの数を制限するためにトランスフィルタを間に入れて、生成された前記学習データにフィルタをかけ、前記学習データを選別し、
前記学習手順では、
選別された前記学習データを用いて、勾配ブースティング決定木を用いたランキング学習により前記学習モデルを構築する際に
、前記学習モデルが大きくなり過ぎないように
前記学習モデルのモデルサイズを所定の大きさに限定
する
ことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【0002】
電子商取引などの分野において、入力された検索クエリ(キーワード)に基づく検索結果についてランキング対象(例えば商品)のランキング処理を行い、ランキング結果が上位のランキング対象を利用者に提示することが行われている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、「人気順」といった観点からランキング処理が行われていたため、例えば、提示されるランキング対象が利用者の意図とかけ離れているにも関わらず上位になるケースが多く、検索結果が利用者の意図を十分に反映していないものとなる場合があった。
【0005】
本願は、上記に鑑みてなされたものであって、利用者の検索意図を反映した適切な検索結果を提供することを目的とする。
【課題を解決するための手段】
【0006】
本願に係る情報処理装置は、検索クエリにマッチする検索結果を取得する取得部と、取得された前記検索結果に、前記検索結果に対するユーザの行動ログに応じたラベルを付与して学習データを生成する生成部と、生成された前記学習データにフィルタをかけ、前記学習データを選別する選別部と、選別された前記学習データを用いて機械学習を行う学習部と、前記機械学習の結果得られた学習モデルを用いて前記検索結果の表示順位を設定する設定部と、を備え、前記生成部は、コンバージョンへと至る段階的な行動のそれぞれに基づいて、前記検索結果として取得された文書のうち、前記ユーザがクリックし、コンバージョンに至った文書であれば第1のラベルを付与し、前記ユーザがクリックしたが、コンバージョンには至らなかった文書であれば第2のラベルを付与し、前記ユーザがクリックすらしなかった文書であれば第3のラベルを付与することで、各行動が行われた文書にラベルを付与し、文書ごとの特徴量を分散処理クラスタに蓄積し、前記分散処理クラスタに蓄積された文書ごとの特徴量から、分散処理フレームワークを用いて前記学習データを生成し、前記選別部は、前記学習データの数を制限するためにトランスフィルタを間に入れて、生成された前記学習データにフィルタをかけ、前記学習データを選別し、前記学習部は、選別された前記学習データを用いて、勾配ブースティング決定木を用いたランキング学習により前記学習モデルを構築する際に、前記学習モデルが大きくなり過ぎないように前記学習モデルのモデルサイズを所定の大きさに限定することを特徴とする。
【発明の効果】
【0007】
実施形態の一態様によれば、利用者の検索意図を反映した適切な検索結果を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、実施形態に係る情報処理方法の概要を示す説明図である。
【
図2】
図2は、実施形態に係る学習データの作成例を示す図である。
【
図3】
図3は、実施形態に係る機械学習モデルの構築例を示す図である。
【
図4】
図4は、実施形態に係る情報処理システムの構成例を示す図である。
【
図5】
図5は、実施形態に係る情報処理装置の構成例を示す図である。
【
図6】
図6は、ユーザ情報データベースの一例を示す図である。
【
図7】
図7は、ログ情報データベースの一例を示す図である。
【
図8】
図8は、学習モデルデータベースの一例を示す図である。
【
図9】
図9は、機械学習モデルの構築に係る処理手順を示すフローチャートである。
【
図10】
図10は、多段階ランキングに係る処理手順を示すフローチャートである。
【
図11】
図11は、高速なランキングについての説明図である。
【
図12】
図12は、高精度なランキングについての説明図である。
【
図13】
図13は、さらに高精度なランキングについての説明図である。
【
図14】
図14は、さらにさらに高精度なランキングについての説明図である。
【
図15】
図15は、ランキング結果の提供についての説明図である。
【発明を実施するための形態】
【0009】
以下に、本願に係る情報処理装置、情報処理方法、および情報処理プログラムを実施するための形態(以下、「実施形態」と記載する)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、および情報処理プログラムが限定されるものではない。また、以下の実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0010】
〔1.情報処理方法の概要〕
まず、
図1を参照し、実施形態に係る情報処理装置が行う情報処理方法の概要について説明する。
図1は、実施形態に係る情報処理方法の概要を示す説明図である。なお、
図1では、機械学習モデルによる文書の順位付けを行った文書検索結果を表示する場合を例に挙げて説明する。
【0011】
図1に示すように、情報処理システム1は、端末装置10と情報提供装置100とを含む。端末装置10と情報提供装置100とは、それぞれネットワークN(
図4参照)を介して有線又は無線で互いに通信可能に接続される。
【0012】
端末装置10は、ユーザUにより利用されるスマートフォンやタブレット等のスマートデバイスであり、4G(Generation)やLTE(Long Term Evolution)等の無線通信網を介して任意のサーバ装置と通信を行うことができる携帯端末装置である。また、端末装置10は、液晶ディスプレイ等の画面であって、タッチパネルの機能を有する画面を有し、ユーザから指やスタイラス等によりタップ操作、スライド操作、スクロール操作等、コンテンツ等の表示データに対する各種の操作を受付ける。なお、画面のうち、コンテンツが表示されている領域上で行われた操作を、コンテンツに対する操作としてもよい。また、端末装置10は、スマートデバイスのみならず、デスクトップPC(Personal Computer)やノートPC等の情報処理装置であってもよい。ここでは、スマートフォンを例に説明する。
【0013】
情報提供装置100は、ユーザUの端末装置10から受け付けた検索クエリ(キーワード)に基づいて検索を行い、その検索結果を端末装置10に提供する情報処理装置であり、サーバ装置やクラウドシステム等により実現される。ここでは、情報提供装置100は、検索エンジンを介して、ユーザUが探している商品をキーワードで検索できる仕組みを提供する。なお、商品は取引対象の一例に過ぎない。実際には、商品に限らず、サービス等を対象としてもよい。また、商品の代わりに、人物やデータ等をキーワードで検索してもよい。
【0014】
検索エンジンは、まず検索キーワードに合致する商品に関する文書(ウェブページ等)を取得し、次に取得した文書を何らかの基準で順位付けして、検索結果として返却する。文書の順位付けは、そのまま商品の順位付けとなる。文書は、例えばHTML(HyperText Markup Language)文書、XML(Extensible Markup Language)文書、XHTML(Extensible HyperText Markup Language)文書等である。なお、実際には、文書に限らず、検索可能な他の形式のデータ、例えば動画等の画像データや、SNS(Social Networking Service)のメッセージ、あるいはアプリケーションプログラム(アプリ)等であってもよい。
【0015】
ここで、オンラインモールやオークションサイトを含む様々なEC(Electronic Commerce:電子商取引)サイトにおいて、ユーザUによる購入が期待される商品を検索結果の上位に出すために、様々な順位付けの方法が模索されているが、いずれも一長一短である。
【0016】
例えば、検索キーワード「しょうゆ」に対して合致した商品を順位付けする際に、「売り上げ順」に順位付けすると、人気のあるしょうゆ商品が検索結果の上位に出る。しかし、しょうゆ味のラーメン商品やしょうゆ差し商品なども、商品タイトルに「しょうゆ」を含んでいるため、検索キーワード「しょうゆ」に合致する。そのため、検索キーワードとは意図が違う商品が、検索結果上位に出てしまう可能性がある。
【0017】
あるいは、検索キーワード「しょうゆ」に対して合致した商品を順位付けする際に、「キーワードと商品タイトルの関連度順」に順位付けすると、検索結果にはしょうゆ商品が並ぶが、商品の売り上げは考慮していないため、人気のあるしょうゆ商品が検索結果上位に出ない可能性がある。
【0018】
また、「売り上げ順」と「関連度順」をともに考慮して検索結果を調整(チューニング)するとしても、現実には多種多様なキーワードで商品が検索されている。例えば、検索キーワードには、特定の商品やブランド名を指す検索キーワードの他にも、「500円 ポイント消化」や「タレントA 化粧品」といった特定の商品を指さない検索キーワードや、「米 2kg」といった商品カテゴリおよびスペックを指す検索キーワード等が存在する。そのため、検索キーワード1つ1つに対して、人為的に検索結果を調整していくのは非現実的である。
【0019】
このように、現状では、良い順位付けを行うのは困難である。そこで、本実施形態では、「機械学習モデルによる文書の順位付け」を提案する。
【0020】
〔1-1.機械学習モデルによる文書の順位付け〕
例えば、
図1に示すように、検索FE(Front End:フロントエンド)から検索エンジンへ検索リクエストが送信される。なお、検索FEは、検索においてユーザUと直接データのやり取りをするソフトウェアシステムの部分を指す。例えば、検索FEは、Webブラウザ側(クライアント側)を指す。また、検索リクエストには、検索キーワードが含まれている。
【0021】
検索エンジンは、まず検索キーワードに合致する商品に関する文書を取得し、次に取得した文書を何らかの基準で順位付けして、検索結果として返却する。
【0022】
このとき、検索FEおよび検索エンジンから、クリックをはじめとする行動ログおよび文書ごとの特徴量(ランキングログ)がHadoop(登録商標)クラスタ等の分散処理クラスタへ送信される。ここでは、検索FEから行動ログが送信され、検索エンジンから特徴量(ランキングログ)が送信される。文書ごとの特徴量は、商品ごとの特徴量でもある。Hadoop(登録商標)は、大規模データ(ビッグデータ)の取り扱いを目的とした分散処理のプラットフォームである。
【0023】
次に、情報提供装置100は、Hadoop(登録商標)クラスタ等の分散処理クラスタに蓄積されたログから、Hive等のデータウェアハウス及びSpark等の分散処理フレームワークを用いて、学習データを作成する。Hiveは、Hadoop(登録商標)の上に構築されたデータウェアハウス構築環境であり、大規模データの集約や分析を行う。Sparkは、大規模データに対して高速に分散処理を行う高速分散処理フレームワークである。
【0024】
このとき、文書ごとの特徴量を直接Hadoop(登録商標)クラスタ等の分散処理クラスタに蓄積している。そのため、学習データの作成はテーブルの結合だけで完了する。
図2は、実施形態に係る学習データの作成例を示す図である。
図2に示すように、情報提供装置100は、検索FEから送信されたユーザの行動ログと、検索エンジンから送信された検索結果のランキングログとに基づいて、学習データを生成する。
【0025】
また、
図2に示すように、学習データは、クリックをはじめとする行動ログに基づくラベルと、文書ごとの特徴量(ランキングログ)とを含む。
図2では、文書に対してクリックがあった場合のラベルを「1」、文書に対して何も行動がなかった場合のラベルを「0」として例示している。但し、これらは一例に過ぎない。ラベルの詳細については後述する。
【0026】
次に、情報提供装置100は、学習データを作成した後、GBDT(Gradient Boosting Decision Tree:勾配ブースティング決定木)を用いたランキング学習により、機械学習モデルを構築する。GBDTとは「勾配降下法(Gradient)」と「Boosting(アンサンブル)」、「決定木(Decision Tree)」を組み合わせた教師有り機械学習の一つである。例えば、情報提供装置100は、LightGBM等の勾配ブースティング決定木を用いたランキング学習により、機械学習モデルを構築する。LightGBMは、決定木アルゴリズムに基づいた勾配ブースティング(Gradient Boosting)の機械学習フレームワークである。なお、機械学習モデルの構築には、機械学習モデルの新規作成のみならず、既存の機械学習モデルの更新も含まれる。
【0027】
ここで、機械学習モデルは、リアルタイムに商品の順位付けを行うため、あまりにも大きい機械学習モデルは予測時間の問題から検索エンジンに乗せることができない。学習モデルが複雑になると精度が向上する一方で、リアルタイムのレスポンスが悪くなるという事態が生じる。そのため、精度だけでなくモデルのサイズ(LightGBMであれば、決定木の本数や深さなど)にも注意を払って、機械学習モデルを構築する必要がある。例えば、モデルが大きくなり過ぎないように、モデルサイズ(LightGBMであれば、分岐する木の数)を所定の大きさに限定する。また、学習データの数を制限するために、トランスフィルタを間に入れて学習データにフィルタをかけ、学習データを選別する。
【0028】
また、機械学習モデルにおける一部の特徴量は、Hadoop(登録商標)クラスタ等の分散処理クラスタで集計した結果を利用している。そのため、情報提供装置100は、Hadoop(登録商標)クラスタ等の分散処理クラスタで定常的に集計ジョブを走らせ、検索エンジンに集計結果をフィード(供給)する仕組みも構築する。
【0029】
次に、情報提供装置100は、構築された機械学習モデル(学習済モデル)をプラグイン形式に変換して検索エンジン上にデプロイ(deploy:配置・展開)する。検索結果中の文書が示す商品の特徴量は検索エンジンにフィードされており、検索時にリアルタイムで機械学習モデルによる自動的な商品の順位付けが行われる。
【0030】
〔1-2.ランキング学習〕
機械学習の手法の1つに、文書間の順序関係を学習するランキング学習という手法がある。
図3は、実施形態に係る機械学習モデルの構築例を示す図である。
図3に示すように、検索キーワードに対し、各文書に「優」、「良」、「悪」の3段階のラベルが振られているとする。
【0031】
「優」(Excellent)は、検索結果の上位に出て欲しい文書に振られるラベルである。例えば、ユーザUがクリックし、さらに購入等のコンバージョン(conversion:CV)に至った文書であれば、「優」のラベルが振られる。「優」のラベルは、数値「2」であってもよい。
【0032】
「良」(Good)は、検索結果の上位に出ていても違和感はない程度の文書に振られるラベルである。例えば、ユーザUがクリックしたが、コンバージョンには至らなかった文書であれば、「良」のラベルが振られる。「良」のラベルは、数値「1」であってもよい。
【0033】
「悪」(Bad)は、検索結果に出て欲しくない文書に振られるラベルである。例えば、ユーザUがクリックすらしなかった文書であれば、「悪」のラベルが振られる。「悪」のラベルは、数値「0」であってもよい。
【0034】
ラベルの順序関係は、「優」>「良」>「悪」の順である。なお、上記の3段階のラベルは一例に過ぎない。実際には、「必」>「優」>「良」>「可」>「悪」のような5段階のラベルであってもよい。すなわち、ラベルの種類および段階の数は任意である。
【0035】
「必」(Perfect)は、検索結果の最上位に出て欲しい文書に振られるラベルである。例えば、ユーザUが商品購入のために普段使いしているサイト等、クリックした際には必ず(又は高確率で)コンバージョンに至る文書であれば、「必」のラベルが振られる。
【0036】
「可」(Fair)は、検索結果に出ていても許される程度の文書に振られるラベルである。例えば、単にユーザUがクリックしただけの文書であれば、「可」のラベルが振られる。なお、最終的にコンバージョンには至らなかったが、ユーザUがコンバージョンを検討(商品をカートに入れる等)した文書や、ユーザUが長時間(所定時間以上)滞在・視聴した文書であれば、「良」のラベルが振られる。
【0037】
また、同じ行動についても、文書に対してその行動が行われた回数(行動階数)に応じてラベルを分けてもよい。例えば、購入が1回だけなら「優1」、複数回であれば「優2」、定期的に繰り返し購入されている場合は「優3」等のラベルが振られるようにしてもよい。この場合、ラベルの順序関係は、「優3」>「優2」>「優1」の順である。
【0038】
また、情報提供装置100は、同一の文章について、検索クエリごとに異なるラベルを付与する。例えば、「しょうゆさし」の文章について、検索クエリに「しょうゆ」と入れたときに「しょうゆさし」の文章は「良」もしくは「悪」のラベルとなるが、検索クエリに「しょうゆさし」と入れたときに「しょうゆさし」の文章は「優」のラベルとなる。すなわち、同一の「しょうゆさし」の文章について、検索クエリが「しょうゆ」の場合には「良」もしくは「悪」のラベルが付与され、検索クエリが「しょうゆさし」の場合には「優」のラベルが付与される。このように、同一の文章であっても、検索クエリごとに異なるラベルが付与されて学習がなされる。
【0039】
ラベルの付与は、ガイドラインを定めて付与する、ユーザUの行動ログ(文書のクリックログなど)を活用して付与する、などの方法が取られる。
【0040】
また、各文書には、その文書の情報を表す特徴量が与えられている。
【0041】
図3に示すように、ランキング学習では、ラベルの順序関係に従ってモデルの出力するスコアが高くなるように、学習が進む。スコアは、例えばラベル値の合計値等である。
【0042】
本実施形態では、ランキング学習を用いた機械学習モデル(ランキングモデル)をユーザUの行動ログから構築し、商品の順位付けを行う。
【0043】
情報提供装置100は、ユーザUに所定のアルゴリズムで、複数の文書を含む検索結果を提供する。そして、検索結果中の文書に対するユーザUの行動に基づいて、各文書にラベル付与する。このとき、少なくとも2つ以上の文書にラベル付与する。また、2種類以上の異なるラベルを付与する。
【0044】
例えば、購入等のコンバージョン(最終的な行動)へと至る段階的な行動(クリックする、カートに入れる、購入ボタンを押す等)のそれぞれに基づいて、その行動が行われた文書にラベルが設定される。
【0045】
具体的には、「購入ボタンを押す」という行動に基づいて、文書に「優」(Excellent)のラベルが設定される。「クリックする」や「カートに入れる」という行動に基づいて、文書に「良」(Good)のラベルが設定される。その他(何もしない等)については、「悪」(Bad)のラベルが設定される。
【0046】
なお、購入ボタンの押下は、コンバージョンの一例に過ぎない。例えば、コンバージョンは、ファイルのダウンロード(又はアップロード)、資料請求、ユーザ登録、お気に入り登録、確認事項や契約事項の同意、アンケート回答、動画再生ボタンの押下、所定時間以上の視聴等であってもよい。また、文書が所望の情報であった旨の回答、商品の満足度の回答、商品レビューの投稿等であってもよい。
【0047】
情報提供装置100は、検索クエリと、検索結果に含まれる文書のIDとを入力した際に、ラベルが良い順で文書をランク付けするようにモデルを学習させる。
【0048】
〔1-3.多段階ランキング〕
多数の文書が検索クエリ(キーワード)にマッチした場合、それらの文書全てについて機械学習モデル(学習済モデル)を用いてリアルタイムでランキングするのは、処理が重くて現実的には無理がある。そこで、多段階ランキングを行う。
【0049】
例えば、2段階ランキングの場合、前段では、キーワードにマッチした文書に対して機械学習モデル(学習済モデル)を使用せずに軽い計算で荒くフィルタリングする(軽量モデル:light-model)。すなわち、ランキング対象の絞り込みを行う。そして、後段では、フィルタリングした結果に対して機械学習モデル(学習済モデル)を使用してランキングする(重量モデル:heavy-model)。無論、3段階以上にすることも可能である。
【0050】
〔2.情報処理システムの構成例〕
次に、
図4を用いて、実施形態に係る情報提供装置100が含まれる情報処理システム1の構成について説明する。
図4は、実施形態に係る情報処理システム1の構成例を示す図である。
図4に示すように、実施形態に係る情報処理システム1は、端末装置10と情報提供装置100とを含む。これらの各種装置は、ネットワークNを介して、有線又は無線により通信可能に接続される。ネットワークNは、例えば、LAN(Local Area Network)や、インターネット等のWAN(Wide Area Network)である。
【0051】
また、
図4に示す情報処理システム1に含まれる各装置の数は図示したものに限られない。例えば、
図4では、図示の簡略化のため、端末装置10を1台のみ示したが、これはあくまでも例示であって限定されるものではなく、2台以上であってもよい。
【0052】
端末装置10は、ユーザUによって使用される情報処理装置である。例えば、端末装置10は、スマートフォンやタブレット端末等のスマートデバイス、フィーチャーフォン、PC(Personal Computer)、PDA(Personal Digital Assistant)、カーナビゲーションシステム、スマートウォッチやヘッドマウントディスプレイ等のウェアラブルデバイス(Wearable Device)、スマートグラス等である。
【0053】
また、かかる端末装置10は、LTE(Long Term Evolution)、4G(4th Generation)、5G(5th Generation:第5世代移動通信システム)等の無線通信網や、Bluetooth(登録商標)、無線LAN(Local Area Network)等の近距離無線通信を介してネットワークNに接続し、情報提供装置100と通信することができる。
【0054】
情報提供装置100は、例えばPCやサーバ装置、あるいはメインフレーム又はワークステーション等である。なお、情報提供装置100は、クラウドコンピューティングにより実現されてもよい。また、情報提供装置100は、検索エンジンとしての検索サーバや、各種のログデータを取得するログサーバのように、役割に応じた個々のサーバ装置により構成されていてもよい。
【0055】
〔3.情報処理装置の構成例〕
次に、
図5を用いて、実施形態に係る情報提供装置100の構成について説明する。
図5は、実施形態に係る情報提供装置100の構成例を示す図である。
図5に示すように、情報提供装置100は、通信部110と、記憶部120と、制御部130とを有する。
【0056】
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。また、通信部110は、ネットワークN(
図4参照)と有線又は無線で接続される。
【0057】
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現される。
図5に示すように、記憶部120は、ユーザ情報データベース121と、ログ情報データベース122と、学習モデルデータベース123とを有する。
【0058】
(ユーザ情報データベース121)
ユーザ情報データベース121は、ユーザUに関する各種情報を記憶する。例えば、ユーザ情報データベース121は、ユーザUの属性等の種々の情報を記憶する。
図6は、ユーザ情報データベース121の一例を示す図である。
図6に示した例では、ユーザ情報データベース121は、「ユーザID(Identifier)」、「年齢」、「性別」、「自宅」、「勤務地」、「興味」といった項目を有する。
【0059】
「ユーザID」は、ユーザUを識別するための識別情報を示す。また、「年齢」は、ユーザIDにより識別されるユーザUの年齢を示す。なお、「年齢」は、例えば35歳など、ユーザIDにより識別されるユーザUの具体的な年齢であってもよい。また、「性別」は、ユーザIDにより識別されるユーザUの性別を示す。
【0060】
また、「自宅」は、ユーザIDにより識別されるユーザUの自宅の位置情報を示す。なお、
図6に示す例では、「自宅」は、「LC11」といった抽象的な符号を図示するが、緯度経度情報等であってもよい。また、例えば、「自宅」は、地域名や住所であってもよい。
【0061】
また、「勤務地」は、ユーザIDにより識別されるユーザUの勤務地(学生の場合は学校)の位置情報を示す。なお、
図6に示す例では、「勤務地」は、「LC12」といった抽象的な符号を図示するが、緯度経度情報等であってもよい。また、例えば、「勤務地」は、地域名や住所であってもよい。
【0062】
また、「興味」は、ユーザIDにより識別されるユーザUの興味を示す。すなわち、「興味」は、ユーザIDにより識別されるユーザUが関心の高い対象を示す。なお、
図6に示す例では、「興味」は、各ユーザUに1つずつ図示するが、複数であってもよい。
【0063】
例えば、
図6に示す例において、ユーザID「U1」により識別されるユーザUの年齢は、「20代」であり、性別は、「男性」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザUは、自宅が「LC11」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザUは、勤務地が「LC12」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザUは、「スポーツ」に興味があることを示す。
【0064】
ここで、
図6に示す例では、「U1」、「LC11」および「LC12」といった抽象的な値を用いて図示するが、「U1」、「LC11」および「LC12」には、具体的な文字列や数値等の情報が記憶されるものとする。以下、他の情報に関する図においても、抽象的な値を図示する場合がある。
【0065】
なお、ユーザ情報データベース121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、ユーザ情報データベース121は、ユーザUの端末装置10に関する各種情報を記憶してもよい。また、ユーザ情報データベース121は、ユーザUのデモグラフィック(人口統計学的属性)、サイコグラフィック(心理学的属性)、ジオグラフィック(地理学的属性)、ベヘイビオラル(行動学的属性)等の属性に関する情報を記憶してもよい。例えば、ユーザ情報データベース121は、氏名、家族構成、職業、職位、収入、資格、居住形態(戸建、マンション等)、車の有無、通学・通勤時間、通学・通勤経路、定期券区間(駅、路線等)、利用頻度の高い駅(自宅・勤務地の最寄駅以外)、習い事(場所、時間帯等)、趣味、興味、ライフスタイル等の情報を記憶してもよい。
【0066】
(ログ情報データベース122)
ログ情報データベース122は、ユーザUの行動ログに関する各種情報を記憶する。
図7は、ログ情報データベース122の一例を示す図である。
図7に示した例では、ログ情報データベース122は、「ユーザID」、「検索クエリ」、「文書ID」、「行動」、「ラベル」といった項目を有する。
【0067】
「ユーザID」は、ユーザUを識別するための識別情報を示す。「検索クエリ」は、ユーザUが検索エンジン等に入力した検索クエリ(キーワード)を示す。「文書ID」は、検索クエリ(キーワード)に基づく検索結果に含まれる文書(ウェブページ等)を識別するための識別情報を示す。
【0068】
「行動」は、検索結果中の文書に対するユーザUの行動を示す。例えば、「行動」は、購入等のコンバージョン(最終的な行動)へと至る段階的な行動(クリックする、カートに入れる、購入ボタンを押す等)である。文書に対して何も行動しない場合には、未入力を示す「-」が記憶される。ここで、初期状態(デフォルト)として、事前に全項目に未入力を示す「-」が記憶されていてもよい。なお、「-」は一例に過ぎない。実際には、行動しなかったことを示す「何もしない」や空欄(空白)等でもよい。
【0069】
「ラベル」は、検索結果中の文書に対するユーザUの行動に基づいて、文書に付与されるラベルを示す。例えば、「ラベル」は、「優」、「良」、「悪」の3段階のラベル等である。具体的には、「購入」に基づいて文書に「優」のラベルが付与される。「クリック」や「カート」に基づいて文書に「良」のラベルが付与される。「-」に基づいて文書に「悪」のラベルが付与される。
【0070】
例えば、
図7に示す例において、ユーザID「U1」により識別されるユーザUは、入力した検索クエリ「検索クエリ#11」に基づく検索結果中の文書を示す文書ID「文書#11A」に対応する文書に対して行動「購入」を行ったため、当該文書にラベル「優」が付与されたことを示す。
【0071】
ここで、
図7に示す例では、「U1」、「検索クエリ#11」および「文書#11A」といった抽象的な値を用いて図示するが、「U1」、「検索クエリ#11」および「文書#11A」には、具体的な文字列や数値等の情報が記憶されるものとする。
【0072】
なお、ログ情報データベース122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、ログ情報データベース122は、ユーザUの位置履歴、検索履歴、閲覧履歴、購買履歴、投稿履歴等の情報を記憶してもよい。
【0073】
(学習モデルデータベース123)
学習モデルデータベース123は、機械学習モデルに関する各種情報を記憶する。
図8は、学習モデルデータベース123の一例を示す図である。
図8に示した例では、学習モデルデータベース123は、「ユーザID」、「学習モデル」、「学習データ」、「制限」、「モデルサイズ」といった項目を有する。
【0074】
「ユーザID」は、ユーザUを識別するための識別情報を示す。なお、ユーザUを識別する必要がなければ、学習モデルデータベース123に「ユーザID」は無くてもよい。
【0075】
「学習モデル」は、学習データを入力する機械学習モデルを識別するための識別情報を示す。機械学習モデルは、例えばLightGBM等の勾配ブースティング決定木を用いたランキング学習により構築される。ここでは、機械学習モデルは、全ユーザに共通の学習モデルであるものとする。但し、実際には、ユーザごとに個別の学習モデルであってもよい。
【0076】
「学習データ」は、機械学習モデルに入力される学習データを示す。学習データは、例えばHadoop(登録商標)クラスタ等の分散処理クラスタに蓄積されたログから、Hive等のデータウェアハウス及びSpark等の分散処理フレームワークを用いて作成される。学習データは、直近に入力された最新のデータであってもよいし、過去に入力されたデータの履歴であってもよい。また、不要であれば、学習モデルデータベース123に「学習データ」の欄は無くてもよい。
【0077】
「制限」は、機械学習モデルに入力される学習データを制限するための情報を示す。例えば、「制限」は、機械学習モデルに入力される学習データの数の上限値(閾値)を示す。さらに、「制限」は、機械学習モデルに入力される学習データの数の下限値を示してもよい。なお、実際には、「制限」は、学習データの数に限らず、機械学習モデルに入力される学習データのカテゴリ等の種別を指定する情報を示してもよい。情報提供装置100は、この「制限」に従い、学習データの数を制限するために、トランスフィルタを間に入れて学習データにフィルタをかけ、学習データを選別する。
【0078】
「モデルサイズ」は、学習モデルのサイズを示す。例えば、情報提供装置100は、この「モデルサイズ」が、学習モデルとして許容されるサイズの上限値を超えないように限定する。すなわち、情報提供装置100は、学習モデルのサイズを所定の大きさに限定する。なお、「モデルサイズ」は、学習モデルとして許容されるサイズの上限値(閾値)を示してもよい。
【0079】
例えば、
図8に示す例において、ユーザID「U1」により識別されるユーザUに対して、学習モデル「学習モデル#1」が構築され、その学習モデルには学習データ「学習データ#1」が制限「制限#1」に応じた数だけ入力され、学習モデルがモデルサイズ「モデルサイズ#1」の大きさであることを示す。
【0080】
ここで、
図8に示す例では、「U1」、「学習モデル#1」、「学習データ#1」、「制限#1」および「モデルサイズ#1」といった抽象的な値を用いて図示するが、「U1」、「学習モデル#1」、「学習データ#1」、「制限#1」および「モデルサイズ#1」には、具体的な文字列や数値等の情報が記憶されるものとする。
【0081】
なお、学習モデルデータベース123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、学習モデルデータベース123は、ユーザUが利用する検索エンジンや検索サイトごとに機械学習モデルを記憶してもよい。これに伴い、検索エンジンや検索サイトに関する情報を記憶してもよい。
【0082】
(制御部130)
図5に戻り、説明を続ける。制御部130は、コントローラ(Controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等によって、情報提供装置100の内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAM等の記憶領域を作業領域として実行されることにより実現される。
図5に示す例では、制御部130は、取得部131と、生成部132と、選別部133と、学習部134と、設定部135と、提供部136とを有する。
【0083】
(取得部131)
取得部131は、通信部110を介して、ユーザUの端末装置10から検索クエリ(検索キーワード)を含む検索リクエストを取得する。また、取得部131は、通信部110を介して、検索クエリに基づいて検索を行い、検索クエリにマッチする検索結果を取得する。
【0084】
例えば、取得部131は、検索クエリを検索エンジンに入力して検索を行い、検索結果として取得した文書を順位付けして、ユーザUの端末装置10に提供する。なお、取得部131は、検索クエリに応じて検索処理を行う検索部であってもよい。
【0085】
(生成部132)
生成部132は、取得部131により取得された検索結果にラベルを付与して学習データを生成する。
【0086】
例えば、生成部132は、検索結果のうち、表示すべきものに最上位のラベルを付与し、表示しても違和感がないものに次点のラベルを付与し、表示すべきでないものに最下位のラベルを付与する。
【0087】
ここでは、生成部132は、検索結果に対するユーザの行動ログに応じたラベルを付与する。具体的には、生成部132は、検索結果のうち、コンバージョンに至ったものに最上位のラベルを付与し、クリックされたものに次点のラベルを付与し、クリックされなかったものに最下位のラベルを付与する。
【0088】
また、生成部132は、検索FEから送信されたユーザの行動ログと、検索エンジンから送信された検索結果のランキングログとに基づいて、学習データを生成する。このとき、ユーザの行動ログとランキングログとはHadoop(登録商標)クラスタ等の分散処理クラスタに蓄積される。生成部132は、Hadoop(登録商標)クラスタ等の分散処理クラスタに蓄積されたログから、Hive等のデータウェアハウス及びSpark等の分散処理フレームワークを用いて、学習データを生成する。
【0089】
(選別部133)
選別部133は、学習データの数を制限するために、トランスフィルタを間に入れて、生成部132により生成された学習データにフィルタをかけ、学習データを選別する。
【0090】
また、選別部133は、構築された機械学習モデル(学習済モデル)への入力データの数を制限するために、トランスフィルタを間に入れて、取得部131により取得された検索結果にフィルタをかけ、検索結果を選別する。
【0091】
(学習部134)
学習部134は、生成部132により生成された学習データを用いて機械学習を行う。具体的には、選別部133により選別(フィルタリング)された学習データを用いて機械学習を行う。例えば、学習部134は、LightGBM等の勾配ブースティング決定木を用いたランキング学習により、機械学習モデルを構築する。このとき、学習部134は、機械学習モデルのモデルサイズを所定の大きさに限定する。
【0092】
(設定部135)
設定部135は、機械学習の結果得られた機械学習モデルを用いて検索結果の表示順位を設定する。例えば、設定部135は、構築された機械学習モデル(学習済モデル)をプラグイン形式に変換して検索エンジン上にデプロイする。そして、設定部135は、選別部133により選別(フィルタリング)された検索結果を学習済モデルに入力し、学習済モデルから出力された検索結果の表示順位を設定する。
【0093】
(提供部136)
提供部136は、通信部110を介して、検索クエリを入力したユーザUの端末装置10に対して、構築された機械学習モデル(学習済モデル)を用いて表示順位が設定された検索結果を提供する。
【0094】
〔4.処理手順〕
次に、
図9~
図15を用いて実施形態に係る情報提供装置100による処理手順について説明する。
【0095】
〔4-1.機械学習モデルの構築に係る処理手順〕
まず、
図9を用いて、機械学習モデルの構築に係る処理手順について説明する。
図9は、機械学習モデルの構築に係る処理手順を示すフローチャートである。なお、以下に示す処理手順は、情報提供装置100の制御部130によって繰り返し実行される。
【0096】
例えば、情報提供装置100は、ネットワークN(
図4参照)を介して、ユーザの端末装置10から検索クエリ(キーワード)を取得する(ステップS101)。
【0097】
そして、情報提供装置100は、検索クエリを検索エンジンに入力して検索を行い、検索結果として取得した文書を順位付けして、ユーザUの端末装置10に提供する(ステップS102)。
【0098】
そして、情報提供装置100は、検索結果中の文書に対するユーザUの行動に基づいて、各文書にラベル付与し、学習データを作成する(ステップS103)。
【0099】
ここで、情報提供装置100は、学習データの数を制限するために、トランスフィルタを間に入れて学習データにフィルタをかけ、学習データを選別する(ステップS104)。
【0100】
そして、情報提供装置100は、学習データを用いて、例えばLightGBM等の勾配ブースティング決定木を用いたランキング学習により、機械学習モデルを構築する(ステップS105)。
【0101】
このとき、情報提供装置100は、機械学習モデルが大きくなり過ぎないように、モデルサイズ(LightGBMであれば、分岐する木の数)を所定の大きさに限定する。
【0102】
そして、情報提供装置100は、構築された機械学習モデル(学習済モデル)をプラグイン形式に変換して検索エンジン上にデプロイする(ステップS106)。
【0103】
これにより、次回以降の検索において、検索結果中の文書が機械学習モデル(学習済モデル)により順位付けされる。
【0104】
〔4-2.多段階ランキングに係る処理手順〕
次に、
図10~
図15を用いて、多段階ランキングに係る処理手順について説明する。
図10は、多段階ランキングに係る処理手順を示すフローチャートである。
図11は、高速なランキングについての説明図である。
図12は、高精度なランキングについての説明図である。
図13は、さらに高精度なランキングについての説明図である。
図14は、さらにさらに高精度なランキングについての説明図である。
図15は、ランキング結果の提供についての説明図である。なお、以下に示す処理手順は、情報提供装置100の制御部130によって繰り返し実行される。
【0105】
例えば、情報提供装置100は、ネットワークN(
図4参照)を介して、ユーザの端末装置10から検索クエリ(キーワード)を取得する(ステップS201)。
【0106】
そして、情報提供装置100は、検索クエリを検索エンジンに入力して検索を行い、検索結果として取得した文書に対して、高速で低精度なランキングを行う(ステップS202)。
【0107】
例えば、
図11に示すように、情報提供装置100は、検索クエリが「スマホケース」である場合、「スマホ」の索引と「ケース」の索引とをマッチングし、「スマホ」と「ケース」とを両方含む所定の件数(例えば100万件)の文書のリストを取得し、これらの文書のリストに基づいて高速なランキングを行う。すなわち、軽い計算で荒くフィルタリングする(軽量モデル:light-model)。
【0108】
このとき、情報提供装置100は、高速なランキングの結果のうち、上位の所定の件数(例えば上位1000件)の文書を保持する。
【0109】
そして、情報提供装置100は、既に実施したランキング手法とは精度と速度が異なるランキング手法を適用する(ステップS203)。
【0110】
精度とは、利用者の検索意図に合致している度合い(合致度)を指す。利用者の検索意図により合致させるためには、検索クエリと商品情報との一致度のみならず、利用者の属性や閲覧履歴、商品の閲覧回数や購入回数等、各種の情報をより多く用いて、ランキングを生成する必要がある。このような情報の数や、情報同士のマッチングに要する処理(例えば、文字解析や特徴量比較等)に用いる計算リソース(計算資源)が多ければ多いほど、より精度が向上する。このため、情報提供装置100は、ランキング手法について、必要な計算リソースが少ないものから、徐々に重いものへと段階的に適用していく。
【0111】
計算リソースとは、例えばCPUの数、処理時間、メモリ量、消費電力量等である。
【0112】
そして、情報提供装置100は、上位の文書だけに対して、低速だが高精度なランキングを行う(ステップS204)。
【0113】
そして、情報提供装置100は、さらに上位の文書に対する高精度なランキングを行うか否かを判定する(ステップS205)。
【0114】
そして、情報提供装置100は、さらに上位の文書に対する高精度なランキングを行う場合(ステップS205;Yes)、さらに上位の文書だけに対して、既に実施したランキング手法とは精度と速度が異なるランキング手法を用いて、低速だが高精度なランキングを行う(ステップS203に戻る)。
【0115】
例えば、
図12に示すように、情報提供装置100は、上位1000件の文書に対して、精度と速度が異なるランキング手法を用いて、高精度なランキングを行う。すなわち、検索エンジン上にデプロイされた機械学習モデル(学習済モデル)を使用してランキングする(重量モデル:heavy-model)。
【0116】
次に、
図13に示すように、情報提供装置100は、上位1000件の文書のうち、上位100件の文書に対して、さらに精度と速度が異なるランキング手法を用いて、高精度なランキングを行う。また、上位1000件の文書のうち、上位100件以外(上位100位未満:上位101位~1000位)の文書については、そのまま再利用する。
【0117】
次に、
図14に示すように、情報提供装置100は、上位100件の文書のうち、上位10件の文書に対して、さらにさらに精度と速度が異なるランキング手法を用いて、高精度なランキングを行う。また、上位100件の文書のうち、上位10件以外(上位10位未満:上位11位~100位)の文書については、そのまま再利用する。
【0118】
そして、情報提供装置100は、さらに上位の文書に対する高精度なランキングを行わない場合(ステップS205;No)、最終的なランキング結果のうち、ユーザが指定した部分を提供する(ステップS206)。
【0119】
例えば、
図15に示すように、情報提供装置100は、上位1000件の文書のうち、ユーザにより6件目から5件分(上位6位~10位)の文書が指定された場合、ランキング結果として、6件目から5件分の文書をユーザに提供する。
【0120】
〔5.変形例〕
上述した端末装置10および情報提供装置100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、実施形態の変形例について説明する。
【0121】
上記実施形態において、情報提供装置100は、ユーザのネットワーク上の行動を示すログデータを取得してもよい。例えば、情報提供装置100は、ユーザの位置の履歴である位置履歴を端末装置10から取得する。また、情報提供装置100は、ユーザが入力した検索クエリの履歴である検索履歴を検索サーバ(検索エンジン)から取得する。また、情報提供装置100は、ユーザが閲覧したコンテンツの履歴である閲覧履歴をコンテンツサーバから取得する。また、情報提供装置100は、ユーザによる決済の履歴である決済履歴を電子商取引サーバや電子決済サーバから取得する。また、情報提供装置100は、ユーザによる投稿の履歴である投稿履歴を口コミの投稿サービスを提供する投稿サーバやSNS(Social Networking Service)サーバから取得する。なお、情報提供装置100は、上述した情報の他にも各種の情報を取得可能である。例えば、情報提供装置100は、ユーザの年齢、性別、家族構成、経済状況といったユーザの属性に関する情報を取得する。
【0122】
なお、情報提供装置100は、ユーザの端末装置10内の一機能として実装されてもよい。例えば、情報提供装置100は、ユーザの端末装置10のうちの一台であってもよい。また、ユーザの端末装置10として、情報提供装置100を直接操作してもよい。すなわち、端末装置10と情報提供装置100とは、同一の装置であってもよい。
【0123】
また、上記実施形態において、情報提供装置100は、全ユーザに共通の機械学習モデルを構築しているが、実際には、ユーザごとに個別の機械学習モデルを構築してもよい。また、各ユーザの行動ログを比較照合し、行動ログに共通点又は類似性があるユーザ同士をグループ化(グルーピング)し、グループごとの機械学習モデルを構築してもよい。
【0124】
また、上記実施形態においては、ECサイト等での商品検索を例に説明しているが、実際には、アプリストアでのアプリ検索や、動画検索サイトでの動画検索、イラスト/漫画/小説の投稿サイトでの作品検索、学術論文サイトでの論文検索、ニュースサイトでのニュース検索等であってもよい。
【0125】
また、上記実施形態において、モデルの学習手法は、例えばディープニューラルネットワーク(DNN:Deep Neural Network)を利用したディープラーニング(深層学習)等であってもよい。また、データマイニングやその他の機械学習アルゴリズムを利用してもよい。情報提供装置100は、上述した各種の学習手法により、モデルの学習を行う。
【0126】
〔6.効果〕
上述してきたように、本願に係る情報提供装置100は、取得部131と、生成部132と、学習部134と、設定部135と、を備える。取得部131は、検索クエリにマッチする検索結果(文書等)を取得する。生成部132は、取得された検索結果に、当該検索結果に対するユーザの行動ログに応じたラベルを付与して学習データを生成する。学習部134は、生成された学習データを用いて機械学習を行う。設定部135は、機械学習の結果得られた学習モデルを用いて検索結果の表示順位を設定する。これにより、利用者の検索意図を反映した適切な検索結果を提供することができる。
【0127】
〔7.ハードウェア構成〕
また、上述した実施形態に係る端末装置10や情報提供装置100は、例えば
図16に示すような構成のコンピュータ1000によって実現される。以下、情報提供装置100を例に挙げて説明する。
図16は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力I/F(Interface)1060、入力I/F1070、ネットワークI/F1080がバス1090により接続された形態を有する。
【0128】
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。演算装置1030は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等により実現される。
【0129】
一次記憶装置1040は、RAM(Random Access Memory)等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等により実現される。二次記憶装置1050は、内蔵ストレージであってもよいし、外付けストレージであってもよい。また、二次記憶装置1050は、USBメモリやSD(Secure Digital)メモリカード等の取り外し可能な記憶媒体であってもよい。また、二次記憶装置1050は、クラウドストレージ(オンラインストレージ)やNAS(Network Attached Storage)、ファイルサーバ等であってもよい。
【0130】
出力I/F1060は、ディスプレイ、プロジェクタ、およびプリンタ等といった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインターフェイスであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力I/F1070は、マウス、キーボード、キーパッド、ボタン、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインターフェイスであり、例えば、USB等により実現される。
【0131】
また、出力I/F1060および入力I/F1070はそれぞれ出力装置1010および入力装置1020と無線で接続してもよい。すなわち、出力装置1010および入力装置1020は、ワイヤレス機器であってもよい。
【0132】
また、出力装置1010および入力装置1020は、タッチパネルのように一体化していてもよい。この場合、出力I/F1060および入力I/F1070も、入出力I/Fとして一体化していてもよい。
【0133】
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、又は半導体メモリ等から情報を読み出す装置であってもよい。
【0134】
ネットワークI/F1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
【0135】
演算装置1030は、出力I/F1060や入力I/F1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
【0136】
例えば、コンピュータ1000が情報提供装置100として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部130の機能を実現する。また、コンピュータ1000の演算装置1030は、ネットワークI/F1080を介して他の機器から取得したプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行してもよい。また、コンピュータ1000の演算装置1030は、ネットワークI/F1080を介して他の機器と連携し、プログラムの機能やデータ等を他の機器の他のプログラムから呼び出して利用してもよい。
【0137】
〔8.その他〕
以上、本願の実施形態を説明したが、これら実施形態の内容により本発明が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
【0138】
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0139】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【0140】
例えば、上述した情報提供装置100は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のフレームワーク等をAPI(Application Programming Interface)やネットワークコンピューティング等で呼び出して実現する等、構成は柔軟に変更できる。
【0141】
また、上述してきた実施形態および変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0142】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」等に読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【0143】
1 情報処理システム
10 端末装置
100 情報提供装置
110 通信部
120 記憶部
121 ユーザ情報データベース
122 ログ情報データベース
123 学習モデルデータベース
130 制御部
131 取得部
132 生成部
133 選別部
134 学習部
135 設定部
136 提供部