以下に、本願に係る選択装置、選択方法および選択プログラムを実施するための形態(以下、「実施形態」と記載する。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る選択装置、選択方法および選択プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
[実施形態]
〔1.情報配信装置の一例〕
まず、図1を用いて、情報配信装置が実行する生成処理および選択処理の一例について説明する。図1は、実施形態に係る情報配信装置が実行する生成処理および選択処理の一例を示す図である。
情報配信装置10は、インターネット等の所定のネットワークNを介して、利用者U01が使用する管理サーバ100および利用者U01が利用する利用者端末200と通信可能な情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。なお、情報配信装置10は、ネットワークNを介して、任意の数の管理サーバ100や任意の数の利用者端末200と通信可能であってもよい。また、情報配信装置10は、管理サーバ100や利用者端末200以外にも、任意のサービスを管理もしくは提供するサーバ装置と通信可能であってもよい。
管理サーバ100は、電子商取引に関する各種サービスを提供する情報処理装置であり、サーバ装置やクラウドシステム等により実現される。例えば、管理サーバ100は、任意の商品やサービス(以下、「取引対象」と記載する。)の提供を販売する電子商店街のサービスを利用者U01に対して提供する。なお、管理サーバ100は、オークションに関するサービスを提供するサーバであってもよい。
利用者端末200は、スマートフォンやタブレット等のスマートデバイスであり、3G(3rd Generation)やLTE(Long Term Evolution)等の無線通信網を介して任意のサーバ装置と通信を行うことができる携帯端末装置である。なお、利用者端末200は、スマートデバイスのみならず、デスクトップPC(Personal Computer)やノートPC等の情報処理装置であってもよい。
例えば、管理サーバ100は、利用者端末200からの要求、すなわち、利用者U01の操作に応じて、取引対象に関する各種の情報を利用者端末200へと配信する。例えば
管理サーバ100は、利用者端末200から検索クエリを受付けると、検索クエリとの関連性が所定の閾値よりも高い取引対象を検索する。そして、管理サーバ100は、検索した取引対象の詳細な説明や販売を行うウェブコンテンツへのリンクが設定されたコンテンツであって、取引対象の写真や価格を示す取引対象コンテンツを配置したコンテンツを検索結果として生成し、生成した検索結果を利用者端末200へと配信する。
なお、以下の説明では、取引対象の検索に関連して情報配信装置10が実行する処理について説明する。これに伴い、以下の説明では、管理サーバ100が取引対象とする商品やサービス等を「検索対象」と総称する。
〔2.従来技術について〕
ここで、従来技術では、利用者が入力した検索クエリに対応する検索結果や、検索クエリに対応するジャンルの検索結果が表示されるに過ぎず、利用者がどのような検索クエリを入力すれば良いか解らない場合に、検索を補助することができなかった。
例えば、従来技術では、利用者がブランドAの長財布であって、皮製の型押しがなされた素材の財布が欲しい場合に、利用者が検索対象の名称や「ブランドA」、「長財布」、「皮製」、「型押し」といった属性を想起できず、「ブランドA」、「長財布」といった一部の属性のみを検索クエリとして入力した際に、利用者が所望する商品が掲載されたウェブページ以外にも、検索クエリに合致する検索対象が掲載されたウェブページを多く表示してしまう。この結果、従来技術では、利用者が所望する検索対象が掲載されたウェブページまで利用者を誘導させることができない。また、従来技術では、利用者が一部の検索クエリのみを入力した際に、関連する全ての検索対象を表示した場合や、絞り込みを行うためのチェックボックス等を表示した場合には、検索結果の絞り込みに手間がかかるため、ユーザビリティが悪化する。
そこで、入力された検索クエリに基づいて、検索クエリの候補を推定し、推定した検索クエリの候補を示す画像を表示するといった手法が考えられる。例えば、電子商店街において、検索対象には、検索対象の属性を示す分類情報が付与されている場合がある。このような場合において、従来技術では、検索対象に付与された分類情報の組み合わせを収集し、収集した全ての組み合わせについて、対応する検索対象の画像を取得する。また、従来技術では、利用者が検索クエリとして入力した分類情報を含む分類情報の組み合わせを検索クエリの候補として特定し、特定した検索クエリの候補に含まれる全ての分類情報と対応する画像を表示する。そして、従来技術では、利用者が画像を選択した場合は、画像と対応する検索クエリの候補に含まれる全ての分類情報を新たな検索クエリとする技術が考えられる。
しかしながら、電子商店街においては、検索対象に対して階層関係を有する分類情報が付与されている場合がある。このため、単純に分類情報の全組み合わせを収集した場合には、階層関係を有しない分類情報を含む検索クエリの候補を生成する恐れがある。
また、検索対象の画像は、検索対象の出品者によって登録される場合が多い。しかしながら、このような画像には、検索対象を適切に示す画像と適切に示さない画像とが混在する。例えば、検索対象の画像には、背景色により検索対象が視認しづらい画像や、価格や割引率等のテキストを含む画像、装飾がなされた画像、人物が写り込んだ画像等、検索対象そのものの概念を示す画像以外の画像が含まれる場合がある。
このような検索対象を適切に示さない画像は、検索対象の概念や検索対象に付与された分類情報の概念等といった検索クエリの候補を示す概念を適切に示すことができないと考えられる。このため、このような画像を表示した場合は、利用者の検索行為を適切に補助することができない恐れがある。
そこで、情報配信装置10は、以下の生成処理を実行することで、分類情報が有する階層関係を反映させた検索クエリの候補を生成するとともに、以下の選択処理を実行することで、生成した検索クエリの候補を示す適切な画像を選択する。以下、情報配信装置10が実行する処理を、生成処理と選択処理とに分けて説明する。
〔3.生成処理について〕
まず、情報配信装置10が実行する生成処理について説明する。例えば、情報配信装置10は、検索対象の分類を示す情報として階層関係を有する分類情報を記憶するデータベースを参照し、所定の分類情報を階層関係の根とする分類情報の組(以下、「構造化データ」と記載する。)を抽出する。そして、情報配信装置10は、抽出された構造化データに基づいて、利用者が所定の分類情報を検索クエリとして入力した際に提供する検索クエリの候補を生成する。
〔3−1.分類情報の組を抽出する処理について〕
例えば、情報配信装置10は、管理サーバ100が有するデータベースを参照し、データベースに登録されている分類情報であって、階層構造を有する分類情報を収集する。そして、情報配信装置10は、収集した分類情報から、いずれかの分類情報を選択し、選択した分類情報を階層関係の根とし、所定の分類情報から階層関係を辿ることで、選択した分類情報を階層関係の根とする分類情報の組である構造化データを抽出する。
例えば、図1に示す例では、管理サーバ100は、検索対象と、検索対象の分類を示す情報であって、階層関係を有する分類情報の組とを対応付けた検索対象データベース131を記憶している。より具体的には、管理サーバ100は、検索対象が属するカテゴリを示すカテゴリ情報や、検索対象のブランドや原材料、色等の各種属性を示すタグ情報とを分類情報として記憶する。
カテゴリ情報の一例をあげると、管理サーバ100は、検索対象がTシャツである場合、カテゴリ情報「ファッション」、カテゴリ情報「ファッション」の下位に属するカテゴリ情報「トップス」、およびカテゴリ情報「トップス」の下位に属するカテゴリ情報「Tシャツ」を含み、各カテゴリ情報の階層関係を示す情報を含む分類情報の組を記憶する。例えば、管理サーバ100は、「ファッション>トップス>Tシャツ」等といった分類情報の組を記憶する。
なお、以下の説明では、分類情報として、「カテゴリ#1」、「子カテゴリ#1」、「孫カテゴリ」といった概念的な値を用いるものとする。ここで、「子カテゴリ#1」とは、「カテゴリ#1」の1つ下位の階層に属するカテゴリであるものとし、「孫カテゴリ#1」とは、「子カテゴリ#1」の1つ下位の階層に属するカテゴリであるものとする。なお、管理サーバ100は、「孫カテゴリ#1」よりもさらに下位の階層に属するカテゴリを用いて、検索対象の管理を行ってもよい。
また、タグ情報の一例をあげると、管理サーバ100は、検索対象が赤色で綿製のTシャツである場合、タグ情報「赤色」およびタグ情報「綿製」を含む分類情報の組を記憶する。例えば、管理サーバ100は、検索対象#1に対し、「赤色_綿製」等といった取引対象の色や素材を示すタグ情報をカテゴリ情報とは個別に対応付けて記憶する。なお、管理サーバ100は、タグ情報をカテゴリ情報の階層関係中に組込まれる情報として記憶してもよい。
なお、以下の説明では、タグ情報として、「タグ#1A」や「タグ#2A」といった概念的な値を用いるものとする。また、取引対象の共通する属性を示す複数のタグ情報(例えば、ブランド名や素材を示す複数のタグ情報)を同じタググループに含まれるタグ情報とする。例えば、「タグ#1A」や「タグ#1B」は、「タググループ#1」に属するタグ情報であり、「タグ#2A」や「タグ#2B」は、「タググループ#2」に属するタグ情報であるものとする。
このように管理サーバ100が階層関係を有する分類情報の組と、検索対象とを対応付けて記憶している場合、情報配信装置10は、階層関係を有する分類情報を管理サーバ100から取得する(ステップS1)。すなわち、情報配信装置10は、検索対象データベース131を取得する。そして、情報配信装置10は、階層関係を辿り、ある分類情報と、その分類情報を根(ルート)とする分類情報または分類情報の組を含む構造化データを抽出する(ステップS2)。
例えば、情報配信装置10は、検索対象データベース131に登録されている分類情報の中から、分類情報を1つ選択し、選択した分類情報を含む分類情報の組を検索対象データベース131から特定する。例えば、情報配信装置10は、「カテゴリ#1」を選択した場合、「カテゴリ#1」の1つ下の階層に属するカテゴリを全て特定する。この結果、例えば、情報配信装置10は、「子カテゴリ#1」と「子カテゴリ#2」とを特定する。また、情報配信装置10は、「カテゴリ#1」とともに検索対象と対応付けられていたタグ情報を抽出し、取引対象の共通する属性を示すタグ情報をまとめたタググループを生成する。そして、情報配信装置10は、「カテゴリ#1」と、「カテゴリ#1」をルートとする分類情報や分類情報の組とを構造化データとして構造化データデータベース31に登録する。
例えば、情報配信装置10は、「カテゴリ#1」を根とするカテゴリとして、「子カテゴリ#1」と「子カテゴリ#2」とを特定した場合、「カテゴリ#1」と「子カテゴリ#1」との組、および「カテゴリ#1」と「子カテゴリ#2」との組を構造化データとして登録する。なお、情報配信装置10は、例えば、ある検索対象に「カテゴリ#1」と「子カテゴリ#1」と「孫カテゴリ#1」とが対応付けられており、他の検索対象に「カテゴリ#1」と「子カテゴリ#1」と「孫カテゴリ#2」とが対応付けられている場合、「カテゴリ#1」と「子カテゴリ#1」と「孫カテゴリ#1」との組を構造化データとして登録し、「カテゴリ#1」と「子カテゴリ#1」と「孫カテゴリ#2」との組を構造化データとして登録する。すなわち、情報配信装置10は、ある分類情報を根として選択し、選択した分類情報と、選択した分類情報の下位に属する分類情報または分類情報の組とを含む構造化データを生成する。
また、例えば、情報配信装置10は、「カテゴリ#1」と共に、共通する属性を示す「タグ#1A」や「タグ#1B」が検索対象に対応付けられている場合は、「カテゴリ#1」と「タグ#1A」や「タグ#1B」を示す「タググループ#1」とを対応付けた構造化データを生成する。なお、情報配信装置10は、「タググループ#1」に「タグ#1A」や「タグ#1B」が含まれる旨を示す情報を構造化データデータベース31に登録してもよく、「タググループ#1」に「タグ#1A」や「タグ#1B」が含まれる旨を示す情報を他のデータベースに登録して管理してもよい。
また、情報配信装置10は、例えば、「カテゴリ#1」および「子カテゴリ#1」のように、ある分類情報とその分類情報の下位に属する分類情報との組を根として選択し、選択した分類情報と、選択した分類情報の下位に属する分類情報または分類情報の組とを含む構造化データを生成する。また、情報配信装置10は、検索対象データベース131に登録されている全ての分類情報および分類情報の組について、上述した処理を再帰的に実行することで、階層構造を有する全ての分類情報の組を示す構造化データを生成する。すなわち、情報配信装置10は、階層関係を辿るようにして、選択した分類情報と、選択した分類情報の下位に属する分類情報または分類情報の組とを含む構造化データを検索対象データベース131から全て抽出する。
このようにして抽出された構造化データは、利用者U01が検索クエリを入力した際に、その検索クエリと続けて入力しうる検索クエリの候補となりうる。そこで、情報配信装置10は、生成した構造化データから、利用者U01が入力すると推定される検索クエリ(以下「発動クエリ」と記載する。)と、その発動クエリが入力された際に、利用者U01に対して提供する検索クエリの候補である候補との生成を行う(ステップS3)。
〔3−2.正規化について〕
ここで、情報配信装置10は、構造化データを生成する際に、情報の正規化等を行ってもよい。例えば、情報配信装置10は、根として選択した分類情報や、構造化データに含まれる分類情報のテキストについて、全角文字や半角文字の統一、大文字や小文字の統一等といった正規化処理を実行してもよい。また、情報配信装置10は、括弧、スペース、コロン、セミコロン、中点、ダッシュ、カラム等といった付加的記号の削除を行ってもよい。また、情報配信装置10は、括弧に囲まれている範囲を削除してもよい。また、情報配信装置10は、付加的記号が含まれる分類情報や、所定の文字列からなる分類情報については、構造化データの抽出元から除外してもよい。
〔3−3.検索クエリの候補を生成する処理について〕
続いて、クエリ候補を生成する処理の一例について説明する。例えば、構造化データとされた分類情報は、根とする分類情報が発動クエリととして入力された際に、検索クエリの候補に対応すると考えられる。そこで、情報配信装置10は、構造化データから発動クエリを選択するとともに、選択した発動クエリが入力された際に検索クエリの候補(以下、「クエリ候補」と総称する。)として利用者U01に提供する分類情報の組を生成する。
以下、情報配信装置10がクエリ候補を生成する処理の基本的な流れについて説明する。例えば、情報配信装置10は、構造化データを参照し、根となる分類情報または分類情報の組を選択する。例えば、情報配信装置10は、根となる分類情報「カテゴリ#1」を選択し、選択した分類情報を発動クエリとする。そして、情報配信装置10は、発動クエリとして選択した分類情報「カテゴリ#1」を根として含む構造化データを抽出し、抽出した構造化データに含まれる分類情報からなるクエリ候補を生成する。
例えば、情報配信装置10は、分類情報「カテゴリ#1」を根として含む構造化データに、「カテゴリ#1」と「子カテゴリ#1」とを含む構造化データが存在する場合は、「カテゴリ#1」を発動クエリとし、「カテゴリ#1_子カテゴリ#1」というように、構造化データに含まれる分類情報の間に、空白等といった検索処理における演算子「and」を示す記号や文字を加えた文字列をクエリ候補として生成する。
また、情報配信装置10は、例えば、「カテゴリ#1」と「タググループ#1」とを含む構造化データが存在する場合は、「タググループ#1」に含まれる全てのタグ「タグ#1A」および「タグ#1B」を特定する。そして、情報配信装置10は、「カテゴリ#1」を発動クエリとし、「カテゴリ#1_タグ#1A」、「カテゴリ#1_タグ#1B」というように、発動クエリと、タググループに含まれるタグとの組合せごとに、クエリ候補を生成する。そして、情報配信装置10は、発動クエリとクエリ候補とを対応付けてクエリ候補データベース32に登録する。
〔3−4.クエリ候補の元となる構造化データを選択する処理について〕
ここで、検索対象データベース131から抽出した全ての構造化データからクエリ候補を生成した場合、利用者U01が選択する可能性が低いクエリ候補が含まれる恐れがある。この結果、利用者U01の検索意図を反映していないクエリ候補を提供してしまい、利用者U01の検索を適切に誘導できなくなる恐れがある。そこで、情報配信装置10は、構造化データの中から、利用者U01が選択する可能性が高いクエリ候補の元となる構造化データを選択する処理、すなわち、適切な構造化データを選択する処理を実行する。
例えば、情報配信装置10は、構造化データからクエリ候補を生成し、生成したクエリ候補を入力した際に検索結果として出力される検索対象、すなわち、生成したクエリ候補が分類情報として対応付けられた検索対象を構造化データと対応する検索対象として特定する。そして、情報配信装置10は、特定した検索対象が利用者によって選択された数を計数し、計数した数が所定の条件を満たす組を選択する。また、例えば、情報配信装置10は、構造化データと対応する検索対象の数を計数し、計数した数が所定の条件を満たす分類情報の組を選択する。
例えば、情報配信装置10は、構造化データデータベース31を参照し、発動クエリを1つ選択する。また、情報配信装置10は、選択した発動クエリと対応する構造化データを全て抽出する。そして、情報配信装置10は、抽出した構造化データと対応する検索対象を利用者が選択した回数を、抽出した構造化データごとに管理サーバ100から取得する。例えば、情報配信装置10は、各検索対象の説明や写真を利用者が選択した回数や、検索対象の詳細な説明や販売を行うウェブコンテンツを配信した回数等を取得する。なお、情報配信装置10は、検索対象の販売数等を利用者が選択した回数として収集してもよい。
そして、情報配信装置10は、利用者により選択された回数が所定の条件を満たす構造化データを選択する。例えば、情報配信装置10は、利用者により選択された回数が多い方から順に所定の数の構造化データを選択してもよく、利用者により選択された回数が所定の閾値を超える構造化データを選択する。すなわち、情報配信装置10は、対応する検索対象を利用者が選択した回数に基づいて、検索クエリの候補の元となる構造化データの絞り込みを行う。
また、情報配信装置10は、絞り込み後の構造化データを、発動クエリの1階層下の分類情報の種別に応じてグループ分けする。より具体的には、情報配信装置10は、1階層下の分類情報がカテゴリ情報であるか、タグ情報であるかに応じてグループ分けを行う。また、情報配信装置10は、タグ情報がどのタググループに属するかに応じてもグループ分けを行う。
例えば、絞り込み後の構造化データとして、「カテゴリ#1」と「子カテゴリ#1」の組、「カテゴリ#1」と「子カテゴリ#2」の組、「カテゴリ#1」と「タグ#1A」の組、「カテゴリ#1」と「タグ#1B」の組、「カテゴリ#1」と「タグ#2A」の組、および「カテゴリ#1」と「タグ#2B」の組が存在するものとする。このような場合、情報配信装置10は、「カテゴリ#1」と「子カテゴリ#1」の組と、「カテゴリ#1」と「子カテゴリ#2」の組とを、カテゴリ情報と対応するグループに振り分ける。また、情報配信装置10は、「カテゴリ#1」と「タグ#1A」の組と、「カテゴリ#1」と「タグ#1B」の組とを、タググループ#1と対応するグループに振り分ける。また、情報配信装置10は、「カテゴリ#1」と「タグ#2A」の組と、「カテゴリ#1」と「タグ#2B」の組とを、タググループ#2と対応するグループに振り分ける。
なお、情報配信装置10は、発動クエリの1階層下の分類情報がカテゴリ情報であるクエリ候補を、そのカテゴリ情報が示す種別と対応するグループに振り分けてもよい。すなわち、情報配信装置10は、発動クエリの1階層下の分類情報がカテゴリ情報であるクエリ候補を、カテゴリ情報の種別と対応するグループに対してさらに振り分けを行ってもよい。
例えば、分類情報「電化製品」の1階層下の分類情報として、「冷蔵庫」や「洗濯機」等といった家電装置を示す分類情報と、「デスクトップ型PC」や「ノート型PC」等といったPC関連装置を示す分類情報とが存在する場合がある。このような場合、情報配信装置10は、分類情報「電化製品」と分類情報「冷蔵庫」との組と、分類情報「電化製品」と分類情報「洗濯機」との組とを、家電装置と対応するグループに振り分けてもよい。また、情報配信装置10は、分類情報「電化製品」と分類情報「デスクトップ型PC」との組と、分類情報「電化製品」と分類情報「ノード型PC」との組とを、PC関連装置と対応するグループに振り分けてもよい。
続いて、情報配信装置10は、各グループに振り分けられた構造化データの切り口を揃える。ここで、切り口とは、同一グループに振り分けられた構造化データについて、発動クエリの1段階下の階層に属する分類情報の種別の共通性を示す情報である。例えば、情報配信装置10は、同一グループに振り分けられた構造化データと対応する取引対象が、同種の商品となるように、同一グループに振り分けられた構造化データの取捨選択を行う。
なお、このような切り口の設定については、任意の条件が採用可能である。例えば、情報配信装置10は、同一グループに振り分けられた構造化データから生成されたクエリ候補について、後述する選択処理により対応する検索対象の画像をそれぞれ選択する。そして、情報配信装置10は、いずれかのクエリ候補について、検索対象の画像を選択することができなかった場合、すなわち、適切な画像が存在しなかった場合は、そのクエリ候補を提供対象から削除してもよい。また、情報配信装置10は、いずれかのクエリ候補について、検索対象の画像を所定の数だけ選択することができなかった場合は、そのクエリ候補を提供対象から削除してもよい。
続いて、情報配信装置10は、各グループに振り分けられた構造化データからクエリ候補を生成する。例えば、情報配信装置10は、「カテゴリ#1」と「子カテゴリ#1」の組から「カテゴリ#1_子カテゴリ#1」といったクエリ候補を生成する。そして、情報配信装置10は、生成したクエリ候補と、発動クエリ(すなわち、クエリ候補の根となる分類情報または分類情報の組)と、クエリ候補の元となる構造化データを振り分けたグループを示す情報とを対応付けてクエリ候補データベース32に登録する。
ここで、上述したグループは、クエリ候補を表示する際の単位となる。例えば、上述した処理の結果、発動クエリ「カテゴリ#1」と対応するクエリ候補は、カテゴリ情報と対応するグループ、タググループ#1と対応するグループ、またタググループ#2と対応するグループのいずれかに分類されている。しかしながら、これらのクエリ候補を全て表示した場合には、利用者がクエリ候補を選択し辛くなる恐れがある。
そこで、情報配信装置10は、検索結果中に各グループと対応するタブを設定し、各タブに対して、対応するグループと対応するクエリ候補を配置する。例えば、情報配信装置10は、クエリ候補をカテゴリ情報と対応するグループ、取引対象のブランドを示すタググループ#1と対応するグループ、および取引対象の素材を示すタググループ#2と対応するグループのいずれかと対応付ける。このような場合、情報配信装置10は、後述する図2に示すように、検索結果中に各グループと対応する「カテゴリ」、「ブランド」、「素材」といったタブを設定する。そして、情報配信装置10は、各タブと対応するグループに振り分けられたクエリ候補を、各タブ中に配置する。この結果、利用者U01は、タブを選択することで、どのような観点から検索対象の検索を行うのかを容易に選択することができる。
なお、情報配信装置10は、分類情報または分類情報の組に含まれる分類情報のうち、所定の分類情報の下位に属する分類情報の文字列に、所定の分類情報の文字列が含まれている場合は、下位に属する分類情報に含まれる分類情報の文字列のみを検索クエリの候補とする。例えば、情報配信装置10は、上述した各処理の結果、発動クエリ「ソファ」に対して、分類情報「カウチソファ」を特定したものとする。このような場合、情報配信装置10は、クエリ候補「ソファ_カウチソファ」を生成せず、クエリ候補「カウチソファ」を生成する。そして、情報配信装置10は、発動クエリ「ソファ」とクエリ候補「カウチソファ」とを対応付けてクエリ候補データベース32に登録する。
続いて、情報配信装置10は、クエリ候補と、クエリ候補を示す画像であって、所定の分類情報を利用者が入力した際に表示され、利用者によって選択された際にクエリ候補を新たな検索クエリとする検索結果が表示される画像とを対応付けて、クエリ候補データベース32に登録する。
例えば、情報配信装置10は、発動クエリ「カテゴリ#1」に対し、クエリ候補「カテゴリ#1_子カテゴリ#1」を生成した場合、クエリ候補「カテゴリ#1_子カテゴリ#1」と対応する画像を管理サーバ100から取得する。また、情報配信装置10は、取得した画像に対し、検索クエリを「カテゴリ#1_子カテゴリ#1」とする検索結果へのリンクを設定する。そして、情報配信装置10は、リンクを設定した画像を、発動クエリ「カテゴリ#1」およびクエリ候補「カテゴリ#1_子カテゴリ#1」と対応付けてクエリ候補データベース32に登録する。
〔4.選択処理について〕
ここで、クエリ候補データベース32に登録された画像は、後述する配信処理により、クエリ候補を示す画像として表示される。しかしながら、このような画像を適切に選択しなかった場合は、利用者の検索行為を適切に補助することができない恐れがある。
そこで、情報配信装置10は、以下の選択処理を実行することで、生成した検索クエリの候補を示す適切な画像を選択する。例えば、情報配信装置10は、クエリ候補等の所定のキーワードと関連する画像を取得する。そして、情報配信装置10は、画像が所定の条件を満たすかを判定するモデルであってそれぞれ異なる条件を満たすかを判定する複数のモデルを用いて、取得された画像から所定のキーワードが入力された際に表示する画像である表示画像を選択する。
〔4−1.選択処理の一例について〕
例えば、情報配信装置10は、クエリ候補を生成した場合、生成したクエリ候補と対応する画像を管理サーバ100から取得する(ステップS4)。すなわち、情報配信装置10は、所定のキーワードと関連する商品またはサービスを示す画像を取得する。そして、情報配信装置10は、クエリ画像と対応する画像の中から、それぞれ異なる条件を判定する複数のモデルを用いて、クエリ候補として表示する表示画像を選択する(ステップS5)。すなわち、情報配信装置10は、クエリ候補を用いて検索した画像の中から、クエリ候補を示す画像として適切と考えられる画像を選択する。
すなわち、情報配信装置10は、クエリ候補に複数の分類情報が含まれる場合は、クエリ候補に含まれる全ての分類情報と関連する画像を取得する。そして、情報配信装置10は、クエリ候補のうち、いずれかの分類情報(例えば、発動クエリとなる分類情報)が検索クエリの候補として入力された際にクエリ候補として表示される画像であって、利用者により選択された際にクエリ候補に含まれる全ての分類情報が新たな検索クエリとされる画像を選択する。
例えば、図1に示す例では、情報配信装置10は、クエリ候補と関連する検索対象の画像を管理サーバ100から取得する。このような画像には、クエリ候補が示す検索対象の写真のみならず、「半額!」等といった文字や装飾等が含まれる場合がある。そこで、情報配信装置10は、画像がそれぞれ異なる条件を満たすかを判定する複数のモデルを用いて、取得された画像の中から文字や装飾等が含まれず、クエリ候補が示す検索対象の概念を適切に示す画像を選択する。そして、情報配信装置10は、選択した画像をクエリ候補を示す表示画像として、クエリ候補データベース32に登録する。
〔4−2.モデルの一例について〕
ここで、クエリ候補を示す画像として適切な画像は、その画像を選択した際に検索クエリとして入力されるキーワード(すなわち、クエリ候補)の概念を示し、他の概念を含まない画像が理想的であると考えられる。そこで、情報配信装置10は、複数のモデルを用いて、管理サーバ100から取得した画像から、クエリ候補と概念が共通する画像を表示画像として選択する。そして、情報配信装置10は、クエリ候補と対応する発動クエリが検索クエリとして入力された場合に、選択した画像をクエリ候補を示す画像であって、利用者が選択した際に、そのクエリ候補を検索クエリとする検索結果を表示する画像を配信する。
例えば、情報配信装置10は、クエリ候補に含まれる分類情報に色を示す分類情報が含まれている場合、かかる分類情報が示す色と同じ色の被写体が撮像された画像を表示するのが望ましい。そこで、情報配信装置10は、クエリ候補に含まれる分類情報が示す色と画像に撮像された被写体の色とが同じであるか否かを判定するモデルを用いて、クエリ候補が示す色と同じ色の被写体が撮像された画像を選択する。例えば、情報配信装置10は、クエリ候補に「赤色」等といったカテゴリ情報やタグ情報と対応するクエリが含まれる場合は、被写体の色が赤色であるか否かを判定するモデルを用いて、クエリ候補が示す色と同じ色の被写体が撮像された画像を選択する。
また、例えば、クエリ候補が示す検索対象が靴である場合、一足の靴のみが撮像された画像を表示するよりは、右足および左足の2足の靴が撮像された画像を表示するのがのぞましい。また、例えば、クエリ候補が示す検索対象が単品で取引されるものである場合は、複数の被写体が撮像された画像よりも、1つの被写体が撮像された画像を表示するのが望ましい。そこで、情報配信装置10は、モデルとして、被写体が所定の数だけ撮像されているか否かを判定するモデルを用いて、画像を選択する。より具体的には、情報配信装置10は、被写体が取引される単位の数だけ撮像されているか否かを判定するモデルを用いて、画像を選択する。
また、例えば、検索クエリとして表示される画像は、取引対象が視認しやすい画像であることが望ましい。そこで、情報配信装置10は、モデルとして、画像の背景が所定の条件を満たすかを判定するモデルや、画像における被写体の大きさを判定するモデルを用いて、表示画像の選択を行う。例えば、情報配信装置10は、画像の背景が白色や灰色等の所定の色彩であるか、単色で構成されているか等を判定するモデルや、画像のうち被写体が示す割合が所定の閾値を超えるかを判定するモデルを用いて、表示画像の選択を行う。また、検索クエリとして表示される画像は、数の概念を除外するため、取引対象が単品で撮像されている画像であることが望ましい。そこで、情報配信装置10は、モデルとして、画像に写っている被写体等が単数であるかを判定するモデルを用いて、表示画像の選択を行う。
また、検索クエリとして表示される画像は、取引対象の概念を示すために、人物が撮像されていないことが望ましい。また、検索クエリとして表示される画像に人物や人物の顔等が含まれる場合、肖像権が問題となる恐れがある。そこで、情報配信装置10は、モデルとして、画像に人物が写っているかを判定するモデルを用いて、表示画像の選択を行う。また、情報配信装置10は、画像に人物の顔が写っているかを判定するモデルを用いて、表示画像の選択を行う。
また、検索クエリとして表示される画像は、取引対象の概念を示すために、文字が含まれていないことが望ましく、また、装飾が施されていないことが望ましい。そこで、情報配信装置10は、画像に文字が含まれているかを判定するモデルや、画像に装飾が施されているかを判定するモデルを用いて、表示画像の選択を行う。
なお、情報配信装置10は、DNN(Deep Neural Network)等の深層学習を行ったモデルや、SVM(Support Vector Machine)等、任意の学習技術を用いて条件の学習が行われたモデルを用いて、画像が所定の条件を満たすか否かを判定してもい。なお、以下の説明では情報配信装置10は、所定の条件を満たす画像の特徴を深層学習したモデルであって、それぞれ異なる条件を満たす画像の特徴を深層学習した複数のモデルを用いて、画像を選択する処理の一例について説明する。
〔4−3.モデルのバリエーションについて〕
また、なお、情報配信装置10は、上述したモデルのうち、一部のモデルのみを用いてもよく、他のモデルを用いて、表示画像の選択を行ってもよい。例えば、取得した画像にクエリ候補と関連しない被写体が撮像されている場合には、利用者の検索を適切に補助することができない。そこで、情報配信装置10は、モデルとして、画像に写っている被写体が所定のキーワード、すなわち、クエリ候補と関連するかを判定するモデルを用いて、表示画像を選択してもよい。
また、情報配信装置10は、クエリ候補に検索対象の大きさ等の属性を示す分類情報が含まれる場合は、このような分類情報が示す属性と同じ属性の被写体が画像に撮像されているかを判定するモデルを用いて、表示画像の選択を行ってもよい。
また、例えば、検索対象となる商品が白色家電である場合、背景の色彩が白色であると、検索対象が視認しづらくなる恐れがある。そこで、情報配信装置10は、所定のキーワードと関連する検索対象の属性に応じた条件を満たすかを判定するモデルを用いて、表示画像を選択してもよい。例えば、情報配信装置10、クエリ候補と関連する検索対象のカテゴリを特定し、特定したカテゴリの特性に応じた条件を満たすか否かを判定するモデルを用いて、表示画像を選択してもよい。より具体的な例を挙げると、情報配信装置10は、クエリ候補と関連する検索対象が、冷蔵庫や洗濯機等といった白色を主体とする色彩の商品である場合は、背景が白色以外の色彩であるかを判定するモデルを用いて、表示画像を選択してもよい。
ここで、情報配信装置10は、画像が所定の条件を満たす度合いを示す値を出力する複数のモデルを用いて、取得された画像が各条件を満たす度合いを示す値をそれぞれ算出し、算出した各値が所定の閾値を超える画像を表示画像として選択する。すなわち、情報配信装置10は、画像が条件を満たす確度を示すスコアを算出する複数のモデルを用いて、表示画像の選択を行う。より具体的には、情報配信装置10は、画像を各モデルに入力し、各モデルが出力したスコアがそれぞれ所定の閾値を超えているか否かを判定する。そして、情報配信装置10は、全てのスコアが所定の閾値を超えている場合は、その画像を表示画像とし、いずれかのスコアが所定の閾値よりも小さい場合は、その画像を表示画像から除外する。
〔4−4.選択する画像について〕
ここで、情報配信装置10は、ある発動クエリに対して複数のクエリ候補が存在する場合、その発動クエリが検索クエリとして入力された際に、各クエリ候補を示す表示画像を提供することとなる。しかしながら、提供される複数の表示画像の見た目が乖離する場合には、各表示画像が有する情報、すなわち、クエリ候補の情報を利用者に対して適切に提供することができない恐れがある。
そこで、情報配信装置10は、共通する分類情報を含む複数のクエリ候補のそれぞれについて表示画像を選択する場合は、クエリ候補のそれぞれについて外観が類似する画像を選択してもよい。例えば、情報配信装置10は、取引対象となる商品が平置きされている画像等、取引対象が同様の形態で撮像された画像をクエリ候補のそれぞれについて選択してもよい。
また、例えば、情報配信装置10は、クエリ候補が示す検索対象のカテゴリに応じて、使用するモデルを変更してもよく、表示画像として採用する画像について、モデルが算出したスコアの閾値を変更してもよい。より具体的な例を挙げると、情報配信装置10は、クエリ対象が示す検索対象がジャケット等の衣類である場合は、同じ様なポーズを取る人物が取引対象となる衣類を着用している画像を選択してもよい。
すなわち、情報配信装置10は、クエリ候補が示す検索対象の概念を利用者に対して適切に提供する画像を選択することができるのであれば、任意の条件を判定するモデルを用いて、表示画像の選択を行ってよい。
〔5.配信処理について〕
続いて、クエリ候補を示す画像を配信する配信処理について説明する。まず、利用者U01が使用する利用者端末200は、利用者U01が入力した検索クエリを管理サーバ100へと送信する(ステップS6)。このような場合、管理サーバ100は、利用者端末200に対し、利用者U01が入力した検索クエリに対応する検索結果を配信する(ステップS7)。
ここで、管理サーバ100が配信する検索結果には、情報配信装置10に対してクエリ候補の配信を要求し、情報配信装置10からクエリ候補として配信される画像を検索結果中に配置して表示する旨の指示が含まれている。このような指示は、例えば、Java Script(登録商標)等の技術により実現可能である。そこで、利用者端末200は、利用者U01が入力した検索クエリとともに、クエリ候補の配信要求を情報配信装置10に対して要求する(ステップS8)。
このような場合、情報配信装置10は、クエリ候補データベース32に登録された発動クエリの中から、検索クエリと一致または関連する発動クエリを選択する。そして、情報配信装置10は、選択した発動クエリと対応付けられた画像、すなわち、選択した発動クエリと対応するクエリ候補を示す画像を利用者端末200へと配信する(ステップS9)。この結果、利用者端末200は、検索クエリと対応するクエリ候補を示す画像、すなわち、検索クエリが入力された際に、さらに入力される可能性が高い検索クエリを示す画像を表示することができる(ステップS10)。
〔5−1.配信処理の一例について〕
ここで、クエリ候補を示す画像には、その画像が示すクエリ候補を新たな検索クエリとする検索結果へのリンクが設定されている。このため、利用者端末200は、利用者U01がクエリ候補を示す画像を選択した場合は、選択した画像が示すクエリ候補を新たな検索クエリとする検索結果を管理サーバ100に対して要求する。このような場合、管理サーバ100は、新たな検索クエリに対する検索結果であって、新たな検索クエリに対応する新たなクエリ候補の配信を情報配信装置10に要求し、情報配信装置10から新たなクエリ候補として配信される画像を検索結果中に配置して表示する旨の指示を含む検索結果を配信する。この結果、利用者端末200は、利用者U01による検索対象の検索を画像で補助することができる。
例えば、図2は、実施形態に係る情報配信装置が利用者端末に表示させる画像の一例を示す図である。なお以下の説明では、クエリ候補「ファッション」に対して、グループ「カテゴリ」、「ブランド」、「素材」が設定されており、グループ「カテゴリ」には、クエリ候補「ファッション_トップス」、「ファッション_パンツ」、「ファッション_スカート」が振り分けられているものとする。
例えば、情報配信装置10は、クエリ候補「ファッション」が入力されると、グループ「カテゴリ」、「ブランド」、「素材」に対応するタブをそれぞれ設定する。また、情報配信装置10は、最初にグループ「カテゴリ」と対応するタブが選択された状態でクエリ候補の表示を行う場合、グループ「カテゴリ」に振り分けたクエリ候補「ファッション_トップス」、「ファッション_パンツ」、「ファッション_スカート」を特定する。
そして、情報配信装置10は、クエリ候補「ファッション_トップス」、「ファッション_パンツ」、「ファッション_スカート」について選択した画像を利用者端末200に配信する。この結果、情報配信装置10は、図2中の第1状態に示すように、検索クエリ「ファッション」の検索結果として、クエリ候補「ファッション_トップス」、「ファッション_パンツ」、「ファッション_スカート」のそれぞれを示す画像を利用者端末200に表示させる。また、情報配信装置10は、各画像とともに、クエリ候補に含まれる分類情報のうち最も下位の分類情報である「トップス」、「パンツ」、「スカート」を示すテキストが配置されたコンテンツを表示する。
ここで、利用者U01がクエリ候補「ファッション_トップス」を示す画像を選択した場合、利用者端末200は、クエリ候補「ファッション_トップス」を新たな検索クエリとする検索結果を取得する。また、情報配信装置10は、クエリ候補「ファッション_トップス」を発動クエリとするクエリ候補として、例えば、クエリ候補「ファッション_トップス_Tシャツ」、「ファッション_トップス_ブルゾン」、「ファッション_トップス_コート」を特定する。
そして、情報配信装置10は、クエリ候補「ファッション_トップス_Tシャツ」、「ファッション_トップス_ブルゾン」、「ファッション_トップス_コート」について選択した画像を利用者端末200に配信する。この結果、情報配信装置10は、図2中の第2状態に示すように、検索クエリ「ファッション_トップス」の検索結果として、クエリ候補「ファッション_トップス_Tシャツ」、「ファッション_トップス_ブルゾン」、「ファッション_トップス_コート」のそれぞれを示す画像とともに、クエリ候補に含まれる分類情報のうち最も下位の分類情報である「Tシャツ」、「ブルゾン」、「コート」を示すテキストが配置されたコンテンツを表示する。
また、利用者U01がクエリ候補「ファッション_トップス_Tシャツ」を示す画像を選択した場合、利用者端末200は、クエリ候補「ファッション_トップス_Tシャツ」を新たな検索クエリとする検索結果を取得する。一方、情報配信装置10は、上述した生成処理により、発動クエリ「ファッション_トップス_Tシャツ」について生成したクエリ候補「ファッション_トップス_Tシャツ_黒」、「ファッション_トップス_Tシャツ_白」、「ファッション_トップス_Tシャツ_赤」を特定する。
そして、情報配信装置10は、上述した選択処理により、クエリ候補「ファッション_トップス_Tシャツ_黒」、「ファッション_トップス_Tシャツ_白」、「ファッション_トップス_Tシャツ_赤」について選択した画像を利用者端末200に配信する。この結果、情報配信装置10は、図2中の第3状態に示すように、検索クエリ「ファッション_トップス_Tシャツ」の検索結果として、クエリ候補「ファッション_トップス_Tシャツ_黒」、「ファッション_トップス_Tシャツ_白」、「ファッション_トップス_Tシャツ_赤」のそれぞれを示す画像とともに、クエリ候補に含まれる分類情報のうち最も下位の分類情報である「黒」、「白」、「赤」を示すテキストが配置されたコンテンツを表示する。
〔5−2.配信処理のバリエーションについて〕
ここで、情報配信装置10は、クエリ候補を示す画像を複数配信する場合、任意のリスティング技術を用いて、画像が配置される順番を設定してよい。例えば、情報配信装置10は、クエリ候補を示す画像ごとに、利用者が選択した回数を選択履歴として保持する。そして、情報配信装置10は、クエリ候補を示す画像を配信する場合は、配信対象となる画像を利用者が選択した回数に応じた順に配置して表示するよう利用者端末200に指示してもよい。例えば、情報配信装置10は、利用者が選択した回数が多い順に、画像を画面左側から並べるように利用者端末200に指示してもよい。
また、情報配信装置10は、利用者による選択回数が所定の閾値を超える画像のみを配信対象としてもよい。例えば、情報配信装置10は、所定の時間間隔で、同じ切り口に基づいて生成したクエリ候補を特定し、特定した各クエリ候補を示す画像が選択された回数を特定し、特定した回数が所定の閾値を下回る場合は、このようなクエリ候補を示す画像を配信対象から除外してもよい。
〔6.管理サーバ100の構成〕
以下、上記した管理サーバ100が有する機能構成の一例について説明する。図3は、実施形態に係る管理サーバの構成例を示す図である。図3に示すように、管理サーバ100は、通信部120、記憶部130、および制御部140を有する。
通信部120は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部120は、ネットワークNと有線または無線で接続され、情報配信装置10や利用者端末200との間で情報の送受信を行う。
記憶部130は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部130は、検索対象データベース131を記憶する。
検索対象データベース131には、検索対象の分類情報が登録されている。例えば、図4は、実施形態に係る検索対象データベースに登録される情報の一例を示す図である。図4に示す例では、検索対象データベース131には、「検索対象」、「画像」および「分類情報」等の項目が登録される。なお、検索対象データベース131には、図4に示す情報以外にも、検索対象に関する任意の情報が登録されている。
ここで、「検索対象」とは、取引対象となる商品やサービス等といった取引対象を示す識別子である。また、「画像」とは、対応付けられた「検索対象」が示す検索対象の画像である。また、「分類情報」とは、対応付けられた「検索対象」のカテゴリや属性等を示す分類情報であって、階層関係を有する分類情報である。例えば、検索対象データベース131は、分類情報として、検索対象が属するカテゴリを示すカテゴリ情報や、検索対象の属性を示すタグ情報を記憶する。
例えば、図4に示す例では、検索対象「検索対象#1」、画像「画像#1」、分類情報「ファッション>トップス」等という情報が登録されている。このような情報は、検索対象「検索対象#1」が示す検索対象の画像が画像「画像#1」であり、検索対象「検索対象#1」が示す検索対象の分類が分類情報「ファッション>トップス」で示される分類である旨を示す。なお、図4に示す例では「検索対象#1」や「画像#1」といった概念的な値について記載したが、実際には、検索対象を示す識別子の文字列や画像データ等が登録される。また、検索対象データベース131には、図4に示す情報以外にも、例えば、各検索対象に関するコンテンツが選択された回数や閲覧された回数、検索対象が購入された回数等、検索対象に関する各種の情報が登録されているものとする。
図3に戻り、説明を続ける。制御部140は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、情報配信装置10内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部140は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
図3に示すように、制御部140は、受付部141、検索部142、および検索結果配信部143を有する。受付部141は、利用者端末200から、検索クエリを受付ける。例えば、受付部141は、検索対象の検索クエリを受付けるウェブコンテンツを利用者端末200に配信し、利用者端末200から利用者U01が入力した検索クエリを受付ける。
検索部142は、検索クエリに対応する検索対象の検索を行う。例えば、検索部142は、受付部141が受け付けた検索クエリと対応する検索対象を検索対象データベース131から検索する。そして、検索部142は、検索クエリと対応する検索対象の画像や説明文等を含むコンテンツを並べたウェブコンテンツである検索結果を生成する。
ここで、検索結果には、所定の領域が設定されており、このような所定の領域にクエリ候補を配置する処理を利用者端末200に実行させるための指示が含まれている。このような検索結果の配信を受付けた場合、利用者端末200は、検索クエリを情報配信装置10に送信するとともに、情報配信装置10から受信したクエリ候補を所定の領域に配置して表示する。なお、検索部142は、所定の領域においてクエリ候補となる複数の画像をスクロール可能に配置したり、カルーセル表示したりするための検索結果や指示を生成してもよい。また、検索部142は、任意のリスティング技術を用いて、検索対象のコンテンツの順番を変更してもよく、検索結果中に任意のマッチング技術を用いて選択した広告を配置してもよい。
検索結果配信部143は、検索結果を利用者端末200へと配信する。例えば、検索結果配信部143は、検索部142が生成した検索結果を受付けると、受付けた検索結果を利用者端末200へと配信する。
〔7.情報配信装置10の構成〕
以下、上記した情報配信装置10が有する機能構成の一例について説明する。図5は、実施形態に係る情報配信装置の構成例を示す図である。図5に示すように、情報配信装置10は、通信部20、記憶部30、および制御部40を有する。
通信部20は、例えば、NIC等によって実現される。そして、通信部20は、ネットワークNと有線または無線で接続され、管理サーバ100や利用者端末200との間で情報の送受信を行う。
記憶部30は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、構造化データデータベース31、クエリ候補データベース32、およびモデルデータベース33を記憶する。
構造化データデータベース31には、構造化データが対応付けて登録されている。例えば、図6は、実施形態に係る構造化データデータベースに登録される情報の一例を示す図である。図6に示す例では、構造化データデータベース31には、構造化データの基準となる分類情報、すなわち、根となる分類情報と、根となる分類情報の下位に属する分類情報との組が登録されている。
例えば、図6に示す例では、構造化データデータベース31には、根となる分類情報「カテゴリ#1」と下位に属する分類情報「子カテゴリ#1」とが対応付けられた構造化データが登録されている。また、構造化データデータベース31には、根となる分類情報「カテゴリ#1」と下位に属する分類情報「タググループ#1(タグ#1A、タグ#1B・・・)」とが対応付けられた構造化データが登録されている。ここで、分類情報「タググループ#1(タグ#1A、タグ#1B・・・)」は、タグ情報「タググループ#1」に、タグ情報「タグ#1A」、「タグ#1B」が含まれている旨を示す情報である。なお、情報配信装置10は、例えば、「タググループ#1」とタグ情報「タグ#1A」、「タグ#1B」を対応付けられたデータベースを個別に管理することで、タグ情報「タググループ#1」に、タグ情報「タグ#1A」、「タグ#1B」が含まれている旨を記憶してもよい。
図5に戻り、説明を続ける。クエリ候補データベース32には、クエリ候補となる分類情報の組や分類情報の組を示す画像が登録されている。例えば、図7は、実施形態に係るクエリ候補データベースに登録される情報の一例を示す図である。図7に示す例では、クエリ候補データベース32には、「発動クエリ」、「グループ」、「クエリ候補」および「表示画像」等の項目が登録される。なお、図7に示す情報以外にも、クエリ候補データベース32には、クエリ候補として表示された表示画像が利用者によって選択された回数等、任意の情報が登録されていもよい。
ここで、「グループ」とは、対応付けられたクエリ候補のグループを識別するための情報であり、より詳細には、クエリ候補の元となる構造化データを分類したグループである。すなわち、同一の「グループ」に対応付けられた各クエリ候補は、根となる分類情報よりも下位の分類情報が共通する種別の分類情報である構造化データから生成されたクエリ候補である。
また、「クエリ候補」とは、対応付けられた「発動クエリ」となる分類情報や、このような分類情報に関連する検索クエリが入力された際に、利用者に対して提供される検索クエリの候補である。「表示画像」は、対応付けられた「クエリ候補」を示す画像であって、選択された際に対応付けられた「クエリ候補」を新たな検索クエリとする検索結果へのリンクが設定された画像である。
例えば、図7に示す例では、発動クエリ「カテゴリ#1」にグループ「グループ#1」、「グループ#2」が対応付けられている。また、グループ「グループ#1」には、クエリ候補「カテゴリ#1_子カテゴリ#1・・・」、「カテゴリ#1_子カテゴリ#2・・・」、表示画像「画像#1」、「画像#2」が対応付けられている。また、グループ「グループ#2」には、クエリ候補「カテゴリ#1_タグ#1A・・・」、「カテゴリ#1_タグ#1B・・・」が対応付けられている。
このような情報は、発動クエリ「カテゴリ#1」が入力された際に、各グループ「グループ#1」、「グループ#2」ごとに異なるタブが表示され、各タブに対して対応するグループに振り分けられた各クエリ候補が表示される旨を示す。例えば、グループ「グループ#1」と対応するタブには、クエリ候補「カテゴリ#1_子カテゴリ#1・・・」と対応する表示画像「画像#1」、およびクエリ候補「カテゴリ#1_子カテゴリ#2・・・」に対応する表示画像「画像#2」が配置される旨を示す。
図5に戻り、説明を続ける。モデルデータベース33には、表示画像を選択する際に用いるモデル、すなわち、画像がそれぞれ異なる条件を満たすかを判定する複数のモデルが登録されている。例えば、図8は、実施形態に係るモデルデータベースに登録される情報の一例を示す図である。図8に示す例では、モデルデータベース33には、「モデル」および「モデルデータ」といった項目が登録される。ここで、「モデル」は、モデルがどのような判定を行うモデルであるかを示す情報であり、「モデルデータ」とは、対応付けられたモデルのデータである。
例えば、図8に示す例では、モデルデータベース33には、背景が所定の条件を満たすかを判定する「背景判定モデル」、被写体が所定の数だけ撮像されているか否か判定する「数判定モデル」、人物が撮像されているかを判定する「人物判定モデル」、画像に文字が含まれるかを判定する「文字判定モデル」、画像に装飾が含まれるかを判定する「装飾判定モデル」、画像に人物の顔が含まれているかを判定する「顔判定モデル」、画像のうち被写体が占める領域を判定する「被写体領域判定モデル」、被写体がクエリ候補に含まれる各分類情報と関連するかや、被写体が所定の色であるか否か等といった被写体がクエリ候補に含まれる分類情報と同様の属性を有しているかを判定する「被写体条件判定モデル」などが登録されている。また、モデルデータベース33には、各モデルのモデルデータ「モデルデータ#1」〜「モデルデータ#8」が登録されている。
なお、図8に示す例では、「モデルデータ#1」などという概念的な値を記載したが、実際には、モデルデータベース33には、モデルを構成するデータが登録されることとなる。例えば、モデルがニューラルネットワークにより構成される場合、ニューラルネットワークのノードを示す情報や、ノード間の接続関係、ノード間の接続係数等を示すデータがモデルデータとして登録される。
図5に戻り、説明を続ける。制御部40は、コントローラであり、例えば、CPU、MPU等のプロセッサによって、情報配信装置10内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部40は、コントローラであり、例えば、ASIC等の集積回路により実現されてもよい。
図5に示すように、制御部40は、収集部41、抽出部42、生成部43、取得部44、選択部45、および提供部46を有する。なお、収集部41、抽出部42、および生成部43は、上述したクエリ候補を生成する生成処理を実行し、取得部44および選択部45は、上述した表示画像を選択する選択処理を実行する。また、提供部46は、上述した配信処理を実行する。
収集部41は、検索対象の分類情報を示す情報であって、階層関係を有する分類情報と検索対象とを対応付けて記憶する検索対象データベース131を参照し、分類情報を収集する。例えば、収集部41は、所定のタイミングで管理サーバ100にアクセスし、管理サーバ100の検索対象データベース131に含まれる分類情報を収集する。すなわち、収集部41は、検索対象が属するカテゴリを示すカテゴリ情報や、検索対象の属性を示すタグ情報を分類情報として記憶する検索対象データベース131から分類情報を収集する。
抽出部42は、所定の分類情報を階層関係の根とする分類情報の組、すなわち、構造化データを抽出する。より具体的には、抽出部42は、検索対象データベース131に登録されている分類情報を所定の分類情報として選択し、選択された分類情報を階層関係の根とする分類情報または分類情報の組を、所定の分類情報から階層関係を辿ることで抽出する。
例えば、抽出部42は、検索対象データベース131に登録されている分類情報の中から、根として選択していない分類情報または階層構造を有する分類情報の組を発動クエリとして選択する。ここで、抽出部42は、分類情報の組を根として選択する場合は、ある分類情報とその分類情報の下位に属する分類情報との組を発動クエリとして選択する。そして、抽出部42は、発動クエリの下位に属する分類情報を特定し、発動クエリと選択した分類情報とを構造化データとして抽出する。
例えば、抽出部42は、検索対象データベース131に登録されている分類情報の中から、発動クエリと一致する分類情報を特定し、特定した分類情報よりも1階層下位に属する分類情報を全て抽出する。ここで、分類情報がタググループである場合、そのタググループに属する全てのタグ情報についても特定する。そして、抽出部42は、発動クエリと、抽出した分類情報のそれぞれとの組合せを階層化データとする。
このように、抽出部42は、発動クエリを根とする階層関係を段階的に辿り、発動クエリとそのの下位に属する分類情報を全て構造化データとして抽出する。そして、抽出部42は、構造化データを構造化データデータベース31に登録する。また、抽出部42は、このような処理を再帰的に実行し、階層構造を有する全ての分類情報の組を構造化データとして抽出する。
なお、抽出部42は、構造化データを抽出する際に、各種の正規化処理を合わせて実行してもよい。また、抽出部42は、構造化データとして、各分類情報を識別する識別子(例えば、「カテゴリ133」等といった分類情報がカテゴリ情報のうちどのカテゴリ情報であるかを示す識別子や、「タグ230」等といった分類情報がタグ情報のうちどのタグ情報であるかを示す識別子等)を構造化データデータベース31に登録してもよい。
生成部43は、抽出された構造化データに基づいて、利用者が発動クエリを検索クエリとして入力した際に提供するクエリ候補を生成する。より具体的には、生成部43は、抽出された構造化データから、クエリ候補を生成する。
ここで、生成部43は、構造化データのうち、所定の条件を満たす構造化データを選択し、選択した構造化データづいて、検索クエリ候補を生成する。例えば、生成部43は、抽出された構造化データと対応付けられた検索対象が利用者によって選択された数をそれぞれ計数し、構造化データの組のうち、計数した数が所定の条件を満たす構造化データを選択し、選択した構造化データに基づいて、クエリ候補を生成する。また、例えば、生成部43は、構造化データと対応付けられた検索対象の数をそれぞれ計数し、構造化データのうち、計数した数が所定の条件を満たす構造化データを選択し、選択した構造化データに基づいて、クエリ候補を生成する。
また、生成部43は、発動クエリの1階層下位に属する分類情報の共通性に基づいて、検索クエリの候補を利用者に提供する単位となる複数のグループに構造化データを振り分ける。例えば、静止絵部43は、構造化データに含まれる分類情報のうち、動クエリの1階層下位に属する分類情報がカテゴリ情報であるか、タグ情報であるか、どのタググループに属するタグ情報であるか等に応じて、構造化データを複数のグループに振り分ける。
続いて、生成部43は、各グループに振り分けられた構造化データからクエリ候補を生成する。例えば、生成部43は、構造化データに含まれる分類情報の文字列を結合した文字列を生成する。ここで、生成部43は、構造化データに含まれる分類情報のうち、発動クエリの下位に属する分類情報の文字列に、発動クエリとなる分類情報の文字列が含まれている場合は、構造化データに含まれる分類情報の文字列のみをクエリ候補とする。そして、生成部43は、発動クエリと、その発動クエリを含む構造化データを振り分けたグループと、その構造化データから生成したクエリ候補とを対応付けてクエリ候補データベース32に登録する。
例えば、生成部43は、構造化データデータベース31を参照し、根となる分類情報「カテゴリ#1」を発動クエリとして選択する。このような場合、生成部43は、分類情報「カテゴリ#1」と対応付けられた「子カテゴリ#1」、「子カテゴリ#2」、「タググループ#1」、「タググループ#2」を抽出する。また、生成部43は、「タググループ#1」に含まれる「タグ#1A」、「タグ#1B」、および、「タググループ#2」に含まれる「タグ#2A」、「タグ#2B」を抽出する。
この結果、生成部43は、分類情報「カテゴリ#1」に対し、抽出した「子カテゴリ#1」、「子カテゴリ#2」、「タググループ#1」、「タググループ#2」、「タグ#1A」、「タグ#1B」、「タグ#2A」、「タグ#2B」をそれぞれ対応づけた構造化データを特定する。続いて、生成部43は、発動クエリの1階層下位の分類情報の種別に基づいて、特定した構造化データをグループ分けする。
例えば、「子カテゴリ#1」、「子カテゴリ#2」は、カテゴリ情報である。そこで、生成部43は、分類情報「カテゴリ#1」に対し、抽出した「子カテゴリ#1」、「子カテゴリ#2」をそれぞれ対応付けた構造化データを、カテゴリ情報に対応する「グループ#1」に振り分ける。また、例えば、「タグ#1A」、「タグ#1B」は、タググループ#1に含まれるタグ情報である。そこで、生成部43は、分類情報「カテゴリ#1」に対し、抽出した「タグ#1A」、「タグ#1B」をそれぞれ対応付けた構造化データを、タググループ#1に対応する「グループ#2」に振り分ける。また、例えば、「タグ#2A」、「タグ#2B」は、タググループ#2に含まれるタグ情報である。そこで、生成部43は、分類情報「カテゴリ#1」に対し、抽出した「タグ#2A」、「タグ#2B」をそれぞれ対応付けた構造化データを、タググループ#2に対応する「グループ#3」に振り分ける。
また、生成部43は、特定した構造化データのうち、所定の条件を満たす構造化データを選択する。例えば、生成部43は、抽出した構造化データごとに、その構造化データを含む分類情報と対応付けられた検索対象が利用者によって選択された数を管理サーバ100に問い合わせる。そして、生成部43は、抽出した構造化データのうち、その構造化データを含む分類情報と対応付けられた検索対象が利用者によって選択された数が所定の閾値以下となる構造化データをクエリ候補の生成対象から除外する。
ここで、生成部43は、各グループに分類した構造化データが切り口に関する所定の条件を満たすか否かを判定し、満たさないと判定した構造化データをクエリ候補の生成対象から除外する。例えば、生成部43は、後述する選択部45によって、各グループに分類した構造化データと対応する取引対象の画像が選択されなかった場合は、かかる構造化データをクエリ候補の生成対象から除外する。なお、このような切り口に関する所定の条件は、同一グループ内に振り分けられた構造化データの共通性に関連するものであれば、任意の条件が採用可能である。
そして、生成部43は、各グループに分類した構造化データからクエリ候補を生成する。例えば、生成部43は、構造化データに含まれる分類情報のテキストを並べたテキストをクエリ候補として生成する。また、生成部43は、発動クエリのテキストが、下位の分類情報のテキストに含まれている場合は、下位の分類情報のテキストのみを用いて、クエリ候補を生成する。そして、生成部43は、発動クエリと、生成したクエリ候補と、クエリ候補の元となる構造化データを振り分けたグループ、すなわち、クエリ候補と対応するグループとを対応付けてクエリ候補データベース32に登録する。
取得部44は、所定のキーワードと関連する画像を取得する。より具体的には、取得部44は、所定のキーワードと関連する商品またはサービスを示す画像を取得する。また、取得部44は、所定のキーワードとして、複数のキーワードを含むキーワードの組と関連する画像を取得する。
例えば、取得部44は、クエリ候補データベース32を参照し、表示画像が対応付けて登録されていないクエリ候補、すなわち、複数の分類情報を取得する。そして、取得部44は、取得した複数の分類情報と対応する検索対象の画像を取得する。例えば、取得部44は、管理サーバ100に対し、取得した複数の分類情報を検索クエリとして送信し、検索クエリに対応する取引対象の画像を取得する。
選択部45は、画像が所定の条件を満たすかを判定するモデルであってそれぞれ異なる条件を満たすかを判定する複数のモデルを用いて、取得された画像から所定のキーワード、すなわち、クエリ候補が入力された際に表示する画像である表示画像を選択する。具体的には、選択部45は、複数のモデルを用いて、取得された画像からクエリ候補と概念が共通する画像を表示画像として選択する。具体的には、選択部45は、表示画像として、クエリ候補に含まれる分類情報のうち、発動クエリとなる分類情報が検索クエリの候補として入力された際にクエリ候補として表示される画像であって、利用者によって選択された際にクエリ候補に含まれる全ての分類情報が新たな検索クエリとされる画像を選択する。
例えば、選択部45は、モデルとして、画像が所定の条件を満たす度合いを示す値を出力する複数のモデル、すなわち、モデルデータベース33に登録された各モデルを用いて、取得された画像が各条件を満たす度合いを示す値をそれぞれ算出する。そして、選択部45は、算出した各値が所定の閾値を超える画像を表示画像として選択し、選択した表示画像を、クエリ候補を示す表示画像としてクエリ候補データベース32に登録する。すなわち、選択部45は、クエリ候補とクエリ候補を示す画像であって、発動クエリを利用者が入力した際に表示され、利用者によって選択された際にクエリ候補を新たな検索クエリとする検索結果が表示される表示画像とを対応付けて、クエリ候補データベース32に登録する。
なお、選択部45は、モデルとして、クエリ候補と関連する検索対象の属性に応じた条件を満たすかを判定するモデルを用いて、取得された画像から表示画像を選択してもよい。例えば、選択部45は、クエリ候補と関連する検索対象のカテゴリに応じて、表示画像として選択する画像について各モデルが出力する値の閾値を変更してもよい。例えば、選択部45は、クエリ候補と関連する検索対象が冷蔵庫等、本体が白色である確率が高いカテゴリに属する場合は、背景が白色であるか否かを判定するモデルが出力する値についての閾値を「0」に設定してもよい。
また、選択部45は、共通性を有する複数のクエリ候補のそれぞれについて、表示画像を選択する場合は、外観が類似する複数の画像を選択してもよい。例えば、選択部45は、同一の切り口と対応付けられた複数のクエリ候補について、表示画像を選択する場合は、モデルデータベース33に登録されたモデルを用いて、表示画像の候補となる複数の画像をクエリ候補ごとに選択する。そして、選択部45は、クエリ候補ごとに選択した複数の画像の外観をそれぞれ比較し、比較結果に基づいて、それぞれ類似する画像を各クエリ候補の表示画像として選択する。
提供部46は、発動クエリを検索クエリとする検索結果と共に、クエリ候補を利用者による選択回数に応じた順に配置して提供する。より具体的には、提供部46は、発動クエリを検索クエリとする検索結果と共に、クエリ候補のうち、利用者による選択回数が所定の閾値を超えるクエリ候補を、利用者による選択回数に応じた順に配置して提供する。
例えば、利用者端末200は、ある検索クエリの検索結果を管理サーバ100から受信すると、管理サーバ100から受信した指示に従い、検索クエリを情報配信装置10へと送信する。このような場合、提供部46は、検索クエリと一致する発動クエリまたは検索クエリと関連性が高い発動クエリをクエリ候補データベース32から特定する。すなわち、提供部46は、クエリ揺れを考慮して、検索クエリと対応する発動クエリを特定する。
続いて、提供部46は、特定した発動クエリと対応付けられたクエリ候補のグループごとにタブを設定し、各クエリ候補の表示画像を対応するグループのタブ中に配置する。例えば、提供部46は、選択したクエリ候補と対応付けられた表示画像に対し、選択したクエリ候補を新たな検索クエリとする検索結果へのリンクを設定し、リンクを設定した表示画像をタブに配置する。そして、提供部46は、各タブの情報を利用者端末200に配信する。
ここで、提供部46は、各表示画像が利用者によって選択された回数を収集する。そして、提供部46は、表示画像を配信する場合は、各表示画像がそれまでに選択された回数に応じた順序で表示されるように、利用者端末200に指示する。また、提供部46は、所定の時間間隔で、各表示画像が選択された回数を参照し、各表示画像のうち、選択された回数が所定の閾値を下回る表示画像を配信対象から除外する。
〔8.情報配信装置が実行する処理の流れの一例〕
続いて、図9〜図11を用いて、情報配信装置10が実行する処理の流れについて説明する。まず、図9を用いて、構造化データを抽出する処理の一例について説明する。図9は、実施形態に係る情報配信装置が構造化データを抽出する処理の流れの一例を示すフローチャートである。
例えば、情報配信装置10は、管理サーバ100が記憶する検索対象データベース131を参照し(ステップS101)、登録された分類情報の中から根となる分類情報を選択する(ステップS102)。そして、情報配信装置10は、分類情報の階層関係を辿ることで、選択した根となる分類情報と、その分類情報の下位に属する分類情報との組を根となる分類情報に対応する構造化データとして取得する(ステップS103)。そして、情報配信装置10は、構造化データを構造化データデータベース31に登録し(ステップS104)、処理を終了する。
次に、情報配信装置10が実行する処理のうち、クエリ候補を生成する処理の流れの一例について説明する。図10は、実施形態に係る情報配信装置がクエリ候補を生成する処理の流れの一例を示すフローチャートである。例えば、情報配信装置10は、構造化データデータベース31から根となる分類情報を発動クエリとして1つ選択し(ステップS201)、選択した発動クエリと対応する構造化データのうち、適切な構造化データを選択する(ステップS202)。例えば、情報配信装置10は、対応する検索対象の数が所定の条件を満たす構造化データや、取引対象の画像として適切な画像がある構造化データを選択する。そして、情報配信装置10は、選択した構造化データからクエリ候補の元となる構造化データを選択する(ステップS203)。
ここで、情報配信装置10は、発動クエリとなる分類情報のテキストが、選択された構造化データに含まれる分類情報のうち発動クエリとなる分類情報の一つ下位の分類情報に含まれているか否かを判定する(ステップS204)。そして、情報配信装置10は、含まれていると判定した場合は(ステップS204:Yes)、発動クエリを含まないクエリ候補を設定し(ステップS205)、含まれていないと判定した場合は(ステップS204:No)、発動クエリを含むクエリ候補を設定する(ステップS206)。
また、情報配信装置10は、クエリ候補に対応する表示画像を選択する選択処理を実行し(ステップS207)、選択した表示画像とクエリ候補とを対応付けてクエリ候補データベース32に登録し(ステップS208)、処理を終了する。
次に、情報配信装置10が実行する処理のうち、表示画像を選択する処理の流れの一例について説明する。図11は、実施形態に係る情報配信装置が表示画像を選択する処理の流れの一例を示すフローチャートである。なお、図11に示すステップS301〜S303の処理は、図10に示すステップS207の処理と対応する。
例えば、情報配信装置10は、クエリ候補と関連する取引対象の画像を取得する(ステップS301)。そして、情報配信装置10は、異なる条件を判定する複数のモデルを用いて、取得された画像から表示画像を選択し(ステップS302)、表示画像を登録対象として(ステップS303)、処理を終了する。
〔9.変形例〕
上記では、情報配信装置10による生成処理および選択処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、情報配信装置10が実行する生成処理および選択処理のバリエーションについて説明する。
〔9−1.検索処理について〕
上述した例では、情報配信装置10は、クエリ候補を示す画像として適切な画像を選択するため、異なる条件を判定する複数のモデルを用いて、表示画像を選択した。しかしながら、実施形態は、これに限定されるものではない。すなわち、上述した選択処理は、クエリ候補の画像を選択する処理以外にも、任意の画像を選択する際に適用可能である。例えば、情報配信装置10は、画像検索において検索クエリと関連する画像を取得し、異なる条件を判定する複数のモデルを用いて、取得した画像の中から検索結果に含める画像を選択してもよい。
〔9−2.検索対象について〕
上述した例では、情報配信装置10は、電子商取引の対象となる取引対象を検索対象とした。しかしながら、実施形態は、これに限定されるものではない。情報配信装置10は、ウィキ形式のウェブコンテンツ等、利用者が入力した検索クエリを用いて検索を行う対象となるものであり、階層構造を有する分類情報が紐づくものであるならば、任意の対象を検索対象とすることができる。
〔9−3.装置構成〕
情報配信装置10は、任意の数の利用者端末200と通信可能に接続されていてもよい。また、情報配信装置10は、利用者端末200と情報のやり取りを行うフロントエンドサーバと、入力項目を選択するバックエンドサーバとで実現されていてもよい。このような場合、フロントエンドサーバには、図5に示す提供部46が配置され、バックエンドサーバには、収集部41、抽出部42、生成部43、取得部44、および選択部45が配置される。なお、情報配信装置10は、例えば、収集部41、抽出部42、および生成部43を有し、上述した生成処理を実行する生成装置と、取得部44および選択部45を有し、上述した選択処理を実行する選択装置と、提供部46を有し、上述した配信処理を実行する配信装置とが協調して動作することで、実現されてもよい。
〔9−4.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、逆に、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔9−5.プログラム〕
また、上述した実施形態に係る情報配信装置10は、例えば図12に示すような構成のコンピュータ1000によって実現される。図12は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
例えば、コンピュータ1000が情報配信装置10として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部40の機能を実現する。
〔10.効果〕
上述したように、情報配信装置10は、クエリ情報等の所定のキーワードと関連する画像を取得する。そして、情報配信装置10は、画像が所定の条件を満たすかを判定するモデルであって、それぞれ異なる条件を満たすかを判定する複数のモデルを用いて、取得された画像から所定のキーワードが入力された際に表示する画像である表示画像を選択する。
例えば、情報配信装置10は、所定のキーワードと関連する商品またはサービスを示す画像を取得する。また、情報配信装置10は、複数のモデルを用いて、取得された画像から所定のキーワードと概念が共通する画像を表示画像として選択する。このため、情報配信装置10は、利用者に対して所定のキーワードを想起させる画像、すなわち、所定のキーワードを示す画像として利用者に提示する画像の選択精度を向上させることができる。
また、情報配信装置10は、モデルとして、所定のキーワードと関連する商品またはサービスの属性に応じた条件を満たすかを判定するモデルを用いて、取得された画像から表示画像を選択する。このため、情報配信装置10は、例えば、商品の属性に応じた背景色を有する画像を選択することができるので、所定のキーワードを示す画像としてより適切な画像を選択することができる。
また、情報配信装置10は、所定のキーワードとして、複数の分類情報からなるクエリ候補等の複数のキーワードを含むキーワードの組と関連する画像を取得する。そして、情報配信装置10は、キーワードの組に含まれるキーワードのうち、いずれかのキーワードが検索クエリとして入力された際にクエリ候補として表示される画像であって、利用者によって選択された際にキーワードの組に含まれる全てのキーワードが新たな検索クエリとされる画像を選択する。例えば、情報配信装置10は、クエリ候補に含まれる分類情報のうち、発動クエリとなる分類情報が検索クエリとして入力された際にクエリ候補として表示される画像であって、利用者によって選択された際にクエリ候補が新たな検索クエリとされる画像を選択する。このため、情報配信装置10は、利用者の検索を補助する際に適切な画像をクエリ候補として表示することができる。
また、情報配信装置10は、共通性を有する複数のキーワードの組のそれぞれについて、キーワードの組が入力された際に新たな検索クエリの候補として表示される画像を選択する場合は、外観が類似する複数の画像を選択する。例えば、情報配信装置10は、同じ切り口のクエリ候補の表示画像を選択する場合は、外観が類似する画像を選択する。このため、情報配信装置10は、利用者の検索を適切に補助する画像を表示画像として選択することができる。
また、情報配信装置10は、モデルとして、画像が所定の条件を満たす度合いを示す値を出力する複数のモデルを用いて、取得された画像が各条件を満たす度合いを示す値をそれぞれ算出し、算出した各値が所定の閾値を超える画像を表示画像として選択する。例えば、情報配信装置10は、モデルとして、画像の背景が所定の条件を満たすかを判定するモデル、画像の被写体が所定の数だけ撮像されているか否かを判定するモデル、画像に人物が写っているかを判定するモデル、画像に文字が含まれているかを判定するモデル、画像に装飾が施されているかを判定するモデル、画像に人物の顔が撮像されているかを判定するモデル、被写体が所定の色であるか否かを判定するモデル、または画像における被写体の大きさを判定するモデルの少なくともいずれか1つを用いて、表示画像を選択する。また、情報配信装置10は、モデルとして、画像に写っている被写体が所定のキーワードと関連するかを判定するモデルを用いて、表示画像を選択する。また、情報配信装置10は、モデルとして、画像に写る被写体が、所定のキーワードが示す属性と同様の属性を有しているかを判定するモデルを用いて、表示画像を選択する。
上述した各種モデルを用いた処理の結果、情報配信装置10は、所定のキーワードを示す画像として利用者に提示する画像の選択精度を向上させることができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、配信部は、配信手段や配信回路に読み替えることができる。