(57)【要約】【課題】より適切にサジェストクエリを順位付けすることが可能な情報処理装置、情報処理方法、およびプログラムを提供すること。【解決手段】電子店舗において入力されたクエリに基づいて提示されるサジェストクエリの集合であって、正例、負例の区別がなされたサジェストクエリの集合に基づいて、前記サジェストクエリの素性の重みを学習する学習部と、前記学習部により学習された素性の重みに基づいて、前記サジェストクエリを順位付けする順位付け部と、を備える情報処理装置。【選択図】図１
2018097560.tif 000002
【特許請求の範囲】
【請求項１】
電子店舗において入力されたクエリに基づいて提示されるサジェストクエリの集合であって、正例、負例の区別がなされたサジェストクエリの集合に基づいて、前記サジェストクエリの素性の重みを学習する学習部と、
前記学習部により学習された素性の重みに基づいて、前記サジェストクエリを順位付けする順位付け部と、
を備える情報処理装置。
【請求項２】
前記学習部は、前記クエリごとに前記サジェストクエリの素性の重みを学習し、
前記順位付け部は、前記クエリごとに前記サジェストクエリを順位付けする、
請求項１記載の情報処理装置。
【請求項３】
前記サジェストクエリの集合は、利用者によって選択された場合に正例、選択されなかった場合に負例と区別がなされており、
前記学習部は、サポートベクタマシンを用いて素性の重みを学習し、判定が間違ったサンプルの超平面からの距離の合計が少なくなるように超平面を求める、
請求項１または２記載の情報処理装置。
【請求項４】
前記素性は、検索数に依存しない情報を含む、
請求項１から３のうちいずれか１項記載の情報処理装置。
【請求項５】
前記素性は、前記サジェストクエリから抜き出した名詞が検索数のランキングに入っているか否かを含む、
請求項１から４のうちいずれか１項記載の情報処理装置。
【請求項６】
コンピュータが、
電子店舗において入力されたクエリに基づいて提示されるサジェストクエリの集合であって、正例、負例の区別がなされたサジェストクエリの集合に基づいて、前記サジェストクエリの素性の重みを学習し、
前記学習した素性の重みに基づいて、前記サジェストクエリを順位付けする、
情報処理方法。
【請求項７】
コンピュータに、
電子店舗において入力されたクエリに基づいて提示されるサジェストクエリの集合であって、正例、負例の区別がなされたサジェストクエリの集合に基づいて、前記サジェストクエリの素性の重みを学習させ、
前記学習させた素性の重みに基づいて、前記サジェストクエリを順位付けさせる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、ショッピングシステム（電子店舗）におけるサジェストクエリの順位付けを行う技術が開示されている（特許文献１参照）。この技術では、商品情報の表示順位が、リスティングスコアに基づいて決定される。リスティングスコアは、商品またはその商品の商品ページに対して決定された評価を示す値である。リスティングスコアは、商品ページに対するアクセス数（閲覧数）が多いほどリスティングスコアが高くなったり、商品の購入数が多いほどリスティングスコアが高くなったりするように決定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−０５０９０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、例えば、複数の電子店舗が登録されたポータルサイトにおいて運用を行った場合、特定の店舗が意図的に、自身の商品ページのアクセス数が多くなるように操作を行う場合があり、サジェストクエリを適切に順位付けすることができない場合があった。
【０００５】
本発明は、このような事情を考慮してなされたものであり、より適切にサジェストクエリを順位付けすることが可能な情報処理装置、情報処理方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００６】
本発明の一態様は、電子店舗において入力されたクエリに基づいて提示されるサジェストクエリの集合であって、正例、負例の区別がなされたサジェストクエリの集合に基づいて、前記サジェストクエリの素性の重みを学習する学習部と、前記学習部により学習された素性の重みに基づいて、前記サジェストクエリを順位付けする順位付け部と、を備える情報処理装置である。
【発明の効果】
【０００７】
本発明の一態様によれば、より適切にサジェストクエリを順位付けすることができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置の一例であるランキング管理装置１００の構成および使用環境を示す図である。
【図２】電子店舗サーバ２０により提供されるインターフェース画面の一例を示す図である。
【図３】学習用データ１５４の内容の一例を模式的に示す図である。
【図４】学習部１２０および順位付け部１３０により実行される処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面を参照し、本発明の情報処理装置、情報処理方法、およびプログラムの実施形態について説明する。実施形態の情報処理装置は、一以上のプロセッサによって実現される。情報処理装置は、ネットワークを介して商品またはサービス（以下、商品等）を販売する電子店舗において、入力されたクエリ（以下、入力クエリ）に対して提示されるサジェストクエリの順位付けを行う装置である。情報処理装置は、正例、負例の区別がなされたサジェストクエリの集合に基づいて、例えば入力クエリごとにサジェストクエリの素性の重みを学習し、学習した素性の重みに基づいて、例えば入力クエリごとにサジェストクエリを順位付けする。なお、情報処理装置と、電子店舗を運営する装置とは別体の装置である必要はなく、これらは一つのプロセッサによって実現されてもよい。以下、情報処理装置の機能について段階的に開示する。
【００１０】
図１は、情報処理装置の一例であるランキング管理装置１００の構成および使用環境を示す図である。ランキング管理装置１００は、ネットワークＮＷに接続される。ネットワークＮＷは、例えば、無線基地局、Ｗｉ−Ｆｉアクセスポイント、通信回線、プロバイダ、インターネットなどを含む。ネットワークＮＷには、一以上の端末装置１０および電子店舗サーバ２０が接続される。なお、必ずしも端末装置１０とランキング管理装置１００が通信可能である必要は無く、ネットワークＮＷは幾つかのサブネットワークに分割されていてもよい。
【００１１】
端末装置１０は、電子店舗を利用する利用者によって使用される端末装置である。端末装置１０としては、例えば、スマートフォンなどの携帯電話、パーソナルコンピュータ、タブレット端末などが使用される。端末装置１０では、ウェブブラウザやニュースアプリなどのＵＡ（User Agent）が起動し、電子店舗サーバ２０にアクセスする。
【００１２】
電子店舗サーバ２０は、電子店舗を運営するサーバ装置である。電子店舗サーバ２０は、ウェブサーバ、アプリサーバ、その他の形態で動作する。電子店舗サーバ２０は、端末装置１０の利用者にネットワークＮＷ上での買い物を可能とするためのインターフェース画面を、端末装置１０に提供する。
【００１３】
図２は、電子店舗サーバ２０により提供されるインターフェース画面の一例を示す図である。この画面には、入力クエリを入力するためのクエリ入力窓ＱＷが設定される。クエリ入力窓ＱＷに入力クエリが入力されると、例えば、入力クエリに対して他のワードが追加されたサジェストクエリの一覧情報であるサジェストクエリ一覧ＳＱＬが表示される。サジェストクエリ一覧ＳＱＬに表示されるサジェストクエリの順序は、ランキング管理装置１００により行われた順位付けに基づいて決定される。サジェストクエリが選択された状態で検索ボタンＳＢが操作されると、選択されたサジェストクエリを用いて検索した結果を表示する画面に遷移する。このようにして電子店舗における買い物が開始される。
【００１４】
電子店舗サーバ２０は、利用者によって検索が行われる度に、入力クエリに対して提示したサジェストクエリ、および、検索の度にサジェストクエリ一覧ＳＱＬの中で選択されたサジェストクエリの情報などを、ログ情報２２として記憶部に蓄積する。ログ情報２２には、これらの情報の他、最終的に商品の購入に至ったか、などの利用者の購買行動に関する情報が含まれてよい。
【００１５】
図１に戻り、ランキング管理装置１００は、例えば、情報管理部１１０と、学習部１２０と、順位付け部１３０とを備える。これらの機能部は、例えば、ＣＰＵ（Central Processing Unit）などのプロセッサがプログラム（ソフトウェア）を実行することにより実現される。また、これらの機能部のうち一部または全部は、ＬＳＩ（Large Scale Integration）やＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）などのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働するものであってもよい。
【００１６】
また、ランキング管理装置１００は、記憶部１５０を備える。記憶部１５０は、例えば、ＨＤＤ（Hard Disk Drive）やフラッシュメモリ、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）などによって実現される。記憶部１５０には、ランキングデータ１５２、学習用データ１５４、重みデータ１５６などの情報が格納される。
【００１７】
図１に示すランキング管理装置１００の構成は、適宜、分散化されてもよい。例えば、学習部１２０と順位付け部１３０は、独立したプロセッサによって実現されてもよいし、記憶部１５０は、ランキング管理装置１００からネットワークＮＷを介してアクセス可能なＮＡＳ（Network Attached Storage）であってもよい。また、電子店舗サーバ２０とランキング管理装置１００は統合されて一つのプロセッサで実現されてもよい。
【００１８】
情報管理部１１０は、電子店舗サーバ２０からログ情報２２を取得し、適宜、加工を加えて学習用データ１５４として記憶部１５０に記憶させる。
【００１９】
学習部１２０は、学習用データ１５４に基づいて、例えば入力クエリごとに、サジェストクエリの素性の重みを学習する。図３は、学習用データ１５４の内容の一例を模式的に示す図である。図示するように、学習用データ１５４は、入力クエリごとに、検索が行われた度に、提示されたサジェストクエリと、その中で選択されたサジェストクエリとを対応付けた情報である。選択されたサジェストクエリには正例である旨を示すフラグが、選択されなかったサジェストクエリには負例である旨を示すフラグが、それぞれ付されている。
【００２０】
サジェストクエリの素性とは、例えば、以下に示すもののうち一部または全部を含む。以下において、括弧内のバイナリ、対数値、実数値とは、説明文で表される内容をどのような数値形式で扱うかを示している。
【００２１】
１．編集距離（バイナリ）
この素性は、一文字の挿入・削除・置換によって、一方の文字列（入力クエリ）をもう一方の文字列（サジェストクエリ）に変形するのに必要な手順の最小回数である。編集距離は、例えば、編集距離が［０〜２，３〜４，５〜６，７〜８，９〜１０，１１〜１２，１３〜１５，１６〜］のどの値の範囲に含まれるかを求め、該当する箇所を１、該当しない箇所をゼロとしたベクトルで表される。
【００２２】
２．表示位置（バイナリ）
この素性は、固定数が提示されるサジェストクエリのうち、何番目のサジェストクエリが選択されたかを示す情報である。
【００２３】
３．サジェストクエリの文字長（バイナリ）
この素性は、サジェストクエリの文字数が所定数（例えば１５）以上であるか、所定数未満であるかを示す情報である。
【００２４】
４．サジェストクエリのトークン数（実数）
この素性は、サジェストクエリを形態素解析して得られるトークン数である。トークンとは、分解できない文字列の並びの最小単位である。
【００２５】
５．入力クエリと選択されたサジェストクエリのペアをキーとして集計した検索数（バイナリ）
この素性は、例えば、検索数が、［０〜２，３〜４，５〜６，７〜８，９〜１０，１１〜１５，１６〜２０，２１〜３０，３１〜５０，５１〜１００，１０１〜２００，２０１〜］のどの値の範囲に含まれるかを求め、該当する箇所を１、該当しない箇所をゼロとしたベクトルで表される。
【００２６】
６．サジェスト実績ＣＴＲ（Click Through Ratio）（実数）
この素性は、サジェストクエリの選択回数を検索数で除算した値で表される。
【００２７】
７．サジェストクエリが選択された前提での入力クエリの検索数（バイナリ）
この素性は、例えば、その検索数が、［０〜１０，１１〜５０，５１〜１００，１０１〜１０００，１００１〜］のどの値の範囲に含まれるかを求め、該当する箇所を１、該当しない箇所をゼロとしたベクトルで表される。
【００２８】
８．サジェストクエリと入力クエリの差分の文字列で求めたＣＴＲ（実数）
この素性は、例えば、入力クエリを「スマートフォン」、サジェストクエリを「スマートフォン  ケース」とした場合、「ケース」に関するＣＴＲである。
【００２９】
９．サジェストクエリを使わずに入力クエリが検索された検索数（バイナリ）
この素性は、例えば、検索数が、［０，１，２，３〜４，５〜６，７〜８，９〜１０，１１〜１５，１６〜２０，２１〜３０，３１〜５０，５１〜１００，１０１〜２００，２０１〜］のどの値の範囲に含まれるかを求め、該当する箇所を１、該当しない箇所をゼロとしたベクトルで表される。
【００３０】
１０．検索クエリ（入力クエリのみで検索された場合と、サジェストクエリで検索された場合を含む）の検索数（バイナリ）
この素性は、例えば、その検索数が、［０〜２，３〜４，５〜６，７〜８，９〜１０，１１〜１５，１６〜２０，２１〜３０，３１〜５０，５１〜１００，１０１〜２００，２０１〜］のどの値の範囲に含まれるかを求め、該当する箇所を１、該当しない箇所をゼロとしたベクトルで表される。
【００３１】
１１．検索クエリで検索をした時の検索結果の商品リンクのクリック数（バイナリ）
この素性は、１リクエストに最大１クリックまで数えられ、［０〜２，３〜４，５〜６，７〜８，９〜１０，１１〜１５，１６〜２０，２１〜３０，３１〜５０，５１〜１００，１０１〜２００，２０１〜］のどの値の範囲に含まれるかを求め、該当する箇所を１、該当しない箇所をゼロとしたベクトルで表される。
【００３２】
１２．検索クエリで検索をした時の検索結果の商品リンクのクリック総数（バイナリ）  この素性は、商品詳細ページのリンク数全てのクリックを数えたものである。最大値は表示された商品リンク数と同じ数になる。この数は、［０〜２，３〜４，５〜６，７〜８，９〜１０，１１〜１５，１６〜２０，２１〜３０，３１〜５０，５１〜１００，１０１〜２００，２０１〜］のどの値の範囲に含まれるかを求め、該当する箇所を１、該当しない箇所をゼロとしたベクトルで表される。
【００３３】
１３．検索クエリで検索をした時の商品詳細のＣＴＲ（実数）
この素性は、商品リンクのクリック数（複数リンクをクリックしても１としてカウント）を、リクエスト数で除算した値で表される。
【００３４】
１４．検索クエリで検索をした時の商品詳細のｉＣＴＲ（実数）
この素性は、商品リンクのクリック数を、商品詳細のリンク数で除算した値で表される。
【００３５】
１５．検索クエリで検索をした時の商品詳細のClick Per Request（対数）
この素性は、１リクエストにどのくらいの商品詳細リンクがクリックされたかで表される。最大値はクリック数分となる。
【００３６】
１６．検索クエリで検索をした時の商品ヒット数（対数）
【００３７】
１７．検索クエリが、検索数の多いクエリの上位所定数（例えば５０００個）に該当するか否か（バイナリ）
この素性は、上記条件に該当する場合に１、該当しない場合にゼロで表される。
【００３８】
１８．検索クエリをスペース区切りにした文字列が、上位所定数（例えば５０００個）に該当するか否か（バイナリ）
この素性は、上記条件に該当する場合に１、該当しない場合にゼロで表される。
【００３９】
１９．検索クエリを形態素解析して抜き出した名詞が、上位所定数（例えば５０００個）に該当するか否か（バイナリ）
この素性は、上記条件に該当する場合に１、該当しない場合にゼロで表される。
【００４０】
学習部１２０は、上記説明したサジェストクエリの素性の重みを学習する。学習用データ１５４は、検索のログ情報に基づいているため、同じサジェストクエリであっても正例になったり負例になったりすることがある。このため、学習部１２０は、例えば、ＳＶＭ（Support Vector Machine；サポートベクタマシン）を用いて、判定が間違ったサンプルの超平面からの距離の合計が少なくなるように超平面を求める。
【００４１】
順位付け部１３０は、学習部１２０により学習された素性の重みに基づいて、例えば入力クエリごとに、サジェストクエリを順位付けする。順位付けした結果は、電子店舗サーバ２０に提供される。電子店舗サーバ２０は、提供された順位付けの結果に基づいて、入力クエリに対して提示するサジェストクエリを決定する。これによって、サジェストクエリのＣＴＲなどを向上させることができる。
【００４２】
図４は、学習部１２０および順位付け部１３０により実行される処理の流れの一例を示すフローチャートである。まず、学習部１２０は、ランキングデータ１５２を読み込む（Ｓ１００）。ランキングデータ１５２は、例えば入力クエリごとに、サジェストクエリを順位付けしたデータである。初期データとしてのランキングデータ１５２は、例えば、検索クエリの頻度順で並べられた所定数の（例えば２００個の）サジェストクエリである。
【００４３】
次に、学習部１２０が、ＳＶＭを学習用データ１５４に適用し、サジェストクエリの素性の重みを学習し（Ｓ１０２）、重みデータ１５６として記憶部１５０に記憶させる。順位付け部１３０は、学習された重みに基づいて、ランキングデータ１５２に含まれるサジェストクエリを順位付けし、ランキングデータを更新する（Ｓ１０４）。
【００４４】
順位付け部１３０は、例えば、式（１）で表される評価値Ｓｃｏｒｅをサジェストクエリごとに算出し、評価値Ｓｃｏｒｅの高い順にサジェストクエリを順位付けする。式中、ｉは素性のインデックスであり、ｗｉは素性に対する重みであり、ｆｉはサジェストクエリの素性の値（例えば、前述した１〜１９）である。
Ｓｃｏｒｅ＝Σｗｉ×ｆｉ  …（１）
【００４５】
以下に具体例を示す。例えば、入力クエリが「ｉＰｈｏｎｅ」（登録商標）であり、素性として［６．サジェスト実績ＣＴＲ］および［１６．検索クエリで検索をした時の商品ヒット数］が採用されたものとする。そして、学習部１２０は、［６．サジェスト実績ＣＴＲ］に対する重みｗ６を０．５、［１６．検索クエリで検索をした時の商品ヒット数］に対する重みｗ１６を０．３と学習したものとする。
【００４６】
この場合において、サジェストクエリ［ｉＰｈｏｎｅ  ケース］について、［６．サジェスト実績ＣＴＲ］が０．１、［１６．検索クエリで検索をした時の商品ヒット数］が３（＝ｌｏｇ１０１０００）であったとする。この場のサジェストクエリ［ｉＰｈｏｎｅ  ケース］についての評価値Ｓｃｏｒｅ（ｉＰｈｏｎｅ  ケース）は、以下のように算出される。
Ｓｃｏｒｅ（ｉＰｈｏｎｅ  ケース）＝０．５×０．１＋０．３×３＝０．９５
【００４７】
一方、サジェストクエリ［ｉＰｈｏｎｅ  ７］について、［６．サジェスト実績ＣＴＲ］が０．２、［１６．検索クエリで検索をした時の商品ヒット数］が２（＝ｌｏｇ１０１００）であったとする。この場のサジェストクエリ［ｉＰｈｏｎｅ  ７］についての評価値Ｓｃｏｒｅ（ｉＰｈｏｎｅ  ７）は、以下のように算出される。
Ｓｃｏｒｅ（ｉＰｈｏｎｅ  ７）＝０．５×０．２＋０．３×２＝０．７
【００４８】
上記のケースでは、Ｓｃｏｒｅ（ｉＰｈｏｎｅ  ケース）の方がＳｃｏｒｅ（ｉＰｈｏｎｅ  ７）よりも高い値となっている。このため、順位付け部１３０は、サジェストクエリ［ｉＰｈｏｎｅ  ケース］のランキングをサジェストクエリ［ｉＰｈｏｎｅ  ７］のランキングよりも高くする。
【００４９】
本出願の出願人は、単に検索クエリの頻度順で並べられたサジェストクエリのランキングと比較して、実施形態の手法により各種の指標値が有意に向上したことを確認した。指標値には、平均サジェストＣＴＲ、平均サジェストＭＲＲ（mean Reciprocal Rank）などがある。
【００５０】
以上説明した実施形態の情報処理装置、情報処理方法、およびプログラムによれば、電子店舗において入力されたクエリに基づいて提示されるサジェストクエリの集合であって、正例、負例の区別がなされたサジェストクエリの集合に基づいて、サジェストクエリの素性の重みを学習し、学習された素性の重みに基づいて、サジェストクエリを順位付けすることにより、より適切にサジェストクエリを順位付けすることができる。
【００５１】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００５２】
１０  端末装置
２０  電子店舗サーバ
２２  ログ情報
１００  ランキング管理装置（情報処理装置）
１１０  情報管理部
１２０  学習部
１３０  順位付け部
１５０  記憶部
１５２  ランキングデータ
１５４  学習用データ
１５６  重みデータ
【図１】
2018097560.tif 000003
【図２】
2018097560.tif 000004
【図３】
2018097560.tif 000005
【図４】
2018097560.tif 000006