以下、本開示の実施形態について、図面を参照しつつ詳細に説明する。なお、この実施形態により本発明が限定されるものではない。1つまたは複数の実施形態の詳細は、以下の説明および図面に記載される。また、複数の実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の1つまたは複数の実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
〔1.例示的な実施形態〕
まず、図1、図2、図3および図4を参照して、本開示の例示的な実施形態について詳細に説明する。例示的な実施形態に係る情報提供装置は、時系列の検索クエリから、特定のニーズを持つユーザを発見するために、以下に説明される情報提供処理を実行する。以下では、図1、図2、図3および図4を参照して、例示的な実施形態に係る情報提供処理について説明する。
〔1-1.時系列データ提供処理〕
図1は、本開示の例示的な実施形態に係る、検索クエリの時系列データを提供する時系列データ提供処理の一例を示す説明図である。例示的な実施形態では、情報提供処理が、図1に示された情報提供装置100によって行われる。情報提供装置100は、学習装置の一例である。図1に示されていないが、インターネット等のネットワーク(例えば、図5を参照して後述するネットワークN)が、図1に示された情報提供装置100、ユーザ装置5001~500n(nは任意の自然数)、ログサーバ600および操作者装置700を接続する。
図1の例では、情報提供装置100は、サーバとして示されている。この例では、情報提供装置100は、操作者(Operator)OPが検索クエリの履歴からユーザ(「利用者」とも呼ばれる)のニーズを特定できるように、検索クエリの履歴のリストを、操作者装置700に提供する。検索クエリの履歴のリストは、例えば、ターゲットユーザ(「対象利用者」とも呼ばれる)によって各期間に入力された検索クエリを含む。ターゲットユーザは、ある日時に所定の検索クエリを入力したユーザである。本明細書では、ある日時に入力された所定の検索クエリは、「基準クエリ」と呼ばれる場合がある。
図1の例では、ユーザ装置5001~500nは、スマートフォンとして示されている。例えば、ユーザ装置5001は、ユーザU1によって利用され、ユーザ5002は、ユーザU1によって利用される。本明細書では、ユーザ装置5001~500nを区別する必要がない場合は、ユーザ装置5001~500nを「ユーザ装置500」と総称する。この例では、ユーザU1やユーザU2は、検索サービスを利用する者である。ユーザ装置500は、各種情報についての検索を、ログサーバ600に要求する。例えば、ユーザ装置500は、検索クエリを含む検索要求を、ログサーバ600に送信する。
図1の例では、ログサーバ600は、サーバとして示されている。この例では、ログサーバ600は、ポータルアプリ、ポータルサイト等の検索サービスを、ユーザに提供する。ログサーバ600は、ユーザ装置500からの検索要求に応じて、各種情報についての検索結果を、ユーザ装置500に提供する。ログサーバ600は、検索要求に含まれる検索クエリを、検索ログとして蓄積することができる。ログサーバ600は、情報提供装置100に、検索ログを提供することができる。
図1の例では、操作者装置700は、ノート型PC(Personal Computer)として示されている。操作者装置700は、操作者OPによって利用される。操作者OPは、例えば、特定のインターネット企業の人物である。この例では、操作者OPは、検索クエリの履歴からユーザのニーズを特定するために、所定の検索クエリである上述の「基準クエリ」を、情報提供装置100に提供する。例えば、ターゲットユーザがある日時に検索クエリ「新生児」を入力したユーザである場合に、操作者装置700は、検索クエリ「新生児」を、情報提供装置100に、基準クエリとして提供する。このことは、操作者OPがある日時に検索クエリ「新生児」を入力したユーザの検索クエリの履歴から、このようなユーザのニーズを特定したいことを意味し得る。例えば、操作者OPが、基準日時(例えば、2020/03/19)に検索クエリ「新生児」を入力したユーザが基準日時の前後(例えば、30~60日後)にどのような検索クエリを入力したのかを知りたいこと、が考えられる。
図1に示されるように、はじめに、ユーザ装置500は、ログサーバ600に、検索クエリを送信する(ステップS1)。
次いで、ログサーバ600は、ユーザ装置500に、検索結果を提供する(ステップS2)。
次いで、情報提供装置100は、ログサーバ600から、検索ログを取得する(ステップS3)。例えば、情報提供装置100は、ログサーバ600から、検索クエリの履歴を収集する。
次いで、情報提供装置100は、操作者装置700から、基準クエリを取得する(ステップS4)。上述のように、基準クエリは、ある日時に入力された所定の検索クエリである。図1の例では、基準クエリは、ある日時(例えば、ある基準日時)に入力されたクエリ「新生児」である。
次いで、情報提供装置100は、取得された基準クエリを入力した入力利用者を特定する(ステップS5)。例えば、情報提供装置100は、取得された検索ログから、基準クエリを入力した入力利用者を特定する。図1の例では、情報提供装置100は、ある日時に検索クエリ「新生児」を入力したユーザを、入力利用者として特定する。本明細書では、入力利用者は、「入力ユーザ」や「インプットユーザ」と呼ばれる場合がある。
次いで、情報提供装置100は、基準日時を基準とした各期間において利用者が入力した検索クエリを特定する(ステップS6)。基準日時を基準とした各期間は、基準日時の前後の期間である。一例として、期間の間隔は、1カ月であってもよい。例えば、基準日時が「2020/03/19」である場合に、基準日時の前後の期間は、「2020/03/19~2020/04/19」、「2020/04/19~2020/05/19」等の、基準日時より後の期間や、「2020/02/19~2020/03/19」、「2020/01/19~2020/02/19」等の、基準日時より前の期間である。本明細書では、基準日時より後の期間および基準日時より前の期間は、それぞれ「正の期間」および「負の期間」と呼ばれる場合がある。このように、情報提供装置100は、取得された検索ログから、基準日時を基準とした期間ごとに、基準クエリを入力したユーザの検索クエリを抽出する。
次いで、情報提供装置100は、期間ごとに、基準クエリと関連性が高い検索クエリのリストを生成する(ステップS7)。基準クエリと他の検索クエリとの間の関連性は、検索クエリ間の関連度に基づいて決定され得る。例えば、検索クエリ間の関連度は、同一のユーザがどのくらいこれらの検索クエリを同時に入力するのかを示すことを示し得る。例えば、多くのユーザが検索クエリ「新生児」および検索クエリ「七五三」を同時に入力する場合に、検索クエリ「新生児」と検索クエリ「七五三」との関連度は、高い可能性がある。図1の例では、情報提供装置100は、例えば、基準日時の1カ月前における基準クエリ「新生児」と関連性が高い検索クエリとして、「入院」「お参り」、「体重」等の検索クエリを、取得された検索ログから特定する。そして、情報提供装置100は、特定された検索クエリを含むリストを生成する。
いくつかの実装形態では、情報提供装置100は、単語埋め込み(Word Embedding)を使用して、検索クエリ間の関連性を決定してもよい。情報提供装置100が、単語列を含む訓練データを使用して言語モデルを訓練することによって、埋め込みベクトルを獲得してもよい。例えば、検索ログに含まれる検索クエリに対応するキーワードが、単語列を含む訓練データとして使用されてもよい。検索クエリ間の関連性は、検索クエリに対応する埋め込みベクトル間のコサイン類似度であってもよい。
その後、情報提供装置100は、生成されたリストを、操作者装置700に提供する(ステップS8)。図1の例では、生成されたリストは、期間ごとに、基準クエリ「新生児」と関連性が高い検索クエリを示す。図1に示されるように、各期間は、基準日時の前後の期間である。例えば、期間「-1~0月」は、基準日時から1カ月前の期間である。また、例えば、期間「0~1月」は、基準日時から1カ月後の期間である。生成されたリストは、基準日時に基準クエリを入力したユーザによって入力された、基準日時の前後の期間における基準クエリと関連性が高い検索クエリを示す。図1の例では、例えば、基準日時(例えば、「2020/03/19」)に基準クエリ「新生児」を入力したユーザによって入力された、期間「-1~0月」(例えば、期間「2020/02/19~2020/03/19」)における基準クエリ「新生児」と関連性が高い検索クエリは、「入院」「お参り」、「体重」等の検索クエリである。
なお、リストの縦方向の順序が、基準クエリと他の検索クエリとの間の関連性の強さを示してもよい。例えば、基準クエリ「新生児」と検索クエリ「入院」との関連度は、基準クエリ「新生児」と検索クエリ「お参り」との関連度よりも高くてもよい。情報提供装置100は、各期間において入力された他の検索クエリが関連度順に並んだ表を生成し、生成された表を、リストとして操作者装置700に提供してもよい。
〔1-2.グループ化評価処理〕
検索クエリのリストが単純に基準クエリと他の検索クエリとの間の関連性に基づいて生成された場合に、基準クエリのコンテキスト(「文脈」とも呼ばれる)が、分散する可能性がある。「基準クエリのコンテキスト」という用語は、基準クエリの入力のコンテキスト、基準クエリの入力の背景、基準クエリを入力したユーザが置かれた状況、基準クエリの入力したユーザの行動パターン、興味または関心等を表す。
例えば、基準クエリが企業C1(例示の企業名)である場合に、この基準クエリを入力したユーザは、例えば、企業C1の社長が好きなユーザ、企業C1のマスコットが好きなユーザ、企業C1の携帯電話の機種を変更したいユーザ、企業C1によって運営されるアミューズメントパークに行きたいユーザ、企業C1によって提供される漫画の閲覧サービスを利用するユーザ等を含む。この場合、基準クエリのコンテキストは、ユーザによって異なる。したがって、生成されたリストに含まれる検索クエリが、ばらばらになる場合がある。例えば、生成されたリストは、「社長P1(例示の人名)」、「あの犬(例示のマスコット名)」、「スマートフォンSP1(例示のスマートフォン名)」、「夢と魔法の国(例示の施設名)」、「あの海賊(例示の漫画名)」等の検索クエリを含むかもしれない。基準クエリのコンテキストが分散する場合に、生成されたリストから有益な情報(例えば、ユーザの典型的なニーズ)を抽出することは、操作者OPにとって難しい場合がある。加えて、操作者OPが、生成されたリストに含まれる検索クエリの時系列から、ユーザのニーズの遷移を適切に把握することができないかもしれない。
そこで、情報提供装置100は、操作者OPが検索クエリのリストを適切に評価することを可能にするために、ターゲットユーザによって各期間に入力された検索クエリをグループ化する。情報提供装置100は、各期間に入力された検索クエリは、基準クエリのコンテキストに基づいてグループ化され得る。例えば、情報提供装置100は、基準クエリを入力したユーザの検索ログを、時系列(例えば、基準日時の前後の期間)ごとに取得する。そして、情報提供装置100は、時系列ごとに、検索クエリをグループ化する。例えば、グループ数や、グループに関連する検索クエリを入力したユーザの数が閾値を満たす場合に、情報提供装置100は、このグループに関連する検索クエリを、リストに含まれる検索クエリとして抽出する。その結果、リストに含まれるグループ化された検索クエリは、統一性を持つことができ、それによって、操作者OPが検索クエリのリストを適切に評価することを可能にする。
図2は、本開示の例示的な実施形態に係る、時系列検索クエリのグループ化を評価するグループ化評価処理の一例を示す説明図である。
図2に示されるように、はじめに、情報提供装置100は、基準クエリと、指定カテゴリとを、操作者装置700から取得する(ステップS11)。上述のように、基準クエリは、ある日時に入力された所定の検索クエリ(例えば、検索クエリ「企業C1」)である。一方、指定カテゴリは、時系列の検索クエリをグループ化するためのカテゴリである。情報提供装置100は、指定カテゴリに従って、時系列(例えば、基準日時の前後の期間)ごとに、検索クエリをグループ化する。指定カテゴリは、例えば、操作者OPによって予め指定される。指定カテゴリは、例えば、社長、マスコット、機種変更、アミューズメントパーク、漫画等のカテゴリである。このように、情報提供装置100は、操作者OPから指定カテゴリを受け付ける。
次いで、情報提供装置100は、入力利用者を特定し、各入力利用者が入力した検索クエリを特定する(ステップS12)。上述のように、入力利用者は、基準日時に基準クエリを入力したユーザである。情報提供装置100は、検索ログから、入力利用者を特定することができる。また、情報提供装置100は、検索ログから、入力利用者が基準日時の前後の期間に入力した検索クエリを特定することができる。図2の例では、入力利用者IU1によって入力された検索クエリは、検索クエリ#1-1および検索クエリ#1-2を含む。同様に、入力利用者IU2によって入力された検索クエリは、検索クエリ#2-1および検索クエリ#2-2を含み、入力利用者IU3によって入力された検索クエリは、検索クエリ#3-1および検索クエリ#3-2を含む。例えば、検索クエリ#1-1は、社長P1であってもよい。また、例えば、検索クエリ#1-2は、あの犬(例示のマスコット名)であってもよい。
次いで、情報提供装置100は、各期間に入力された検索クエリを特定する(ステップS13)。上述のように、各期間は、基準日時の前後の期間である。図2の例では、基準日時の前後の期間は、第1期間(正の期間)、第1期間(負の期間)、第2期間(負の期間)等を含む。例えば、第1期間(正の期間)は、基準日時から1カ月後の期間である、上述の期間「0~1月」であってもよい。また、例えば、第1期間(負の期間)は、基準日時から1カ月前の期間である、上述の期間「-1~0月」であってもよい。また、例えば、第2期間(負の期間)は、基準日時から2カ月前の期間である、上述の期間「-2~-1月」であってもよい。
次いで、情報提供装置100は、各期間おける指定カテゴリごとのクエリ数若しくは利用者数の要素群を特定する(ステップS14)。「要素群」という用語は、グループ化された検索クエリに対応する値の配列を包含し得る。例えば、時系列検索クエリの要素群は、特定の時系列における(例えば、各期間)グループ化された検索クエリ(すなわち、特定の指定カテゴリに属する検索クエリ)の数の配列であってもよい。あるいは、時系列検索クエリの要素群は、特定の時系列における各指定カテゴリに属する検索クエリを入力したユーザの数の配列であってもよい。言い換えると、要素群は、検索クエリをカテゴリで分解することによって生成された指標の値の配列であり得る。「要素群」という用語は、例として、データ要素の配列、データ要素の分布等の、データ要素群を包含する。このデータ要素は、例えば、特定のカテゴリに属する検索クエリの数または特定のカテゴリに属する検索クエリを入力したユーザの数を含み得る。
上述の要素群の表示態様に関しては、棒グラフを使用して指標の値の配列(例えば、特定の時系列におけるグループ化された検索クエリの数の配列)を提示することが可能である。例えば、棒グラフの高さは、ある期間おける指定カテゴリごとのクエリ数またはユーザ数を表す。指定カテゴリ#1を示す棒グラフの高さが、250であり、指定カテゴリ#2を示す棒グラフの高さが、200であり、指定カテゴリ#3を示す棒グラフの高さが、150であってもよい。
図2の例では、例えば、情報提供装置100は、第2期間(負の期間)における指定カテゴリごとの検索クエリ数またはユーザ数の要素群を特定する。例えば、第2期間に入力され、かつ指定カテゴリ#1に属する検索クエリの数は、「250」である。あるいは、第2期間に入力され、かつ指定カテゴリ#1に属する検索クエリを入力したユーザの数が、「250」であってもよい。指定カテゴリ#1は、カテゴリ「社長」であってもよいし、指定カテゴリ21は、カテゴリ「マスコット」であってもよい。この場合、検索クエリ「社長P1(例示の人名)」は、カテゴリ「社長」に属する。一方、検索クエリ「あの犬(例示のマスコット名)」は、カテゴリ「マスコット」に属する。このように、情報提供装置100は、各指定カテゴリに分類された検索クエリの数や、検索クエリを入力した利用者の数をカウントすることによって、検索クエリの要素群を特定することができる。
なお、この例示的な実施形態では、情報提供装置100は、各期間おける指定カテゴリごとのクエリ数もしくは利用者数の要素群を特定しているが、これに限定されるものではない。情報提供装置100は、期間ごとに、検索クエリを複数のカテゴリに分類してもよい。複数のカテゴリは、指定カテゴリを含んでもよい。すなわち、情報提供装置100は、指定カテゴリ以外のカテゴリに従って、時系列ごとに、検索クエリをグループ化してもよい。カテゴリが予め固定されていない場合に(例えば、情報提供装置100が指定カテゴリを取得してない場合に)、情報提供装置100は、基準クエリおよび検索ログに基づいて、検索ログ内の検索クエリを、複数のカテゴリ(例えば、指定カテゴリ以外のカテゴリ)に分類してもよい。基準クエリが予め固定されている場合に、情報提供装置100は、この基準クエリに対する適切なカテゴリを探索することができる。言い換えると、情報提供装置100は、予め指定されたカテゴリに基づいて、基準クエリが適切あるかを判定してもよいし、予め指定された基準クエリに基づいて、この基準クエリに対する適切なカテゴリを探索してもよい。
次いで、情報提供装置100は、要素群が所定の条件を満たすか否かを判定し、判定結果から、基準クエリ若しくは指定カテゴリを評価する(ステップS15)。所定の条件は、例えば、「検索クエリのグループの数が特定の値(例えば、自然数n)に収束する」という条件である。このグループは、例えば、指定カテゴリや、指定カテゴリ以外のカテゴリを含む複数のカテゴリである。例えば、n個の指定カテゴリに属する検索クエリが各期間における全クエリ(すなわち、各期間における全体の検索ログ)に占める割合が閾値(例えば、8割)を満たす場合に(例えば、nは「3」)、情報提供装置100は、これらのn個の指定カテゴリを、検索クエリのリストのためのグループとして使用することができる。簡単のため、図2の例では、このグループは、指定カテゴリ以外のカテゴリを含まないと仮定する。例えば、指定カテゴリの数が「3」であり、これらの3つの指定カテゴリが8割の検索クエリまたは利用者を含む場合に、情報提供装置100は、これらの3つの指定カテゴリが所定の条件を満たすと判定する。
グループの数に関しては、グループの数が多い場合は、情報提供装置100は、元の基準クエリが適切なクエリでないと判定することができる。ある期間におけるグループの数が他の期間におけるグループの数と同じである場合に、情報提供装置100は、元の基準クエリが適切なクエリであると判定することができる。情報提供装置100は、クエリ数もしくはユーザ数の要素群が適切に表現されているかに基づいて、検索クエリのリストが適切であるかを判定することができる。カテゴリが予め固定されている場合に(例えば、カテゴリが指定カテゴリである場合に)、情報提供装置100は、カテゴリおよび検索ログに基づいて、クエリ数もしくはユーザ数の要素群を評価することができ、それによって、適切な基準クエリを特定することができる。
図2の例では、所定の条件は、例えば、「いずれかの期間において指定カテゴリに含まれるクエリもしくは利用者が3割以下」という条件である。要素群がこの条件を満たす場合に、情報提供装置100は、指定カテゴリが負適切または基準クエリが負適切であると判定する。加えてまたはあるいは、所定の条件は、例えば、「各期間において指定カテゴリに含まれる検索クエリもしくは利用者の割合の変動が閾値を超える」という条件であってもよい。要素群がこの条件を満たす場合に、情報提供装置100は、指定カテゴリが負適切または基準クエリが負適切であると判定する。このように、情報提供装置100は、検索クエリの要素群が所定の条件を満たすかを判定することによって、基準クエリや指定カテゴリを評価することができる。要素群が収束している場合に、情報提供装置100は、検索クエリのリストが適切であると判定することができる。
上述のように、判定結果は、基準クエリが適切であるかの判定に使用される。例えば、基準クエリが各期間で所定の条件を満たす場合に、情報提供装置100は、基準クエリが適切であると判定する。基準クエリが大多数の期間で条件を満たす場合に、情報提供装置100は、基準クエリが適切であると判定してもよい。基準クエリが各期間で所定の条件を満たさない場合に、基準クエリが、操作者OPが所望の対象を適切に表現していない可能性が高い。
その後、情報提供装置100は、操作者装置700に、評価結果を提供する(ステップS16)。例えば、情報提供装置100は、判定結果に応じた情報を、操作者OPに提供する。情報提供装置100は、判定結果に基づいて、カテゴリ(例えば、指定カテゴリ、指定カテゴリ以外のカテゴリ)を自動的に最適化してもよい。情報提供装置100は、指定カテゴリが負適切または基準クエリが負適切であることを示すメッセージを、操作者装置700に表示してもよい。あるいは、情報提供装置100は、ユーザの検索行動が時系列検索クエリをカテゴリの要素群に分解することによって適切に表現されていることを示すメッセージを、操作者装置700に表示してもよい。情報提供装置100は、要素群に関する条件を満たすリストを、操作者装置700に提供することができる。ある期間における配列の数(例えば、「3」)は、他の期間における配列の数と同じであってもよい。この場合、操作者OPは、指定カテゴリの遷移態様を、リストから読み取ることができる。各期間におけるこのような指定カテゴリは、敷衍され、時系列の検索行動の分析に適用され得る。
上述のように、情報提供装置100は、各期間における検索クエリの内容がばらばらにならないように、各期間における検索クエリをグループ化することができる。このため、情報提供装置100は、社長、マスコット、機種変更等の特定のニーズの分析に利用可能な、有用な検索クエリのリストを、操作者OPに提供することができる。
なお、上述の指定カテゴリまたは指定カテゴリ以外のカテゴリは、これらのカテゴリよりも上位のカテゴリに属する場合がある。この上位のカテゴリは、図4を参照して後述する遷移カテゴリである。遷移カテゴリは、基準クエリによって示される対象に至る経路を示す。例えば、カテゴリ「マスコット」、カテゴリ「漫画」、カテゴリ「アミューズメントパーク」の順番で、これらのカテゴリにそれぞれ対応する検索クエリを入力した場合に、このユーザのカテゴリの遷移態様は、遷移カテゴリ「マスコットから漫画を介してアミューズメントパークに至る経路」に分類され得る。遷移カテゴリは、図4を参照して以下で詳述される。指定カテゴリは、遷移カテゴリに対応する下位カテゴリである。この例示的な実施形態では、情報提供装置100は、指定カテゴリが適切であるかを判定することができる。このため、情報提供装置100は、操作者OPがユーザの検索行動を適切に捉えることを可能にする。
〔1-3.時間間隔修正処理〕
操作者OPは、上述の基準日時を基準とした各期間の長さがどのように設定されればよいかがわからない場合がある。上述のように、基準日時を基準とした各期間は、基準日時の前後の期間である。例えば、検索行動を把握するための適切な期間の長さは、1カ月であるかもしれない。あるいは、この適切な期間の長さは、1週間であるかもしれない。操作者OPは、検索クエリのリストから有用な情報(例えば、検索行動間の関連性)を抽出するために、各期間を、検索行動を分析するのに適切な期間に設定したいと思う場合がある。各期間の長さが適切でない場合に(例えば、各期間の長さが1年である場合に)、操作者OPは、ユーザのカテゴリの遷移態様を、適切に捉えることができないかもしれない。期間の長さが変化した場合に、基準クエリと検索クエリとの関連度のランキングも、変化する。例えば、各期間の長さが短すぎる場合に、検索クエリのリストは、多くのバズワード(すなわち、特定の期間に話題になったワード)を含むかもしれない。この場合、操作者OPは、検索クエリのリストから、基準クエリに関連する検索クエリの変遷を把握できないかもしれない。
そこで、情報提供装置100は、期間の長さを調整することによって、適切な期間の長さを特定する。情報提供装置100は、上述の検索クエリの要素群を使用することによって、検索クエリ時系列の粗密を調整する。
図3は、本開示の例示的な実施形態に係る、検索クエリ時系列の時間間隔を修正する時間間隔修正処理の一例を示す説明図である。
図4に示されるように、はじめに、上述のステップS11の場合と同様に、情報提供装置100は、基準クエリと、指定カテゴリとを、操作者装置700から取得する(ステップS21)。次いで、上述のステップS12の場合と同様に、情報提供装置100は、入力利用者を特定し、各入力利用者が入力した検索クエリを特定する(ステップS22)。次いで、上述のステップS13の場合と同様に、情報提供装置100は、各期間に入力された検索クエリを特定する(ステップS23)。次いで、上述のステップS14の場合と同様に、情報提供装置100は、各期間おける指定カテゴリごとのクエリ数若しくは利用者数の要素群を特定する(ステップS24)。ここでは、重複する説明は、省略される。
次いで、情報提供装置100は、要素群が所定の条件を満たすか否かを判定し、判定結果から、各期間の設定が適切であるかを判定する(ステップS25)。図3の例では、指定カテゴリは、特定のカテゴリに固定されている。特定のカテゴリは、例えば、結婚、妊娠、引越し等のカテゴリのうちの1つであってもよい。あるいは、特定のカテゴリは、社長、マスコット、機種変更、アミューズメントパーク、漫画等の、図2を参照して上述したカテゴリのうちの1つであってもよい。指定カテゴリは、上述のグループ化評価処理によって最適化されていてもよい。一例として、基準クエリが検索クエリ「新生児」である場合に、特定のカテゴリは、結婚、妊娠、引越し等のカテゴリであってもよい。例えば、指定カテゴリ#1が、カテゴリ「結婚」であり、指定カテゴリ#2が、カテゴリ「妊娠」であり、指定カテゴリ#3が、カテゴリ「引越し」であってもよい。
図2の例では、各期間における要素群の変動が所定の閾値以下である場合に、情報提供装置100は、各期間の長さが適切であると判定する。例えば、要素群が各期間において共通する場合に、情報提供装置100は、各期間の長さが適切であると判定する。要素群のずれがある期間に生じた場合に、情報提供装置100は、この期間の長さを修正する。所定期間における要素群の分散が所定の閾値以上である場合に、情報提供装置100は、所定期間の長さが長すぎると判定する。このように、情報提供装置100は、要素群が各期間において共通するように、期間を修正する。
各期間において検索クエリを入力したユーザの種別が所定の条件を満たす場合に、情報提供装置100は、各期間の長さが適切であると判定してもよい。ユーザの種別は、例えば、デモグラフィック属性、サイコグラフィック属性等のユーザの属性である。例えば、基準クエリ「新生児」を入力したインプットユーザの男女比に基づいて、情報提供装置100は、各期間の長さが適切であるかを判定してもよい。ある期間の長さが変化した場合に、この期間におけるインプットユーザの男女比も、変化する。例えば、情報提供装置100は、期間の長さを変化させることによって、インプットユーザの男女比の変化を判定してもよい。一例として、インプットユーザの男女比が1対1である場合に、情報提供装置100は、期間の長さが適切であると判定してもよい。なお、所定の条件は、各期間によって異なってもよい。したがって、複数の期間(例えば、第1期間、第2期間)は、長さが異なってもよい。
その後、情報提供装置100は、判定結果に基づいて、各期間の長さを修正し、再度リストを生成する(ステップS26)。例えば、情報提供装置100は、各期間において検索クエリを入力したユーザの種別が所定の条件を満たすように、各期間の長さを修正する。情報提供装置100は、調整された期間の粗密に基づいて、操作者OPに各種情報を提供してもよい。例えば、調整された期間の長さが短い場合に、情報提供装置100は、この期間が重要である、またはユーザの行動の変化がこの期間において激しいことを示すメッセージを、操作者装置700に表示してもよい。例えば、基準クエリが検索クエリ「新生児」である場合に、第1期間(負の期間)(例えば、期間「-1~0月」)の長さは、1週間であってもよい。なぜなら、ユーザの状況は、出産のタイミングで大きく変化する場合があるからである。一方、第10期間(負の期間)(例えば、期間「-10~-9月」)の長さは、1カ月であってもよい。なぜなら、ユーザの状況は、妊娠のタイミングで大きく変化しない場合があるからである。このように、各期間の長さは、検索クエリによって示される対象が入力ユーザの状況の重要な変化につながるかに基づいて決定され得る。短い期間は、検索クエリ時系列のホットポイントであり得る。操作者OPは、このようなホットポイントでの検索クエリから、ユーザの重要なニーズを把握することができる。
上述のように、情報提供装置100は、上述の基準日時を基準とした各期間の刻み幅を調整することができる。情報提供装置100は、各期間の刻み幅を調整するための条件(例えば、上述の所定の条件)を、クラウドソーシングのワーカから収集してもよい。クラウドソーシングのワーカは、基準クエリを入力したインプットユーザであってもよい。一例として、クラウドソーシングのワーカから収集された所定の条件は、「各期間の長さが1カ月である」という条件であってもよい。別の例として、収集された所定の条件は、「インプットユーザの男女比が1対1である」という条件であってもよい。
〔1-4.検索クエリ予測処理〕
将来の検索クエリがユーザの検索クエリの履歴(例えば、検索ログ)から推定される場合に、バズワード(すなわち、特定の期間に話題になったワード)がノイズを発生させる場合がある。また、ユーザによって入力された検索クエリは、例えば、ある雑誌に掲載されたある漫画のタイトル、アミューズメントパークでのイベント名等の、具体的な対象を示す。しかしながら、操作者OPが考えたい対象は、より抽象的なコンテキストである場合がある。操作者OPは、漫画のタイトルやイベント名の詳細に依らずに、より抽象的なコンテキストでユーザの行動を把握したいことがある。
例示のために、ユーザが、検索クエリ「あの鬼(例示の漫画名)」、検索クエリ「あの海賊(例示の漫画名)」、検索クエリ「夢と魔法の国(例示の施設名)」の順番で、これらの検索クエリを入力したと仮定する。さらに、他のユーザが、検索クエリ「あの冒険(例示の漫画名)」、検索クエリ「あの海賊(例示の漫画名)」、検索クエリ「夢と魔法の国(例示の施設名)」の順番で、これらの検索クエリを入力したと仮定する。この例では、あの鬼(例示の漫画名)、あの冒険(例示の漫画名)およびあの海賊(例示の漫画名)は、同一の雑誌に掲載されている。この雑誌の読者であるユーザは、検索クエリ「夢と魔法の国(例示の施設名)」を入力する傾向があるかもしれない。例えば、ユーザは、あの鬼(例示の漫画名)を読むためにこの雑誌を購入し、その後この雑誌に掲載されているあの海賊(例示の漫画名)が好きなったかもしれない。このユーザは、あの海賊(例示の漫画名)に関連するイベントが開催されている夢と魔法の国(例示の施設名)に行ったかもしれない。このような場合、雑誌に掲載された漫画から雑誌に掲載された他の漫画を介してアミューズメントパークに至るというコンテキストを発見することが可能であり得る。例えば、操作者OPは、雑誌に掲載された複数の漫画のうちの1つに対応する検索クエリを入力したユーザが夢と魔法の国(例示の施設名)に行く傾向があることが分かる。
そこで、情報提供装置100は、検索クエリを使用した機械学習を行うことによって、未来の検索クエリを予測する。より具体的には、情報提供装置100は、上述の基準クエリに至る経路の特徴を、機械学習モデルに学習させる。例えば、情報提供装置100は、検索クエリに対応するカテゴリ(例えば、指定カテゴリ)の変遷の態様を、機械学習モデルに学習させる。情報提供装置100は、ユーザの検索クエリを学習済みモデルに入力することによって、このユーザによって入力される検索クエリを推定する。例えば、学習済みモデルは、カテゴリの変遷の態様を示すベクトルを出力することができる。あるいは、学習済みモデルは、基準クエリを示すベクトルを出力することができる。情報提供装置100は、このようなベクトルに基づいて、ユーザによって入力される検索クエリを推定することができる。
図4は、本開示の例示的な実施形態に係る、検索クエリの時系列データに基づいて利用者の検索クエリを予測する検索クエリ予測処理の一例を示す説明図である。なお、検索クエリのカテゴリ(例えば、指定カテゴリ)は、上述のグループ化評価処理によって最適化されていてもよい。さらに、上述の基準日時を基準とした各期間は、上述の時間間隔修正処理によって最適化されていてもよい。
図4に示されるように、はじめに、情報提供装置100は、入力利用者が各期間に入力した検索クエリが属するカテゴリを特定する(ステップS31)。図4の例では、入力利用者IU1は、例えば、検索クエリ#1-1、検索クエリ#1-2、検索クエリ#1-3等の検索クエリを入力する。検索クエリは、上述の指定カテゴリに属する。検索クエリ#1-1、検索クエリ#1-2および検索クエリ#1-3が指定カテゴリ#1-1、指定カテゴリ#1-2および指定カテゴリ#1-3にそれぞれ対応する場合に、情報提供装置100は、入力利用者IU1が、指定カテゴリ#1-1、指定カテゴリ#1-2および指定カテゴリ#1-3の順番で、検索クエリを入力したと決定する。このように、情報提供装置100は、入力利用者が各期間に入力した検索クエリを、カテゴリ分類する。さらに、情報提供装置100は、カテゴリ(例えば、指定カテゴリ)の遷移態様を特定する。
次いで、情報提供装置100は、各入力利用者のカテゴリの遷移態様を複数のカテゴリに分類する(ステップS32)。図4の例では、情報提供装置100は、例えば、入力利用者IU1によって入力された複数の検索クエリにそれぞれ対応する複数の指定カテゴリの遷移態様を、カテゴリ分類する。例えば、カテゴリの遷移が指定カテゴリ#1-1、指定カテゴリ#1-2および指定カテゴリ#1-3の順番で起こる場合に、このカテゴリの遷移は、遷移カテゴリ#1に分類される。すなわち、情報提供装置100は、入力利用者のカテゴリの遷移態様を、基準クエリに至る経路に対応する遷移カテゴリに分類する。
次いで、情報提供装置100は、遷移カテゴリが類似する利用者の検索クエリの履歴が入力された場合に、類似するベクトルを生成し、遷移カテゴリが類似しない利用者の検索クエリの履歴が入力された場合に、類似しないベクトルを生成するように、モデルを学習する(ステップS33)。例えば、情報提供装置100は、基準クエリを入力したユーザによって過去に入力された検索クエリに基づいて、ユーザをグループ化する。図4の例では、例えば、グループは、遷移カテゴリ#1、遷移カテゴリ#2、遷移カテゴリ#3等の遷移カテゴリのグループである。そして、情報提供装置100は、グループごとに、入力された検索クエリの変遷の特徴を、モデルに学習させる。より具体的には、情報提供装置100は、検索クエリが属するカテゴリの変遷の特徴を、モデルに学習させる。言い換えると、情報提供装置100は、カテゴリの変遷のカテゴリごとに、ユーザをグループ化し、このユーザの検索クエリの変遷を、モデルに学習させる。
図4の例では、入力利用者IU1は、遷移カテゴリ#1に分類される。また、入力利用者IU2は、遷移カテゴリ#2に分類される。情報提供装置100は、所定の辞書を参照することによって、ある遷移カテゴリに類似する他の遷移カテゴリを特定することができる。例えば、遷移カテゴリ#1が辞書において遷移カテゴリ#2に関連付けられている場合に、情報提供装置100は、遷移カテゴリ#2を、遷移カテゴリ#1に類似するカテゴリとして特定することができる。
図4の例では、クエリ履歴#1は、遷移カテゴリ#1に分類された入力利用者によって入力された検索クエリの履歴である。同様に、クエリ履歴#2は、遷移カテゴリ#2に分類された入力利用者によって入力された検索クエリの履歴である。
図4の例では、ベクトル#1は、カテゴリの遷移態様を示すベクトルである。例えば、ベクトル#1は、遷移カテゴリ#1の遷移態様を示す。言い換えると、ベクトル#1は、カテゴリの変遷の特徴を示す。例示のために、遷移カテゴリ#1が、カテゴリの遷移が指定カテゴリ「あの雑誌(例示の雑誌名)」、指定カテゴリ「あの雑誌(例示の雑誌名)」および指定カテゴリ「夢と魔法の国(例示の施設名)」の順番で起こる遷移態様に対応すると仮定する。この例では、ベクトルの各要素は、指定カテゴリに対応する。例えば、第1、第2、第3、第4および第5の要素が、あの雑誌(例示の雑誌名)、夢と魔法の国(例示の施設名)、結婚、妊娠、引越し等の指定カテゴリにそれぞれ対応する。この場合、ベクトル#1は、(1,1,0,0,0)であってもよい。第1の要素「1」は、カテゴリの遷移が、指定カテゴリ「あの雑誌(例示の雑誌名)」を含むことを示す。例えば、第1の要素「1」は、ユーザが、あの鬼(例示の漫画名)、あの冒険(例示の漫画名)、あの海賊(例示の漫画名)等のクエリを入力したことを示す。一方、第4の要素「0」は、カテゴリの遷移が、指定カテゴリ「妊娠」を含まないことを示す。例えば、第3の要素「0」は、ユーザが、新生児等のクエリを入力していないことを示す。
情報提供装置100は、複数のユーザが同一の基準クエリを入力した場合であっても、モデルがカテゴリの変遷が異なる場合に異なるベクトルを出力するように、機械学習を行う。このため、情報提供装置100は、ユーザの検索クエリやこの検索クエリのカテゴリを使用することによって、ユーザが基準クエリに至るユーザであるか、またはあるユーザによって入力される将来の検索クエリの特徴を、モデルに精度良く学習させることができる。上述のように、情報提供装置100は、ユーザが過去に入力した検索クエリが属するカテゴリを特定し、特定されたカテゴリの変遷の種別ごとに、モデルの学習を行う。一例として、ユーザが検索クエリ「夢と魔法の国(例示の施設名)」を入力した場合に、情報提供装置100は、ユーザがどのようにこの検索クエリに至るのかを、モデルに学習させることができる。このように、情報提供装置100は、検索クエリのカテゴリの上位概念(例えば、遷移態様)を、モデルに学習させることができる。
その後、情報提供装置100は、モデルを用いて、対象ユーザの検索クエリの履歴から対象ユーザが将来入力する検索クエリを予測する(ステップS34)。図4の例では、情報提供装置100は、対象ユーザTU1の検索クエリの履歴(例えば、検索クエリ#4-1、検索クエリ#4-2)を学習済みモデルに入力することによって、ベクトル#4を生成する。ベクトル#4は、対象ユーザTU1のカテゴリの遷移態様を示す。例えば、情報提供装置100は、生成されたベクトル#4に類似するベクトルに対応する他の対象ユーザを特定し、特定された他の対象ユーザのユーザ情報に基づいて、強調フィルタリングを行うことができる。このようにして、情報提供装置100は、対象ユーザTU1のニーズの予測や、対象ユーザTU1へのターゲティングを可能にすることができる。上述のグループ(例えば、指定カテゴリ)は、特定のマーケティング(例えば、機種変更)に対応してもよい。
以下、このような情報提供処理を行う情報提供装置100について詳細に説明する。
〔2.情報提供システム〕
次に、図5を参照して、情報提供装置100を含むシステムの構成例について説明する。
〔2-1.情報提供システムの構成要素〕
図5は、実施形態に係る情報提供システム1の一例を示す図である。図5に示されるように、情報提供システム1は、情報提供装置100、ユーザ装置500、ログサーバ600および操作者装置700等の構成要素を含む。図1中では図示していないが、情報提供システム1は、複数台の情報提供装置100や、複数台のユーザ装置500や、複数台のログサーバ600や、複数台の操作者装置700を含んでもよい。また、情報提供システム1は、情報提供装置100に関係するエンティティ(例えば、業者、エンドユーザ)の装置等の、他の構成要素を含んでもよい。
情報提供システム1において、情報提供装置100、ユーザ装置500、ログサーバ600および操作者装置700は、それぞれネットワークNと有線又は無線により接続される。ネットワークNは、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)等のネットワークである。情報提供システム1の構成要素は、ネットワークNを介して互いに通信を行うことができる。
情報提供装置100(学習装置の一例に相当)は、検索クエリの時系列データを評価するための処理を実行する情報処理装置である。情報提供装置100は、検索クエリの時系列データから、特定のニーズを持つユーザを発見することができる。また、情報提供装置100は、検索クエリの時系列データから、ユーザのニーズを予測することができる。情報提供装置100は、サーバを含む、任意のタイプの情報処理装置であってもよい。複数台の情報提供装置100が、ウェブサーバ、アプリケーションサーバ、データベースサーバ等の各種サーバの機能をそれぞれ提供してもよい。情報提供装置100の構成例は、次の節で詳述される。
ユーザ装置500は、ユーザによって利用される情報処理装置である。ユーザ装置500は、インターネット上の各種サービス(例えば、ポータルサイト、ポータルアプリ)を介して、検索クエリを送信することができる。また、ユーザ装置500は、この各種サービスを介して、検索結果を受信することができる。ユーザ装置500は、スマートフォン、デスクトップ型PC、ノート型PC、タブレット型PC等のクライアント装置を含む、任意のタイプの情報処理装置であってもよい。
ログサーバ600は、インターネット上の各種サービス(例えば、ポータルサイト、ポータルアプリ)を提供する情報処理装置である。ログサーバ600は、この各種サービスを介して、ユーザ装置500から、検索クエリを受信することができる。また、ログサーバ600は、受信された検索クエリを、検索ログとして蓄積することができる。ログサーバ600は、サーバを含む、任意のタイプの情報処理装置であってもよい。
操作者装置700は、操作者よって利用される情報処理装置である。操作者は、例えば、情報提供装置100やログサーバ600に関係する特定のインターネット企業に関連する人物である。操作者装置700は、操作者が情報提供装置100に情報を入力することを可能にする。例えば、操作者が時系列データを分析したい場合に、操作者は、分析対象のキーワードやカテゴリを、情報提供装置100に対して設定することができる。ユーザ装置500の場合と同様に、操作者装置700は、クライアント装置を含む、任意のタイプの情報処理装置であってもよい。
〔2-2.情報提供装置の構成〕
図5に示されるように、情報提供装置100は、通信部200と、記憶部300と、制御部400とを有する。なお、情報提供装置100は、情報提供装置100を利用する管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(液晶ディスプレイ等)を有してもよい。
(通信部200)
通信部200は、例えば、NIC(Network Interface Card)等によって実現される。通信部200は、有線または無線によりネットワーク網と接続される。通信部200は、ユーザ装置500、ログサーバ600、および操作者装置700に、ネットワークNを介して、通信可能に接続されてもよい。通信部200は、ユーザ装置500、ログサーバ600、および操作者装置700との間で、ネットワーク網を介して、情報の送受信を行うことができる。
(記憶部300)
記憶部300は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。図5に示されるように、記憶部300は、検索クエリデータベース310を有する。
(検索クエリデータベース310)
図6は、実施形態に係る検索クエリデータベース310の一例を示す図である。検索クエリデータベース310は、ユーザによって入力された検索クエリを記憶する。
図6の例では、検索クエリデータベース310は、「利用者ID」、「検索クエリ」、「検索日時」等の項目を有する。検索クエリデータベース310は、検索履歴(例えば、検索ログ)等の、構造化されたデータセットとして実装されてもよい。
「利用者ID」は、ユーザ(「利用者」とも呼ばれる)を識別するための識別子を示す。「検索クエリ」は、ユーザによって入力された検索クエリを示す。「検索日時」は、検索クエリが入力された日時を示す。
例えば、図6は、利用者ID「UID#1」で識別されるユーザが、検索クエリ「検索クエリ#1-1」を入力したことを示している。利用者ID「UID#1」は、例えば、所定の文字列である。検索クエリ「検索クエリ#1-1」は、例えば、「入院」、「お参り」、「体重」等の文字列である。
また、例えば、図6は、検索クエリ「検索クエリ#1-1」が、日時「検索日時#1」に入力されたことを示している。日時「検索日時#1」は、例えば、「2020/03/19 12:00:00」等のタイムスタンプである。
(制御部400)
制御部400は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、情報提供装置100内部の記憶装置に記憶されている各種プログラム(学習プログラムの一例に相当)がRAM等を作業領域として実行されることにより実現される。また、制御部400は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、GPGPU(General Purpose Graphic Processing Unit)等の集積回路により実現されてもよい。
制御部400は、図5に示されるように、第1判定処理部410と、第2判定処理部420と、学習処理部430とを有し、以下に説明する情報処理の機能や作用を実現又は実行する。また、制御部400は、図1、図2、図3および図4を参照して上述した情報提供処理を実現することができる。情報提供装置100の1つまたは複数のプロセッサは、情報提供装置100の1つまたは複数のメモリに記憶された命令を実行することによって、制御部400内の各制御部の機能を実現することができる。なお、制御部400の内部構成は、図5に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。例えば、第1判定処理部410は、第1判定処理部410以外の部に関して後述する情報処理の全部または一部を行ってもよい。
(第1判定処理部410)
図7は、実施形態に係る第1判定処理部410の構成の一例を示す図である。第1判定処理部410は、時系列検索クエリの分類が所定の条件を満たすかを判定することができる。時系列検索クエリの分類は、検索クエリの時系列データを評価するために使用され得る。
第1判定処理部410は、図7に示されるように、取得部411と、分類部412と、判定部413と、出力部414と、抽出部415と、提供部416とを有する。なお、第1判定処理部410の内部構成は、図7に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。例えば、判定部413は、判定部413以外の部に関して後述する情報処理の全部または一部を行ってもよい。
一例では、第1判定処理部410は、操作者が検索クエリのリストを適切に評価することを可能にするために、ターゲットユーザによって各期間に入力された検索クエリをグループ化する。第1判定処理部410は、各期間に入力された検索クエリは、基準クエリのコンテキストに基づいてグループ化され得る。例えば、第1判定処理部410は、基準クエリを入力したユーザの検索ログを、時系列(例えば、基準日時の前後の期間)ごとに取得する。そして、第1判定処理部410は、時系列ごとに、検索クエリをグループ化する。例えば、グループ数や、グループに関連する検索クエリを入力したユーザの数が閾値を満たす場合に、第1判定処理部410は、このグループに関連する検索クエリを、リストに含まれる検索クエリとして抽出する。その結果、リストに含まれるグループ化された検索クエリは、統一性を持つことができ、それによって、操作者が検索クエリのリストを適切に評価することを可能にする。
(取得部411)
取得部411は、検索クエリの時系列データを評価するために使用される各種情報を取得することができる。取得部411は、このような各種情報を、所定の情報処理装置(例えば、情報提供装置100に関係するエンティティ(例えば、特定のインターネット企業)の装置)から受信することができる。また、例えば、取得部411は、情報提供装置100を利用する管理者から、ユーザインタフェースを介して、このような情報を受信することができる。取得部411は、記憶部300に、受信された各種情報を格納してもよい。例えば、取得部411は、受信された検索クエリを、検索クエリデータベース310に格納してもよい。取得部411は、記憶部300から、各種情報を取得することができる。例えば、取得部411は、検索クエリデータベース310から、検索クエリ(例えば、検索履歴等の検索ログ)を取得することができる。
少なくとも1つの実施形態では、取得部411は、基準クエリを入力した複数の入力利用者により入力された検索クエリを取得する。
少なくとも1つの実施形態では、取得部411は、所定の期間として、入力利用者が基準クエリを入力した基準日時よりも所定の日時だけ前の期間において入力された検索クエリを取得する。例えば、取得部411は、基準日時を基準としたそれぞれ異なる複数の期間内において入力された検索クエリを取得する。
一例では、取得部411は、ログサーバ600から、検索ログを取得する。例えば、取得部411は、ログサーバ600から、検索クエリの履歴を収集する。
一例では、取得部411は、操作者装置700から、基準クエリを取得する。上述のように、基準クエリは、ある日時に入力された所定の検索クエリである。図1を参照して上述したように、基準クエリは、例えば、ある日時(例えば、ある基準日時)に入力されたクエリ「新生児」である。
一例では、取得部411は、基準クエリと、指定カテゴリとを、操作者装置700から取得する。上述のように、基準クエリは、ある日時に入力された所定の検索クエリ(例えば、検索クエリ「企業C1」)である。一方、指定カテゴリは、時系列の検索クエリをグループ化するためのカテゴリである。取得部411は、指定カテゴリに従って、時系列(例えば、基準日時の前後の期間)ごとに、検索クエリをグループ化する。指定カテゴリは、例えば、操作者によって予め指定される。指定カテゴリは、例えば、社長、マスコット、機種変更、アミューズメントパーク、漫画等のカテゴリである。このように、取得部411は、操作者から指定カテゴリを受け付ける。
(分類部412)
少なくとも1つの実施形態では、分類部412は、検索クエリのうち、所定の期間において入力された検索クエリを複数のカテゴリに分類する。
少なくとも1つの実施形態では、分類部412は、期間ごとに、検索クエリを複数のカテゴリに分類する。
一例では、分類部412は、取得部411によって取得された基準クエリを入力した入力利用者を特定する。例えば、分類部412は、取得部411によって取得された検索ログから、基準クエリを入力した入力利用者を特定する。図1を参照して上述したように、分類部412は、例えば、ある日時に検索クエリ「新生児」を入力したユーザを、入力利用者として特定する。
次いで、分類部412は、基準日時を基準とした各期間において利用者が入力した検索クエリを特定する。基準日時を基準とした各期間は、基準日時の前後の期間である。一例として、期間の間隔は、1カ月であってもよい。例えば、基準日時が「2020/03/19」である場合に、基準日時の前後の期間は、「2020/03/19~2020/04/19」、「2020/04/19~2020/05/19」等の、基準日時より後の期間や、「2020/02/19~2020/03/19」、「2020/01/19~2020/02/19」等の、基準日時より前の期間である。このように、分類部412は、取得部411によって取得された検索ログから、基準日時を基準とした期間ごとに、基準クエリを入力したユーザの検索クエリを抽出する。
一例では、分類部412は、入力利用者を特定し、各入力利用者が入力した検索クエリを特定する。上述のように、入力利用者は、基準日時に基準クエリを入力したユーザである。分類部412は、検索ログから、入力利用者を特定することができる。また、分類部412は、検索ログから、入力利用者が基準日時の前後の期間に入力した検索クエリを特定することができる。次いで、分類部412は、各期間に入力された検索クエリを特定する。上述のように、各期間は、基準日時の前後の期間である。次いで、分類部412は、各期間おける指定カテゴリごとのクエリ数若しくは利用者数の要素群を特定する。図2を参照して上述したように、例えば、分類部412は、第2期間(負の期間)における指定カテゴリごとの検索クエリ数またはユーザ数の要素群を特定する。分類部412は、各指定カテゴリに分類された検索クエリの数や、検索クエリを入力した利用者の数をカウントすることによって、検索クエリの要素群を特定することができる。
分類部412は、期間ごとに、検索クエリを複数のカテゴリに分類してもよい。複数のカテゴリは、指定カテゴリを含んでもよい。すなわち、分類部412は、指定カテゴリ以外のカテゴリに従って、時系列ごとに、検索クエリをグループ化してもよい。カテゴリが予め固定されていない場合に(例えば、取得部411が指定カテゴリを取得してない場合に)、分類部412は、基準クエリおよび検索ログに基づいて、検索ログ内の検索クエリを、複数のカテゴリ(例えば、指定カテゴリ以外のカテゴリ)に分類してもよい。基準クエリが予め固定されている場合に、分類部412は、この基準クエリに対する適切なカテゴリを探索することができる。
一例では、分類部412は、判定部413による判定結果に基づいて、カテゴリ(例えば、指定カテゴリ、指定カテゴリ以外のカテゴリ)を自動的に最適化してもよい。
(判定部413)
少なくとも1つの実施形態では、判定部413は、分類部412による分類結果が所定の判定条件を満たすか否かを判定する。
少なくとも1つの実施形態では、判定部413は、検索クエリが分類されたカテゴリの数が所定の条件を満たすか否かを判定する。例えば、判定部413は、検索クエリのうち所定の割合以上の検索クエリが分類されたカテゴリの数が所定の閾値以下となるか否かを判定する。また、例えば、判定部413は、検索クエリのうち所定の割合以上の検索クエリが分類されたカテゴリを特定し、特定したカテゴリに分類された検索クエリを入力した利用者の数が所定の閾値以上となるか否かを判定する。
少なくとも1つの実施形態では、期間ごとに、分類結果が所定の判定条件を満たすか否かを判定する。
少なくとも1つの実施形態では、判定部413は、検索クエリが分類されたカテゴリが分類される上位カテゴリが所定の条件を満たすか否かを判定する。
一例では、判定部413は、検索クエリの要素群が所定の条件を満たすか否かを判定し、判定結果から、基準クエリ若しくは指定カテゴリを評価する。所定の条件は、例えば、「検索クエリのグループの数が特定の値(例えば、自然数n)に収束する」という条件である。このグループは、例えば、指定カテゴリや、指定カテゴリ以外のカテゴリを含む複数のカテゴリである。例えば、n個の指定カテゴリに属する検索クエリが各期間における全クエリ(すなわち、各期間における全体の検索ログ)に占める割合が閾値(例えば、8割)を満たす場合に(例えば、nは「3」)、判定部413は、これらのn個の指定カテゴリを、検索クエリのリストのためのグループとして使用することができる。例えば、指定カテゴリの数が「3」であり、これらの3つの指定カテゴリが8割の検索クエリまたは利用者を含む場合に、判定部413は、これらの3つの指定カテゴリが所定の条件を満たすと判定する。
グループの数に関しては、グループの数が多い場合は、判定部413は、元の基準クエリが適切なクエリでないと判定することができる。ある期間におけるグループの数が他の期間におけるグループの数と同じである場合に、判定部413は、元の基準クエリが適切なクエリであると判定することができる。判定部413は、クエリ数もしくはユーザ数の要素群が適切に表現されているかに基づいて、検索クエリのリストが適切であるかを判定することができる。カテゴリが予め固定されている場合に(例えば、カテゴリが指定カテゴリである場合に)、判定部413は、カテゴリおよび検索ログに基づいて、クエリ数もしくはユーザ数の要素群を評価することができ、それによって、適切な基準クエリを特定することができる。
図2を参照して上述したように、所定の条件は、例えば、「いずれかの期間において指定カテゴリに含まれるクエリもしくは利用者が3割以下」という条件である。検索クエリの要素群がこの条件を満たす場合に、判定部413は、指定カテゴリが負適切または基準クエリが負適切であると判定する。加えてまたはあるいは、所定の条件は、例えば、「各期間において指定カテゴリに含まれる検索クエリもしくは利用者の割合の変動が閾値を超える」という条件であってもよい。要素群がこの条件を満たす場合に、判定部413は、指定カテゴリが負適切または基準クエリが負適切であると判定する。このように、判定部413は、検索クエリの要素群が所定の条件を満たすかを判定することによって、基準クエリや指定カテゴリを評価することができる。要素群が収束している場合に、判定部413は、検索クエリのリストが適切であると判定することができる。
上述のように、判定結果は、基準クエリが適切であるかの判定に使用される。例えば、基準クエリが各期間で所定の条件を満たす場合に、判定部413は、基準クエリが適切であると判定する。基準クエリが大多数の期間で条件を満たす場合に、判定部413は、基準クエリが適切であると判定してもよい。基準クエリが各期間で所定の条件を満たさない場合に、基準クエリが、操作者が所望の対象を適切に表現していない可能性が高い。
(出力部414)
少なくとも1つの実施形態では、出力部414(例えば、第1出力部として実装される出力部414)は、判定部413により分類結果が所定の判定条件を満たすと判定された場合は、基準クエリが適切である旨の情報を出力する。
少なくとも1つの実施形態では、出力部414(例えば、第2出力部として実装される出力部414)は、判定部413により分類結果が所定の判定条件を満たすと判定された場合は、検索クエリを分類する複数のカテゴリが適切である旨の情報を出力する。
一例では、出力部414は、操作者装置700に、評価結果を提供する。例えば、出力部414は、判定結果に応じた情報を、操作者に提供する。出力部414は、指定カテゴリが負適切または基準クエリが負適切であることを示すメッセージを、操作者装置700に表示してもよい。あるいは、出力部414は、ユーザの検索行動が時系列検索クエリをカテゴリの要素群に分解することによって適切に表現されていることを示すメッセージを、操作者装置700に表示してもよい。
(抽出部415)
少なくとも1つの実施形態では、抽出部415は、判定部413により分類結果が所定の判定条件を満たすと判定された場合は、複数のカテゴリのうち所定の分類条件を満たすカテゴリに分類された検索クエリを抽出する。例えば、抽出部415は、検索クエリのうち、所定の割合以上の検索クエリが分類されたカテゴリを特定し、特定したカテゴリに分類された検索クエリを抽出する。また、例えば、抽出部415は、検索クエリのうち、基準クエリと関連性が高い検索クエリを抽出する。
一例として、抽出部415は、各期間で所定の条件を満たす基準クエリに類似する検索クエリを、検索クエリデータベース310から取得する。所定の条件は、例えば、検索クエリの要素群に関する条件である。
(提供部416)
少なくとも1つの実施形態では、提供部416は、抽出部415により抽出された検索クエリのリストを提供する。
一例では、提供部416は、期間ごとに、基準クエリと関連性が高い検索クエリのリストを生成する。図1を参照して上述したように、提供部416は、例えば、基準日時の1カ月前における基準クエリ「新生児」と関連性が高い検索クエリとして、「入院」「お参り」、「体重」等の検索クエリを、取得部411によって取得された検索ログから特定する。そして、提供部416は、特定された検索クエリを含むリストを生成する。
次いで、提供部416は、生成されたリストを、操作者装置700に提供する。図1を参照して上述したように、生成されたリストは、例えば、期間ごとに、基準クエリ「新生児」と関連性が高い検索クエリを示す。提供部416は、各期間において入力された他の検索クエリが関連度順に並んだ表を生成し、生成された表を、リストとして操作者装置700に提供してもよい。
一例では、提供部416は、検索クエリの要素群に関する条件を満たすリストを、操作者装置700に提供することができる。ある期間における配列の数(例えば、「3」)は、他の期間における配列の数と同じであってもよい。この場合、操作者は、指定カテゴリの遷移態様を、リストから読み取ることができる。各期間におけるこのような指定カテゴリは、敷衍され、時系列の検索行動の分析に適用され得る。
(第2判定処理部420)
図8は、実施形態に係る第2判定処理部420の構成の一例を示す図である。第2判定処理部420は、検索クエリの時系列中の期間が適切であるかを判定することができる。検索クエリの時系列中の期間は、検索クエリの時系列データを評価するために使用され得る。
第2判定処理部420は、図8に示されるように、取得部421と、分類部422と、判定部423と、出力部424とを有する。なお、第2判定処理部420の内部構成は、図8に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。例えば、判定部423は、判定部423以外の部に関して後述する情報処理の全部または一部を行ってもよい。
一例では、第2判定処理部420は、期間の長さを調整することによって、適切な期間の長さを特定する。第2判定処理部420は、上述の検索クエリの要素群を使用することによって、検索クエリ時系列の粗密を調整する。
(取得部421)
取得部421は、検索クエリの時系列データを評価するために使用される各種情報を取得することができる。取得部421は、このような各種情報を、所定の情報処理装置(例えば、情報提供装置100に関係するエンティティ(例えば、特定のインターネット企業)の装置)から受信することができる。また、例えば、取得部421は、情報提供装置100を利用する管理者から、ユーザインタフェースを介して、このような情報を受信することができる。取得部421は、記憶部300に、受信された各種情報を格納してもよい。例えば、取得部421は、受信された検索クエリを、検索クエリデータベース310に格納してもよい。取得部421は、記憶部300から、各種情報を取得することができる。例えば、取得部421は、検索クエリデータベース310から、検索クエリ(例えば、検索履歴等の検索ログ)を取得することができる。
少なくとも1つの実施形態では、取得部421は、基準クエリを入力した複数の入力利用者により入力された検索クエリであって、所定の期間内に入力された検索クエリを取得する。
少なくとも1つの実施形態では、取得部421は、基準クエリが入力された基準日時を基準としたそれぞれ異なる複数の期間内において入力利用者により入力された検索クエリを取得する。
一例では、取得部421は、ログサーバ600から、検索ログを取得する。例えば、取得部421は、ログサーバ600から、検索クエリの履歴を収集する。
一例では、取得部421は、操作者装置700から、基準クエリを取得する。上述のように、基準クエリは、ある日時に入力された所定の検索クエリである。図1を参照して上述したように、基準クエリは、例えば、ある日時(例えば、ある基準日時)に入力されたクエリ「新生児」である。
一例では、取得部421は、基準クエリと、指定カテゴリとを、操作者装置700から取得する。上述のように、基準クエリは、ある日時に入力された所定の検索クエリ(例えば、検索クエリ「企業C1」)である。一方、指定カテゴリは、時系列の検索クエリをグループ化するためのカテゴリである。取得部421は、指定カテゴリに従って、時系列(例えば、基準日時の前後の期間)ごとに、検索クエリをグループ化する。指定カテゴリは、例えば、操作者によって予め指定される。指定カテゴリは、例えば、社長、マスコット、機種変更、アミューズメントパーク、漫画等のカテゴリである。このように、取得部421は、操作者から指定カテゴリを受け付ける。
一例では、取得部421は、各期間の刻み幅を調整するための条件(例えば、上述の所定の条件)を、クラウドソーシングのワーカから収集してもよい。クラウドソーシングのワーカは、基準クエリを入力したインプットユーザであってもよい。一例として、クラウドソーシングのワーカから収集された所定の条件は、「各期間の長さが1カ月である」という条件であってもよい。別の例として、収集された所定の条件は、「インプットユーザの男女比が1対1である」という条件であってもよい。
(分類部422)
少なくとも1つの実施形態では、分類部422(例えば、第1分類部として実装される分類部422)は、入力利用者の属性に応じて、所定の期間内に検索クエリを入力した入力利用者を複数のカテゴリに分類する。
少なくとも1つの実施形態では、分類部422(例えば、第2分類部として実装される分類部422)は、所定の期間内に入力された検索クエリを複数のカテゴリに分類する。
一例では、分類部422は、取得部421によって取得された基準クエリを入力した入力利用者を特定する。例えば、分類部422は、取得部421によって取得された検索ログから、基準クエリを入力した入力利用者を特定する。図1を参照して上述したように、分類部422は、例えば、ある日時に検索クエリ「新生児」を入力したユーザを、入力利用者として特定する。
次いで、分類部422は、基準日時を基準とした各期間において利用者が入力した検索クエリを特定する。基準日時を基準とした各期間は、基準日時の前後の期間である。一例として、期間の間隔は、1カ月であってもよい。例えば、基準日時が「2020/03/19」である場合に、基準日時の前後の期間は、「2020/03/19~2020/04/19」、「2020/04/19~2020/05/19」等の、基準日時より後の期間や、「2020/02/19~2020/03/19」、「2020/01/19~2020/02/19」等の、基準日時より前の期間である。このように、分類部422は、取得部421によって取得された検索ログから、基準日時を基準とした期間ごとに、基準クエリを入力したユーザの検索クエリを抽出する。
一例では、分類部422は、入力利用者を特定し、各入力利用者が入力した検索クエリを特定する。上述のように、入力利用者は、基準日時に基準クエリを入力したユーザである。分類部422は、検索ログから、入力利用者を特定することができる。また、分類部422は、検索ログから、入力利用者が基準日時の前後の期間に入力した検索クエリを特定することができる。次いで、分類部422は、各期間に入力された検索クエリを特定する。上述のように、各期間は、基準日時の前後の期間である。次いで、分類部422は、各期間おける指定カテゴリごとのクエリ数若しくは利用者数の要素群を特定する。図3を参照して上述したように、例えば、分類部422は、第2期間(負の期間)における指定カテゴリごとの検索クエリ数またはユーザ数の要素群を特定する。分類部422は、各指定カテゴリに分類された検索クエリの数や、検索クエリを入力した利用者の数をカウントすることによって、検索クエリの要素群を特定することができる。
分類部422は、期間ごとに、検索クエリを複数のカテゴリに分類してもよい。複数のカテゴリは、指定カテゴリを含んでもよい。すなわち、分類部422は、指定カテゴリ以外のカテゴリに従って、時系列ごとに、検索クエリをグループ化してもよい。カテゴリが予め固定されていない場合に(例えば、取得部421が指定カテゴリを取得してない場合に)、分類部422は、基準クエリおよび検索ログに基づいて、検索ログ内の検索クエリを、複数のカテゴリ(例えば、指定カテゴリ以外のカテゴリ)に分類してもよい。基準クエリが予め固定されている場合に、分類部422は、この基準クエリに対する適切なカテゴリを探索することができる。
(判定部423)
少なくとも1つの実施形態では、判定部423は、検索クエリを入力した入力利用者の属性、若しくは、この検索クエリが所定の条件を満たすか否かに基づいて、所定の期間が適切であるか否かを判定する。
少なくとも1つの実施形態では、判定部423は、所定の期間の長さが適切であるか否かを判定する。
少なくとも1つの実施形態では、判定部423は、分類部422(例えば、第1分類部として実装される分類部422)による分類結果が所定の条件を満たすか否かに基づいて、所定の期間が適切であるか否かを判定する。例えば、判定部423は、入力利用者が分類されたカテゴリの数が所定の閾値以下となる場合は、所定の期間が適切であると判定する。また、例えば、判定部423は、分類部422(例えば、第1分類部として実装される分類部422)により各カテゴリに分類された利用者の割合が所定の条件を満たす場合は、所定の期間が適切であると判定する。
少なくとも1つの実施形態では、判定部423は、分類部422(例えば、第2分類部として実装される分類部422)による分類結果が所定の条件を満たすか否かに基づいて、所定の期間が適切であるか否かを判定する。例えば、判定部423は、検索クエリが分類されたカテゴリの数が所定の条件を満たすか否かを判定する。例えば、判定部423は、検索クエリのうち所定の割合以上の検索クエリが分類されたカテゴリの数が所定の閾値以下となるか否かを判定する。例えば、判定部423は、検索クエリのうち所定の割合以上の検索クエリが分類されたカテゴリを特定し、特定したカテゴリに分類された検索クエリを入力した利用者の数が所定の閾値以上となるか否かを判定する。
少なくとも1つの実施形態では、期間ごとに、この期間が適切であるか否かを判定する。
一例では、判定部423は、検索クエリの要素群が所定の条件を満たすか否かを判定し、判定結果から、各期間の設定が適切であるかを判定する。
図3を参照して上述したように、例えば、各期間における要素群の変動が所定の閾値以下である場合に、判定部423は、各期間の長さが適切であると判定する。例えば、要素群が各期間において共通する場合に、判定部423は、各期間の長さが適切であると判定する。要素群のずれがある期間に生じた場合に、判定部423は、この期間の長さを修正する。所定期間における要素群の分散が所定の閾値以上である場合に、判定部423は、所定期間の長さが長すぎると判定する。判定部423は、要素群が各期間において共通するように、期間を修正する。
各期間において検索クエリを入力したユーザの種別が所定の条件を満たす場合に、判定部423は、各期間の長さが適切であると判定してもよい。ユーザの種別は、例えば、デモグラフィック属性、サイコグラフィック属性等のユーザの属性である。例えば、基準クエリ「新生児」を入力したインプットユーザの男女比に基づいて、判定部423は、各期間の長さが適切であるかを判定してもよい。ある期間の長さが変化した場合に、この期間におけるインプットユーザの男女比も、変化する。例えば、判定部423は、期間の長さを変化させることによって、インプットユーザの男女比の変化を判定してもよい。一例として、インプットユーザの男女比が1対1である場合に、判定部423は、期間の長さが適切であると判定してもよい。なお、所定の条件は、各期間によって異なってもよい。したがって、複数の期間(例えば、第1期間、第2期間)は、長さが異なってもよい。
(出力部424)
出力部424は、判定部423が検索クエリの要素群が所定の条件を満たすと判定した場合に、期間の設定が適切である旨の情報を出力することができる。
一例では、出力部424は、判定結果に基づいて、各期間の長さを修正し、再度リストを生成する。例えば、出力部424は、各期間において検索クエリを入力したユーザの種別が所定の条件を満たすように、各期間の長さを修正する。出力部424は、調整された期間の粗密に基づいて、操作者に各種情報を提供してもよい。例えば、調整された期間の長さが短い場合に、出力部424は、この期間が重要である、またはユーザの行動の変化がこの期間において激しいことを示すメッセージを、操作者装置700に表示してもよい。例えば、基準クエリが検索クエリ「新生児」である場合に、第1期間(負の期間)(例えば、期間「-1~0月」)の長さは、1週間であってもよい。なぜなら、ユーザの状況は、出産のタイミングで大きく変化する場合があるからである。一方、第10期間(負の期間)(例えば、期間「-10~-9月」)の長さは、1カ月であってもよい。なぜなら、ユーザの状況は、妊娠のタイミングで大きく変化しない場合があるからである。このように、各期間の長さは、検索クエリによって示される対象が入力ユーザの状況の重要な変化につながるかに基づいて決定され得る。短い期間は、検索クエリ時系列のホットポイントであり得る。操作者は、このようなホットポイントでの検索クエリから、ユーザの重要なニーズを把握することができる。
(学習処理部430)
図9は、実施形態に係る学習処理部430の構成の一例を示す図である。学習処理部430は、ユーザによって入力される検索クエリのカテゴリの遷移について、検索クエリの時系列データから学習することができる。時系列データから学習することは、時系列データからモデルを生成することを包含する。データからモデルを生成する過程は、訓練または学習と呼ばれることがある。モデルは、訓練データを使用して機械学習アルゴリズムを訓練することによって、生成され得る。
上述の検索クエリのカテゴリは、上述の第1判定処理部410による判定に基づく時系列検索クエリの分類であってもよい。例えば、時系列検索クエリは、第1判定処理部410によって実行される、時系列検索クエリの分類が所定の条件を満たすかの判定に基づいて、分類されてもよい。時系列検索クエリは、時系列検索クエリの分類が所定の条件を満たすように、分類されてもよい。上述のように、このような判定は、時系列検索クエリの分類を改善するために使用され得る。
上述の遷移の時間間隔は、上述の第2判定処理部420による判定に基づく期間の長さであってもよい。例えば、検索クエリの時系列中の期間の長さは、第2判定処理部420によって実行される、検索クエリの時系列中の期間が適切であるかの判定に基づいて、決定されてもよい。上述のように、このような判定は、検索クエリの時系列中の期間の長さを改善するために使用され得る。
上述のカテゴリの遷移は、検索クエリの時系列データを評価するために使用され得る。学習処理部430は、図9に示されるように、取得部431と、特定部432と、学習部433と、推定部434とを有する。なお、学習処理部430の内部構成は、図9に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。例えば、学習部433は、学習部433以外の部に関して後述する情報処理の全部または一部を行ってもよい。
一例では、学習処理部430は、検索クエリを使用した機械学習を行うことによって、未来の検索クエリを予測する。より具体的には、学習処理部430は、上述の基準クエリに至る経路の特徴を、機械学習モデルに学習させる。例えば、学習処理部430は、検索クエリに対応するカテゴリ(例えば、指定カテゴリ)の変遷の態様を、機械学習モデルに学習させる。学習処理部430は、ユーザの検索クエリを学習済みモデルに入力することによって、このユーザによって入力される検索クエリを推定する。例えば、学習済みモデルは、カテゴリの変遷の態様を示すベクトルを出力することができる。あるいは、学習済みモデルは、基準クエリを示すベクトルを出力することができる。学習処理部430は、このようなベクトルに基づいて、ユーザによって入力される検索クエリを推定することができる。
(取得部431)
取得部431は、検索クエリの時系列データを評価するために使用される各種情報を取得することができる。取得部431は、このような各種情報を、所定の情報処理装置(例えば、情報提供装置100に関係するエンティティ(例えば、特定のインターネット企業)の装置)から受信することができる。また、例えば、取得部431は、情報提供装置100を利用する管理者から、ユーザインタフェースを介して、このような情報を受信することができる。取得部431は、記憶部300に、受信された各種情報を格納してもよい。例えば、取得部431は、受信された検索クエリを、検索クエリデータベース310に格納してもよい。取得部431は、記憶部300から、各種情報を取得することができる。例えば、取得部431は、検索クエリデータベース310から、検索クエリ(例えば、検索履歴等の検索ログ)を取得することができる。
少なくとも1つの実施形態では、取得部431は、基準クエリを入力した複数の入力利用者により入力された検索クエリであって、それぞれ異なる期間に入力された検索クエリを取得する。
少なくとも1つの実施形態では、取得部431は、入力利用者が基準クエリを入力した後で入力した検索クエリを目的クエリとして取得する。例えば、取得部431は、入力利用者が基準クエリを入力した後で入力した複数の検索クエリを目的クエリとして取得する。
一例では、取得部431は、ログサーバ600から、検索ログを取得する。例えば、取得部431は、ログサーバ600から、検索クエリの履歴を収集する。
一例では、取得部431は、操作者装置700から、基準クエリを取得する。上述のように、基準クエリは、ある日時に入力された所定の検索クエリである。図1を参照して上述したように、基準クエリは、例えば、ある日時(例えば、ある基準日時)に入力されたクエリ「新生児」である。
(特定部432)
少なくとも1つの実施形態では、特定部432は、入力利用者ごとに、各期間に入力された検索クエリが属するカテゴリを特定する。
一例では、特定部432は、取得部431によって取得された基準クエリを入力した入力利用者を特定する。例えば、特定部432は、取得部431によって取得された検索ログから、基準クエリを入力した入力利用者を特定する。図1を参照して上述したように、特定部432は、例えば、ある日時に検索クエリ「新生児」を入力したユーザを、入力利用者として特定する。
次いで、特定部432は、基準日時を基準とした各期間において利用者が入力した検索クエリを特定する。基準日時を基準とした各期間は、基準日時の前後の期間である。一例として、期間の間隔は、1カ月であってもよい。例えば、基準日時が「2020/03/19」である場合に、基準日時の前後の期間は、「2020/03/19~2020/04/19」、「2020/04/19~2020/05/19」等の、基準日時より後の期間や、「2020/02/19~2020/03/19」、「2020/01/19~2020/02/19」等の、基準日時より前の期間である。このように、特定部432は、取得部431によって取得された検索ログから、基準日時を基準とした期間ごとに、基準クエリを入力したユーザの検索クエリを抽出する。
一例では、特定部432は、入力利用者が各期間に入力した検索クエリが属するカテゴリを特定する。図4を参照して上述したように、入力利用者IU1は、例えば、検索クエリ#1-1、検索クエリ#1-2、検索クエリ#1-3等の検索クエリを入力する。検索クエリは、上述の指定カテゴリに属する。検索クエリ#1-1、検索クエリ#1-2および検索クエリ#1-3が指定カテゴリ#1-1、指定カテゴリ#1-2および指定カテゴリ#1-3にそれぞれ対応する場合に、特定部432は、入力利用者IU1が、指定カテゴリ#1-1、指定カテゴリ#1-2および指定カテゴリ#1-3の順番で、検索クエリを入力したと決定する。このように、特定部432は、入力利用者が各期間に入力した検索クエリを、カテゴリ分類する。さらに、特定部432は、カテゴリ(例えば、指定カテゴリ)の遷移態様を特定する。
一例では、特定部432は、各入力利用者のカテゴリの遷移態様を複数のカテゴリに分類する。図4を参照して上述したように、特定部432は、例えば、入力利用者IU1によって入力された複数の検索クエリにそれぞれ対応する複数の指定カテゴリの遷移態様を、カテゴリ分類する。例えば、カテゴリの遷移が指定カテゴリ#1-1、指定カテゴリ#1-2および指定カテゴリ#1-3の順番で起こる場合に、このカテゴリの遷移は、遷移カテゴリ#1に分類される。すなわち、特定部432は、入力利用者のカテゴリの遷移態様を、基準クエリに至る経路に対応する遷移カテゴリに分類する。
(学習部433)
少なくとも1つの実施形態では、学習部433は、特定部432より特定されたカテゴリの変遷の特徴をモデルに学習させる。
少なくとも1つの実施形態では、学習部433は、入力利用者により入力された検索クエリが属するカテゴリの変遷を入力した際に、目的クエリを出力するように、モデルを学習させる。例えば、学習部433は、入力利用者により入力された検索クエリが属するカテゴリの変遷を入力した際に、目的クエリを入力された順序で出力するように、モデルを学習させる。
少なくとも1つの実施形態では、学習部433は、カテゴリの変遷ごとに、モデルを学習させる。例えば、学習部433は、入力利用者により入力された検索クエリが属するカテゴリの変遷と対応するモデルに対し、この入力利用者により入力された検索クエリを入力された順番で入力した際に、この入力利用者が基準クエリよりも後に入力した検索クエリを出力するように、このモデルの学習を行う。
少なくとも1つの実施形態では、学習部433は、類似するカテゴリの変遷と対応する検索クエリが入力された場合に、類似するベクトルを出力し、類似しないカテゴリの変遷と対応する検索クエリが入力された場合に、類似しないベクトルを出力するようにモデルの学習を行う。
少なくとも1つの実施形態では、学習部433は、基準クエリと対応する対象へと至るまでに入力利用者が入力した検索クエリのカテゴリの変遷が有する特徴をモデルに学習させる。
一例では、学習部433は、遷移カテゴリが類似する利用者の検索クエリの履歴が入力された場合に、類似するベクトルを生成し、遷移カテゴリが類似しない利用者の検索クエリの履歴が入力された場合に、類似しないベクトルを生成するように、モデルを学習する。例えば、学習部433は、基準クエリを入力したユーザによって過去に入力された検索クエリに基づいて、ユーザをグループ化する。図4を参照して上述したように、例えば、グループは、遷移カテゴリ#1、遷移カテゴリ#2、遷移カテゴリ#3等の遷移カテゴリのグループである。そして、学習部433は、グループごとに、入力された検索クエリの変遷の特徴を、モデルに学習させる。より具体的には、学習部433は、検索クエリが属するカテゴリの変遷の特徴を、モデルに学習させる。言い換えると、学習部433は、カテゴリの変遷のカテゴリごとに、ユーザをグループ化し、このユーザの検索クエリの変遷を、モデルに学習させる。
図4を参照して上述したように、例えば、入力利用者IU1は、遷移カテゴリ#1に分類される。また、入力利用者IU2は、遷移カテゴリ#2に分類される。学習部433は、所定の辞書を参照することによって、ある遷移カテゴリに類似する他の遷移カテゴリを特定することができる。例えば、遷移カテゴリ#1が辞書において遷移カテゴリ#2に関連付けられている場合に、学習部433は、遷移カテゴリ#2を、遷移カテゴリ#1に類似するカテゴリとして特定することができる。
一例では、学習部433は、複数のユーザが同一の基準クエリを入力した場合であっても、モデルがカテゴリの変遷が異なる場合に異なるベクトルを出力するように、機械学習を行う。このため、学習部433は、ユーザの検索クエリやこの検索クエリのカテゴリを使用することによって、ユーザが基準クエリに至るユーザであるか、またはあるユーザによって入力される将来の検索クエリの特徴を、モデルに精度良く学習させることができる。上述のように、学習部433は、ユーザが過去に入力した検索クエリが属するカテゴリを特定し、特定されたカテゴリの変遷の種別ごとに、モデルの学習を行う。一例として、ユーザが検索クエリ「夢と魔法の国(例示の施設名)」を入力した場合に、学習部433は、ユーザがどのようにこの検索クエリに至るのかを、モデルに学習させることができる。このように、学習部433は、検索クエリのカテゴリの上位概念(例えば、遷移態様)を、モデルに学習させることができる。
(推定部434)
少なくとも1つの実施形態では、推定部434は、利用者が入力された検索クエリか属するカテゴリの変遷から、学習部433により学習させたモデルを用いて、この利用者が将来入力する検索クエリを推定する。
一例では、推定部434は、モデルを用いて、対象ユーザの検索クエリの履歴から対象ユーザが将来入力する検索クエリを予測する。図4を参照して上述したように、例えば、推定部434は、対象ユーザTU1の検索クエリの履歴(例えば、検索クエリ#4-1、検索クエリ#4-2)を学習済みモデルに入力することによって、ベクトル#4を生成する。ベクトル#4は、対象ユーザTU1のカテゴリの遷移態様を示す。例えば、推定部434は、生成されたベクトル#4に類似するベクトルに対応する他の対象ユーザを特定し、特定された他の対象ユーザのユーザ情報に基づいて、強調フィルタリングを行うことができる。このようにして、推定部434は、対象ユーザTU1のニーズの予測や、対象ユーザTU1へのターゲティングを可能にすることができる。上述のグループ(例えば、指定カテゴリ)は、特定のマーケティング(例えば、機種変更)に対応してもよい。
〔3.カテゴリ判定処理のフロー〕
次に、図10を参照して、実施形態に係る情報提供装置100によるカテゴリ判定処理の手順について説明する。
図10は、実施形態に係る情報提供装置100によって実行される、利用者を分類するためのキーワードまたは検索クエリの分類が適切かを判定するための処理の一例を示すフローチャートである。
図10に示されるように、はじめに、情報提供装置100の第1判定処理部410(例えば、取得部411)は、情報提供装置100の検索クエリデータベース310から、検索履歴を取得する(ステップS101)。
次いで、第1判定処理部410(例えば、取得部411)は、取得された検索履歴から、基準クエリを入力した入力利用者を特定する(ステップS102)。
次いで、第1判定処理部410(例えば、分類部412)は、特定された入力利用者(例えば、取得部411によって特定された入力利用者)が入力した検索クエリを、期間ごとにカテゴリ分類する(ステップS103)。
次いで、第1判定処理部410(例えば、判定部413)は、各期間における分類結果(例えば、各期間における分類部412による分類結果)の要素群が所定の条件を満たすか否かを判定する(ステップS104)。
次いで、第1判定処理部410(例えば、判定部413)は、判定結果に応じて、基準クエリ若しくはカテゴリが適切であるかを判定する(ステップS105)。
〔4.期間判定処理のフロー〕
次に、図11を参照して、実施形態に係る情報提供装置100による期間判定処理の手順について説明する。
図11は、実施形態に係る情報提供装置100によって実行される、検索クエリの時系列中の期間が適切であるかを判定するための処理の一例を示すフローチャートである。
図11に示されるにように、はじめに、情報提供装置100の第2判定処理部420(例えば、取得部421)は、情報提供装置100の検索クエリデータベース310から、検索履歴を取得する(ステップS201)。
次いで、第2判定処理部420(例えば、取得部421)は、取得された検索履歴から、基準クエリを入力した入力利用者を特定する(ステップS202)。
次いで、第2判定処理部420(例えば、分類部422)は、特定された入力利用者(例えば、取得部421によって特定された入力利用者)が入力した検索クエリを期間ごとにカテゴリ分類する(ステップS203)。
次いで、第2判定処理部420(例えば、判定部423)は、各期間における分類結果(例えば、各期間における分類部422による分類結果)の要素群が所定の条件を満たすか否かを判定する(ステップS204)。
次いで、第2判定処理部420(例えば、判定部423)は、判定結果に応じて、期間が適切であるかを判定する(ステップS205)。
〔5.モデル学習処理のフロー〕
次に、図12を参照して、実施形態に係る情報提供装置100によるモデル学習処理の手順について説明する。
図12は、実施形態に係る情報提供装置100によって実行される、利用者によって入力される検索クエリのカテゴリの遷移を予測するためのモデルを学習するための処理の一例を示すフローチャートである。
図12に示されるにように、はじめに、情報提供装置100の学習処理部430(例えば、取得部431)は、入力利用者が各期間において入力した検索クエリを取得する(ステップS301)。
次いで、学習処理部430(例えば、特定部432)は、取得された検索クエリ(例えば、取得部431によって取得された検索クエリ)をカテゴリ分類する(ステップS302)。
次いで、学習処理部430(例えば、特定部432)は、各入力利用者を、カテゴリの遷移態様ごとに分類する(ステップS303)。各入力利用者は、カテゴリの遷移態様を表す各遷移カテゴリに分類される。
次いで、学習処理部430(例えば、学習部433)は、類似する遷移カテゴリの検索クエリの履歴が入力された場合は、類似するベクトルを出力し、類似しない遷移カテゴリの検索クエリの履歴が入力された場合は、類似しないベクトルを出力するように、モデルを学習する(ステップS304)。
〔6.他の実施形態〕
上述の実施形態に係る情報提供装置100は、上述の実施形態以外にも、種々の異なる形態で実施されてよい。そこで、以下では、上記の情報提供装置100の他の実施形態について説明する。
〔6-1.指定カテゴリの表現〕
上述の指定カテゴリは、基準クエリによって示される対象に至る経路を示すカテゴリであり得る。例えば、ユーザが、第1の雑誌に掲載された第1の漫画のタイトルを、期間「-3~―2月」に、検索クエリとして入力し、第2の雑誌に掲載された第2の漫画のタイトルを、期間「-2~―1月」に、検索クエリとして入力し、第3の雑誌に掲載された第3の漫画のタイトルを、期間「-1~0月」に、検索クエリとして入力したと仮定する。さらに、他のユーザが、第1のアミューズメントパークでの第1のイベント名を、期間「-3~―2月」に、検索クエリとして入力し、第2のアミューズメントパークでの第2のイベント名を、期間「-2~―1月」に、検索クエリとして入力し、第3のアミューズメントパークでの第3のイベント名を、期間「-1~0月」に、検索クエリとして入力したと仮定する。この例では、検索クエリ「第1の漫画のタイトル」、検索クエリ「第2の漫画のタイトル」および検索クエリ「第3の漫画のタイトル」は、指定カテゴリ「漫画」に属する。検索クエリ「第1の漫画のタイトル」は、指定カテゴリ「第1の雑誌」に属さなくてもよく、検索クエリ「第2の漫画のタイトル」は、指定カテゴリ「第2の雑誌」に属さなくてもよく検索クエリ「第3の漫画のタイトル」は、指定カテゴリ「第3の雑誌」に属さなくてもよい。すなわち、指定カテゴリは、検索クエリの分類するための通常のカテゴリ(例えば、第1の雑誌、第2の雑誌、第3の雑誌、第1のアミューズメントパーク、第2のアミューズメントパーク、第3のアミューズメントパーク)よりも上位のカテゴリ(例えば、漫画、アミューズメントパーク)であり得る。
上述の指定カテゴリ「漫画」は、検索クエリ「第1の漫画のタイトル」および検索クエリ「第2の漫画のタイトル」を介して「第3の漫画のタイトル」に至る経路を、粗視化することができる。同様に、上述の指定カテゴリ「アミューズメントパーク」は、検索クエリ「第1のイベント名」および検索クエリ「第2のイベント名」を介して「第3のイベント名」に至る経路を、粗視化することができる。上述のように、情報提供装置100の第1判定処理部410(例えば、分類部412)は、期間ごとに、基準クエリによって示される対象に至る複数の経路にそれぞれ対応する複数のカテゴリのうちのいずれかに、検索クエリを分類することができる。そして、第1判定処理部410(例えば、分類部412)は、分類結果に基づいて、基準クエリやカテゴリ(例えば、指定カテゴリ)が適切であるかを判定することができる。
〔6-2.検索クエリの要素群の分散〕
上述の実施形態では、検索クエリの要素群が収束している場合に、情報提供装置100の第1判定処理部410(例えば、判定部413)は、検索クエリのリストが適切であると判定しているが、これに限定されるものではない。要素群の分散が高い場合に(例えば、要素群が分散的に形成される場合に)、検索クエリのリストが適切であると判定してもよい。要素群の分散が高い場合に、検索クエリのリストの網羅性が高い可能性がある。このようなリストは、ターゲットの範囲が広いリストであり得る。例えば、リストは、多くのユーザが興味を持つキーワード(例えば、検索クエリ)を含み得る。一方、要素群の分散が低い場合に、リストは、特定のターゲットユーザが興味を持つキーワード(例えば、検索クエリ)を含み得る。
〔6-3.機械学習モデルによる検索行動の予測〕
上述の実施形態では、情報提供装置100の学習処理部430(例えば、学習部433)は、モデルがカテゴリの遷移態様を示すベクトルを出力するように、モデルの学習を行っているが、これに限定されるものではない。学習処理部430(例えば、学習部433)は、特定の時系列の検索履歴を学習した機械学習モデルを使用することによって、あるユーザの特定の時系列の検索履歴から、将来の検索クエリを予測してもよい。一般的に、過去の行動は、未来の行動のトリガである。未来の行動は、過去の複数の行動に起因することがある。このような機械学習では、基準日時より前の期間に入力された検索クエリが、説明変数に対応する。一方、基準日時より後の期間に入力された検索クエリは、目的変数に対応する。ユーザの特定の時系列の検索履歴が学習済みモデルに入力された場合に、学習済みモデルは、将来の検索クエリを推定することができる。
時系列に沿った複数の検索クエリは、予めベクトル化されていてもよい。上述のように、例えば、検索クエリに対応する埋め込みベクトルは、各種言語表現モデルを訓練することによって、獲得され得る。
いくつかの実装形態では、情報提供装置100の学習処理部430(例えば、学習部433)は、検索ログを含む訓練データを使用することによって、系列変換モデル(Sequence To Sequence Model)等のモデルアーキテクチャを訓練してもよい。例えば、学習部433は、検索ログを含む訓練データを使用して系列変換モデルに対応する負の対数尤度を最小化することによって、系列変換モデルを訓練することができる。系列変換モデルの例は、トランスフォーマモデル(Transformer Model)等のアテンション機構を有するモデルや、RNN(Recurrent Neural Network)(例えば、LSTM(Long Short Term Memory)等のゲート付きRNN)を含む。訓練データに含まれるインスタンスは、例えば、時系列の検索クエリや、時系列のカテゴリ(すなわち、カテゴリの遷移)である。インスタンスに関連付けられたラベルは、例えば、検索クエリ(例えば、基準クエリ)や、カテゴリ(例えば、指定カテゴリ)である。学習部433は、訓練済みの系列変換モデルに、時系列の検索クエリを入力することによって、将来の検索クエリや将来のカテゴリを予測することができる。
〔6-4.時系列の検索クエリに基づくターゲティング〕
いくつかの実施形態では、情報提供装置100の第1判定処理部410または第2判定処理部420は、検索クエリのうち、第1の検索クエリが入力される前に入力された、この第1の検索クエリに関連する第2の検索クエリを、この第1の検索クエリに基づくターゲティングに使用されるキーワードとして特定する特定部(図示せず)を有してもよい。情報提供装置100の学習処理部430に関しては、上述の特定部432は、第1特定部として実装されてもよい。この場合、上述の特定部は、学習処理部430において第2特定部として実装されてもよい。
特定部は、時系列の検索クエリから、ある日時に入力された第1の検索クエリと関連性のある、この日時より前に入力された第2の検索クエリを特定する。後述するように、特定部は、特定された第2のクエリを、第1の検索クエリに基づくターゲティングに使用することができる。
時系列の検索クエリは、例えば、取得部411や取得部421によって取得された、基準クエリを入力した複数の入力利用者によって入力された検索クエリである。第1の検索クエリは、基準クエリであってもよく、基準クエリ以外の検索クエリであってもよい。
一例として、第1の検索クエリと関連性のある第2の検索クエリは、図1を参照して上述した検索クエリ間の関連度に基づいて、特定されてもよい。上述のように、検索クエリ間の関連度は、例えば、検索クエリに対応する埋め込みベクトル間のコサイン類似度であってもよい。例えば、第1の検索クエリと他の検索クエリとの関連度が閾値を満たす場合に、特定部は、他の検索クエリを、第2の検索クエリとして特定してもよい。例えば、第1の検索クエリが「機種変更」である場合に、第2の検索クエリは、バッテリ交換、料金プラン、パケット料金等の検索クエリであってもよい。あるいは、第2の検索クエリは、企業C1(例示の企業名)、社長P1(例示の人名)、あの犬(例示のマスコット名)、スマートフォンSP1(例示のスマートフォン名)等の、図1を参照して上述した検索クエリであってもよい。
別の例として、第1の検索クエリと関連性のある第2の検索クエリは、第1の検索クエリが入力される前の所定の期間における検索クエリの数または検索クエリを入力したユーザの数に基づいて、特定されてもよい。例えば、検索クエリの数またはユーザの数が閾値を満たす場合に、特定部は、この検索クエリを、第2の検索クエリとして特定してもよい。
第1の検索クエリに基づくターゲティングは、例えば、第1の検索クエリに対応する取引対象(例えば、商品またはサービス)のターゲティングである。特定部は、取引対象に関する情報(例えば、広告コンテンツ)を、ユーザにターゲティングすることができる。言い換えると、広告コンテンツのターゲットが、特定のユーザに絞られる。いくつかの実装形態では、情報提供装置100の記憶部300は、ユーザ装置500のユーザのユーザ情報を記憶するユーザデータベース(図示せず)を有してもよい。特定部は、SQL(Structured Query Language)クエリを処理し、第2の検索クエリを入力したユーザを、ユーザデータベースから特定してもよい。そして、特定部は、特定されたユーザに、取引対象に関する情報を提供してもよい。
説明のための一例として、第1の検索クエリが、「機種変更」であると仮定する。さらに、第1の検索クエリと関連性のある第2の検索クエリが、「バッテリ交換」であると仮定する。この例では、特定部は、検索クエリ「機種変更」に対応する取引対象に関する情報を、検索クエリ「バッテリ交換」を入力したユーザにターゲティングすることができる。特定部は、機種変更に関する各種情報(例えば、機種変更キャンペーンに関する情報、広告コンテンツ)を、ユーザの電子メールアカウント、ユーザへのプッシュ通知またはユーザのパーソナルページなどを介して、提供することができる。
特定部は、特定された第2のクエリを、広告ターゲティングデータ(例えば、ターゲティングキーワード)として、情報提供装置100に関係するエンティティに提供してもよい。また、特定部は、特定された第2のクエリを入力したユーザを、ユーザデータベースから特定し、特定されたユーザを、ターゲティンググループに分類してもよい。ターゲティンググループは、例えば、第2のクエリを入力したユーザに関する情報(例えば、ユーザID)を含む。特定部は、第2のクエリに関連付けられたターゲティンググループを、広告ターゲティングデータとして、情報提供装置100に関係するエンティティに提供してもよい。
〔7.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
例えば、図5に示した記憶部300の一部又は全部は、情報提供装置100によって保持されるのではなく、ストレージサーバ等に保持されてもよい。この場合、情報提供装置100は、ストレージサーバにアクセスすることで、検索クエリ等の各種情報を取得する。
〔8.ハードウェア構成〕
また、上述してきた実施形態に係る情報提供装置100は、例えば図13に示すような構成のコンピュータ1000によって実現される。図13は、ハードウェア構成の一例を示す図である。コンピュータ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が情報提供装置100として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部400の機能を実現する。
〔9.効果〕
上述してきたように、実施形態に係る情報提供装置100の学習処理部430は、取得部431と、特定部432と、学習部433とを有する。
実施形態に係る情報提供装置100において、取得部431は、基準クエリを入力した複数の入力利用者により入力された検索クエリであって、それぞれ異なる期間に入力された検索クエリを取得する。また、実施形態に係る情報提供装置100において、特定部432は、入力利用者ごとに、各期間に入力された検索クエリが属するカテゴリを特定する。また、実施形態に係る情報提供装置100において、学習部433は、特定部432より特定されたカテゴリの変遷の特徴をモデルに学習させる。
また、実施形態に係る情報提供装置100において、取得部431は、入力利用者が基準クエリを入力した後で入力した複数の検索クエリを目的クエリとして取得する。また、実施形態に係る情報提供装置100において、学習部433は、入力利用者により入力された検索クエリが属するカテゴリの変遷を入力した際に、目的クエリを入力された順序で出力するように、モデルを学習させる。
また、実施形態に係る情報提供装置100において、取得部431は、入力利用者が基準クエリを入力した後で入力した複数の検索クエリを目的クエリとして取得する。また、実施形態に係る情報提供装置100において、学習部433は、入力利用者により入力された検索クエリが属するカテゴリの変遷を入力した際に、目的クエリを入力された順序で出力するように、モデルを学習させる。
また、実施形態に係る情報提供装置100において、学習部433は、カテゴリの変遷ごとに、モデルを学習させる。
また、実施形態に係る情報提供装置100において、学習部433は、入力利用者により入力された検索クエリが属するカテゴリの変遷と対応するモデルに対し、この入力利用者により入力された検索クエリを入力された順番で入力した際に、この入力利用者が基準クエリよりも後に入力した検索クエリを出力するように、このモデルの学習を行う。
また、実施形態に係る情報提供装置100において、学習部433は、類似するカテゴリの変遷と対応する検索クエリが入力された場合に、類似するベクトルを出力し、類似しないカテゴリの変遷と対応する検索クエリが入力された場合に、類似しないベクトルを出力するようにモデルの学習を行う。
また、実施形態に係る情報提供装置100において、学習部433は、基準クエリと対応する対象へと至るまでに入力利用者が入力した検索クエリのカテゴリの変遷が有する特徴をモデルに学習させる。
また、実施形態に係る情報提供装置100の学習処理部430は、利用者が入力された検索クエリか属するカテゴリの変遷から、学習部433により学習させたモデルを用いて、この利用者が将来入力する検索クエリを推定する推定部434を有する。
上述した各処理により、情報提供装置100は、利用者と所定の検索クエリが示す対象との関係性をより適切に分析することができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述した情報提供装置100は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をAPI(Application Programming Interface)やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。