IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッドの特許一覧

特表2022-530688ソートモデルの構築方法、クエリ自動補完の方法及び対応装置
<>
  • 特表-ソートモデルの構築方法、クエリ自動補完の方法及び対応装置 図1
  • 特表-ソートモデルの構築方法、クエリ自動補完の方法及び対応装置 図2
  • 特表-ソートモデルの構築方法、クエリ自動補完の方法及び対応装置 図3
  • 特表-ソートモデルの構築方法、クエリ自動補完の方法及び対応装置 図4
  • 特表-ソートモデルの構築方法、クエリ自動補完の方法及び対応装置 図5
  • 特表-ソートモデルの構築方法、クエリ自動補完の方法及び対応装置 図6
  • 特表-ソートモデルの構築方法、クエリ自動補完の方法及び対応装置 図7
  • 特表-ソートモデルの構築方法、クエリ自動補完の方法及び対応装置 図8
  • 特表-ソートモデルの構築方法、クエリ自動補完の方法及び対応装置 図9
  • 特表-ソートモデルの構築方法、クエリ自動補完の方法及び対応装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-06-30
(54)【発明の名称】ソートモデルの構築方法、クエリ自動補完の方法及び対応装置
(51)【国際特許分類】
   G06F 16/387 20190101AFI20220623BHJP
【FI】
G06F16/387
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021568806
(86)(22)【出願日】2020-09-24
(85)【翻訳文提出日】2021-11-25
(86)【国際出願番号】 CN2020117561
(87)【国際公開番号】W WO2021139222
(87)【国際公開日】2021-07-15
(31)【優先権主張番号】202010011383.8
(32)【優先日】2020-01-06
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】512015127
【氏名又は名称】バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】フアン、ジジョウ
(72)【発明者】
【氏名】ワン、ハイフェン
(72)【発明者】
【氏名】ファン、ミアオ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA03
5B175GC01
(57)【要約】
本開示はインテリジェント検索技術の分野に関するソートモデルの構築方法、クエリ自動補完の方法及び対応装置を開示する。具体的な実現方式は、POIクエリログから、ユーザがクエリ補完提案からPOIを選択する時に既に入力したクエリプレフィックス、当該クエリプレフィックスに対応するクエリ補完提案中の各POI、及びクエリ補完提案中でユーザによって選択されたPOIを取得し、同一のクエリプレフィックスに対応するクエリ補完提案中でユーザによって選択されたPOI及びユーザによって選択されていないPOIを使用して正例-負例ペアを構成し、クエリプレフィックスと、クエリプレフィックスに対応する正例-負例ペアを使用してトレーニングしてソートモデルを得、トレーニング目標は、クエリプレフィックスのベクトル表現と対応する正例POIのベクトル表現との類似度と、クエリプレフィックスのベクトル表現と対応する負例POIのベクトル表現との類似度との間の差を最大化することにある。
【選択図】図3
【特許請求の範囲】
【請求項1】
クエリ自動補完のためのソートモデルを構築する方法であって、
POIクエリログから、ユーザがクエリ補完提案からPOIを選択する時に既に入力したクエリプレフィックス、当該クエリプレフィックスに対応するクエリ補完提案中の各POI、及びクエリ補完提案中でユーザによって選択されたPOIを取得するステップと、
同一のクエリプレフィックスに対応するクエリ補完提案中でユーザによって選択されたPOI及びユーザによって選択されていないPOIを使用して正例-負例ペアを構成するステップと、
クエリプレフィックスと、クエリプレフィックスに対応する正例-負例ペアを使用してトレーニングしてソートモデルを得るステップと、を含み、
前記ソートモデルのトレーニング目標は、クエリプレフィックスのベクトル表現と対応する正例POIのベクトル表現との類似度と、クエリプレフィックスのベクトル表現と対応する負例POIのベクトル表現との類似度との間の差を最大化することにある、
クエリ自動補完のためのソートモデルを構築する方法。
【請求項2】
前記ソートモデルは、プレフィックス組込みネットワーク、POI組込みネットワーク、及びソートネットワークを含み、
前記プレフィックス組込みネットワークはクエリプレフィックスのベクトル表現を得るために用いられ、前記POI組込みネットワークは各POIのベクトル表現を得るために用いられ、前記ソートネットワークはクエリプレフィックスのベクトル表現と対応するPOIのベクトル表現との間の類似度を決定するために用いられる、
請求項1に記載のクエリ自動補完のためのソートモデルを構築する方法。
【請求項3】
前記プレフィックス組込みネットワークはリカレントニューラルネットワークを含み、
前記クエリプレフィックスのベクトル表現を得るステップは、
前記クエリプレフィックス内の各文字に対応する文字ベクトルをリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得、または、
前記ユーザの属性特徴ベクトルと前記クエリプレフィックス内の各文字に対応する文字ベクトルをそれぞれスプライスした後にリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対応する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得るステップを含む、
請求項2に記載のクエリ自動補完のためのソートモデルを構築する方法。
【請求項4】
前記各POIのベクトル表現を得るステップは、
POIの属性情報を符号化し、POIのベクトル表現を得るステップを含む、
請求項2に記載のクエリ自動補完のためのソートモデルを構築する方法。
【請求項5】
前記POI組込みネットワークは、畳み込みニューラルネットワーク、フィードフォワードニューラルネットワーク、および全接続層を含み、
前記POIの属性情報を符号化するステップは、
畳み込みニューラルネットワークを使用してPOIの名前と住所情報を符号化するステップと、
フィードフォワードニューラルネットワークを使用してPOIの他の属性情報を符号化するステップと、
同一のPOIの符号化結果をスプライスした後に、全接続層のマッピングにより、当該POIのベクトル表現を得るステップと、を含む、
請求項4に記載のクエリ自動補完のためのソートモデルを構築する方法。
【請求項6】
前記ソートモデルをトレーニングするプロセス中に、前記ソートネットワークの出力を使用してトリプレット損失関数を決定し、前記トリプレット損失関数が予め設定された要求を満たすか、または予め設定されたモデルパラメータ更新回数に達するまで、トリプレット損失関数を使用してフォワードフィードバックして前記プレフィックス組込みネットワーク、POI組込みネットワーク、及びソートネットワークのモデルパラメータを更新する、
請求項2に記載のクエリ自動補完のためのソートモデルを構築する方法。
【請求項7】
クエリ自動補完の方法であって、
ユーザが現在入力したクエリプレフィックスを得、前記クエリプレフィックスに対応する候補関心ポイントPOIを決定するステップと、
前記クエリプレフィックスと前記候補POIをソートモデルに入力し、前記ソートモデルが各候補POIに対する評点を得るステップであって、前記候補POIの評点は、前記クエリプレフィックスのベクトル表現と候補POIのベクトル表現との間の類似度に基づいて得るステップと、
各候補POIの評点に基づいて前記ユーザに推奨するクエリ補完提案を決定するステップと、を含み、
前記ソートモデルは、請求項1~6のいずれか1項に記載の方法を使用して予めトレーニングして得られる、
クエリ自動補完の方法。
【請求項8】
前記クエリプレフィックスのベクトル表現は、
前記ソートモデルにおいて、前記クエリプレフィックス内の各文字に対応する文字ベクトルをリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得、または、
前記ソートモデルにおいて、前記ユーザの属性特徴ベクトルと前記クエリプレフィックス内の各文字に対応する文字ベクトルをそれぞれスプライスした後にリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対応する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得る、方式を使用して得る、
請求項7に記載のクエリ自動補完の方法。
【請求項9】
前記各POIのベクトル表現は、
前記ソートモデルにおいて、各POIの属性情報を符号化して、POIのベクトル表現を得る方式を使用して決定される、
請求項7に記載のクエリ自動補完の方法。
【請求項10】
前記POIの属性情報を符号化するステップは、
前記ソートモデルにおいて、畳み込みニューラルネットワークを使用してPOIの名前と住所情報を符号化するステップと、
フィードフォワードニューラルネットワークを使用してPOIの他の属性情報を符号化するステップと、
同一のPOIの符号化結果をスプライスした後に、全接続層のマッピングにより、当該POIのベクトル表現を得るステップと、を含む、
請求項9に記載のクエリ自動補完の方法。
【請求項11】
クエリ自動補完のためのソートモデルを構築する装置であって、
POIクエリログから、ユーザがクエリ補完提案からPOIを選択する時に既に入力したクエリプレフィックス、当該クエリプレフィックスに対応するクエリ補完提案中の各POI、及びクエリ補完提案中でユーザによって選択されたPOIを得るための第1の取得ユニットと、
同一のクエリプレフィックスに対応するクエリ補完提案中でユーザによって選択されたPOI及びユーザによって選択されていないPOIを使用して正例-負例ペアを構成するための第2の取得ユニットと、
クエリプレフィックスと、クエリプレフィックスに対応する正例-負例ペアを使用してトレーニングしてソートモデルを得るためのモデルトレーニングユニットと、を含み、
前記ソートモデルのトレーニング目標は、クエリプレフィックスのベクトル表現と対応する正例POIのベクトル表現との類似度と、クエリプレフィックスのベクトル表現と対応する負例POIのベクトル表現との類似度との間の差を最大化することにある、
クエリ自動補完のためのソートモデルを構築する装置。
【請求項12】
前記ソートモデルは、プレフィックス組込みネットワーク、POI組込みネットワーク、及びソートネットワークを含み、
前記プレフィックス組込みネットワークはクエリプレフィックスのベクトル表現を得るために用いられ、前記POI組込みネットワークは各POIのベクトル表現を得るために用いられ、前記ソートネットワークはクエリプレフィックスのベクトル表現と対応するPOIのベクトル表現との間の類似度を決定するために用いられる、
請求項11に記載のクエリ自動補完のためのソートモデルを構築する装置。
【請求項13】
前記プレフィックス組込みネットワークはリカレントニューラルネットワークを含み、
前記モデルトレーニングユニットは、ソートモデルをトレーニングするプロセス中に、具体的に、
前記クエリプレフィックス内の各文字に対応する文字ベクトルをリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得、または、
前記ユーザの属性特徴ベクトルと前記クエリプレフィックス内の各文字に対応する文字ベクトルをそれぞれスプライスした後にリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対応する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得るために用いられる、
請求項12に記載のクエリ自動補完のためのソートモデルを構築する装置。
【請求項14】
前記モデルトレーニングユニットは、ソートモデルをトレーニングするプロセス中に、具体的に、前記POI組込みネットワークを介してPOIの属性情報を符号化し、POIのベクトル表現を得るために用いられる、
請求項12に記載のクエリ自動補完のためのソートモデルを構築する装置。
【請求項15】
前記POI組込みネットワークは、畳み込みニューラルネットワーク、フィードフォワードニューラルネットワーク、および全接続層を含み、
前記モデルトレーニングユニットが前記POI組込みネットワークを介してPOIの属性情報を符号化する時に、具体的に、
畳み込みニューラルネットワークを使用してPOIの名前と住所情報を符号化し、
フィードフォワードニューラルネットワークを使用してPOIの他の属性情報を符号化し、
同一のPOIの符号化結果をスプライスした後に、全接続層のマッピングにより、当該POIのベクトル表現を得るために用いられる、
請求項14に記載のクエリ自動補完のためのソートモデルを構築する装置。
【請求項16】
前記モデルトレーニングユニットは、前記ソートモデルをトレーニングするプロセス中に、前記ソートネットワークの出力を使用してトリプレット損失関数を決定し、前記トリプレット損失関数が予め設定された要求を満たすか、または予め設定されたモデルパラメータ更新回数に達するまで、トリプレット損失関数を使用してフォワードフィードバックして前記プレフィックス組込みネットワーク、POI組込みネットワーク、及びソートネットワークのモデルパラメータを更新する、
請求項12に記載のクエリ自動補完のためのソートモデルを構築する装置。
【請求項17】
クエリ自動補完の装置であって、
ユーザが現在入力したクエリプレフィックスを取得し、前記クエリプレフィックスに対応する候補関心ポイントPOIを決定するための取得ユニットと、
前記クエリプレフィックスと前記候補POIをソートモデルに入力し、前記ソートモデルが各候補POIに対する評点を得るための評点ユニットであって、前記候補POIの評点は、前記クエリプレフィックスのベクトル表現と候補POIのベクトル表現との間の類似度に基づいて得られる評点ユニットと、
各候補POIの評点に基づいて前記ユーザに推奨するクエリ補完提案を決定するためのクエリ補完ユニットと、を含み、
前記ソートモデルは、請求項11~16のいずれか1項に記載の装置によって予めトレーニングして得る、
クエリ自動補完の装置。
【請求項18】
前記評点ユニットは、具体的に、
前記ソートモデルにおいて、前記クエリプレフィックス内の各文字に対応する文字ベクトルをリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得、または、
前記ソートモデルにおいて、前記ユーザの属性特徴ベクトルと前記クエリプレフィックス内の各文字に対応する文字ベクトルをそれぞれスプライスした後にリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対応する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得るために用いられる、
請求項17に記載のクエリ自動補完の装置。
【請求項19】
前記評点ユニットは、具体的に、
前記ソートモデルにおいて、各POIの属性情報を符号化して、POIのベクトル表現を得るために用いられる、
請求項17に記載のクエリ自動補完の装置。
【請求項20】
前記評点ユニットは、具体的に、
前記ソートモデルにおいて、畳み込みニューラルネットワークを使用してPOIの名前と住所情報を符号化し、
フィードフォワードニューラルネットワークを使用してPOIの他の属性情報を符号化し、
同一のPOIの符号化結果をスプライスした後に、全接続層のマッピングにより、当該POIのベクトル表現を得るために用いられる、
請求項19に記載のクエリ自動補完の装置。
【請求項21】
電子機器であって、
少なくとも一つのプロセッサと、
前記少なくとも一つのプロセッサと通信接続されたメモリと、を含み、
前記メモリに前記少なくとも一つのプロセッサにより実行可能な命令が記憶されており、前記命令が前記少なくとも一つのプロセッサにより実行されると、前記少なくとも一つのプロセッサが請求項1~10のいずれか1項に記載の方法を実行する、
電子機器。
【請求項22】
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、
前記コンピュータ命令は、前記コンピュータに請求項1~10のいずれか1項に記載の方法を実行させる、
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項23】
コンピュータに請求項1~10のいずれか1項に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は出願日が2020年01月06日であり、出願番号が2020100113838であり、発明の名称が「ソートモデルの構築方法、クエリ自動補完の方法及び対応装置」である中国特許出願の優先権を主張する。
【0002】
本開示はコンピュータアプリケーション技術の分野に関し、特に、インテリジェント検索技術分野のソートモデルの構築方法、クエリ自動補完の方法及び対応装置に関する。
【背景技術】
【0003】
QAC(Query Auto-ComPletion、クエリ自動補完)は、現在、既に主流の汎用検索エンジンと垂直検索エンジンで広く採用されている。例えば、マップアプリケーションでは、ユーザがquery(クエリ)を入力して、あるPOI(Point of IntereSt、関心ポイント)を検索する時、ユーザが不完全なqueryの入力を開始してから(本開示ではユーザが入力した不完全なqueryをクエリプレフィックスと呼ぶ)、検索エンジンは、ユーザがqueryの補完結果(本開示では候補リストで推奨されるqueryをクエリ補完提案と呼ぶ)として選択するように、候補リスト内の一連の候補のPOIをリアルタイムでユーザに推奨することができる。ユーザが候補リストでその意図しているPOIを発見する場合、候補リストから当該POIを選択してqueryを補完することによって、当該POIの検索を開始する。
【0004】
例えば、図1に示すように、ユーザがマップアプリケーションの検索ボックスにクエリプレフィックス「バイドゥ(百度)」を入力した場合、ユーザが選択するように、候補リストの形式でユーザに「バイドゥビル」、「バイドゥビル-C座」、「バイドゥ科学技術園」などのような候補POIを推奨することができ、一旦、ユーザがその中から「バイドゥビル」を選択すると、queryの補完を完了し、「バイドゥビル」に対する検索を開始する。
【0005】
しかし、既存のクエリ自動補完方式では、同じクエリプレフィックスに対して提供される提案はすべて同じであり、例えばいずれも候補リスト内の各POIの検索の人気に基づいてソートし、ユーザがクエリプレフィックスに対する入力習慣を考慮していない。例えば、ユーザは、習慣的に、クエリプレフィックス「ba」を入力した場合にクエリ補完提案から「バイドゥビルA座」をクリックして検索する。しかし、クエリ補完提案における各POIは検索の人気に従ってソートするため、人気の「八達嶺万里の長城」、「八達嶺アウトレット」、「八大処」、「バイドゥビル」などの人気POIは、常に前に並べられているので、ユーザは、毎回クエリ補完提案において後ろに並べられた「バイドゥビルA座」を見つけるか、またはさらにいくつかの文字を多く入力して「バイドゥビルA座」を選択する必要がある。明らかにユーザにとっては、入力コストが高く、効率が低くなる。
【発明の概要】
【発明が解決しようとする課題】
【0006】
これに鑑みて、本開示はソートモデルの構築方法、クエリ自動補完の方法及び対応装置、機器及びコンピュータ記憶媒体を提供して、推奨するクエリ補完提案がユーザのクエリプレフィックスに対する入力習慣により良く適合し、ユーザの入力コストを減らす。
【課題を解決するための手段】
【0007】
第1の態様によれば、本開示はクエリ自動補完のためのソートモデルを構築する方法を提供し、当該方法は、
POIクエリログから、ユーザがクエリ補完提案からPOIを選択する時に既に入力したクエリプレフィックス、当該クエリプレフィックスに対応するクエリ補完提案中の各POI、及びクエリ補完提案中でユーザによって選択されたPOIを取得するステップと、
同一のクエリプレフィックスに対応するクエリ補完提案中でユーザによって選択されたPOI及びユーザによって選択されていないPOIを使用して正例-負例ペアを構成するステップと、
クエリプレフィックスと、クエリプレフィックスに対応する正例-負例ペアを使用してトレーニングしてソートモデルを得るステップと、を含み、
前記ソートモデルのトレーニング目標は、クエリプレフィックスのベクトル表現と対応する正例POIのベクトル表現との類似度と、クエリプレフィックスのベクトル表現と対応する負例POIのベクトル表現との類似度との間の差を最大化することにある。
【0008】
本開示の好ましい実施形態によれば、前記ソートモデルは、プレフィックス組込みネットワーク、POI組込みネットワーク、及びソートネットワークを含み、
前記プレフィックス組込みネットワークはクエリプレフィックスのベクトル表現を得るために用いられ、前記POI組込みネットワークは各POIのベクトル表現を得るために用いられ、前記ソートネットワークはクエリプレフィックスのベクトル表現と対応するPOIのベクトル表現との間の類似度を決定するために用いられる。
【0009】
本開示の好ましい実施形態によれば、前記プレフィックス組込みネットワークはリカレントニューラルネットワークを含み、
前記クエリプレフィックスのベクトル表現を得るステップは、
前記クエリプレフィックス内の各文字に対応する文字ベクトルをリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得、または、
前記ユーザの属性特徴ベクトルと前記クエリプレフィックス内の各文字に対応する文字ベクトルをそれぞれスプライスした後にリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対応する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得るステップを含む。
【0010】
本開示の好ましい実施形態によれば、前記各POIのベクトル表現を得るステップは、
POIの属性情報を符号化し、POIのベクトル表現を得るステップを含む。
【0011】
本開示の好ましい実施形態によれば、前記POI組込みネットワークは、畳み込みニューラルネットワーク、フィードフォワードニューラルネットワーク、および全接続層を含み、
前記POIの属性情報を符号化するステップは、
畳み込みニューラルネットワークを使用してPOIの名前と住所情報を符号化するステップと、
フィードフォワードニューラルネットワークを使用してPOIの他の属性情報を符号化するステップと、
同一のPOIの符号化結果をスプライスした後に、全接続層のマッピングにより、当該POIのベクトル表現を得るステップと、を含む。
【0012】
本開示の好ましい実施形態によれば、前記ソートモデルをトレーニングするプロセス中に、前記ソートネットワークの出力を使用してトリプレット損失関数を決定し、前記トリプレット損失関数が予め設定された要求を満たすか、または予め設定されたモデルパラメータ更新回数に達するまで、トリプレット損失関数を使用してフォワードフィードバックして前記プレフィックス組込みネットワーク、POI組込みネットワーク、及びソートネットワークのモデルパラメータを更新する。
【0013】
第2の態様によれば、本開示はクエリ自動補完の方法を提供し、当該方法は、
ユーザが現在入力したクエリプレフィックスを取得し、前記クエリプレフィックスに対応する候補関心ポイントPOIを決定するステップと、
前記クエリプレフィックスと前記候補POIをソートモデルに入力し、前記ソートモデルが各候補POIに対する評点を得るステップであって、前記候補POIの評点は、前記クエリプレフィックスのベクトル表現と候補POIのベクトル表現との間の類似度に基づいて得るステップと、
各候補POIの評点に基づいて前記ユーザに推奨するクエリ補完提案を決定するステップと、を含み、
前記ソートモデルは上記の方法を使用して予めトレーニングして得る。
【0014】
本開示の好ましい実施形態によれば、前記クエリプレフィックスのベクトル表現は、
前記ソートモデルにおいて、前記クエリプレフィックス内の各文字に対応する文字ベクトルをリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得、または、
前記ソートモデルにおいて、前記ユーザの属性特徴ベクトルと前記クエリプレフィックス内の各文字に対応する文字ベクトルをそれぞれスプライスした後にリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対応する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得る方式、を使用して得る。
【0015】
本開示の好ましい実施形態によれば、前記各POIのベクトル表現は、
前記ソートモデルにおいて、各POIの属性情報を符号化して、POIのベクトル表現を得る方式を使用して決定される。
【0016】
本開示の好ましい実施形態によれば、前記POIの属性情報を符号化するステップは、
前記ソートモデルにおいて、畳み込みニューラルネットワークを使用してPOIの名前と住所情報を符号化するステップと、
フィードフォワードニューラルネットワークを使用してPOIの他の属性情報を符号化するステップと、
同一のPOIの符号化結果をスプライスした後に、全接続層のマッピングにより、当該POIのベクトル表現を得るステップと、を含む。
【0017】
第3の態様によれば、本開示はクエリ自動補完のためのソートモデルを構築する装置を提供し、当該装置は、
POIクエリログから、ユーザがクエリ補完提案からPOIを選択する時に既に入力したクエリプレフィックス、当該クエリプレフィックスに対応するクエリ補完提案中の各POI、及びクエリ補完提案中でユーザによって選択されたPOIを取得するための第1の取得ユニットと、
同一のクエリプレフィックスに対応するクエリ補完提案中でユーザによって選択されたPOI及びユーザによって選択されていないPOIを使用して正例-負例ペアを構成するための第2の取得ユニットと、
クエリプレフィックスと、クエリプレフィックスに対応する正例-負例ペアを使用してトレーニングしてソートモデルを得るためのモデルトレーニングユニットと、を含み、
前記ソートモデルのトレーニング目標は、クエリプレフィックスのベクトル表現と対応する正例POIのベクトル表現との類似度と、クエリプレフィックスのベクトル表現と対応する負例POIのベクトル表現との類似度との間の差を最大化することにある。
【0018】
本開示の好ましい実施形態によれば、前記ソートモデルは、プレフィックス組込みネットワーク、POI組込みネットワーク、及びソートネットワークを含み、
前記プレフィックス組込みネットワークはクエリプレフィックスのベクトル表現を得るために用いられ、前記POI組込みネットワークは各POIのベクトル表現を得るために用いられ、前記ソートネットワークはクエリプレフィックスのベクトル表現と対応するPOIのベクトル表現との間の類似度を決定するために用いられる。
【0019】
本開示の好ましい実施形態によれば、前記プレフィックス組込みネットワークはリカレントニューラルネットワークを含み、
前記モデルトレーニングユニットは、ソートモデルをトレーニングするプロセス中に、具体的に、
前記クエリプレフィックス内の各文字に対応する文字ベクトルをリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を取得し、または、
前記ユーザの属性特徴ベクトルと前記クエリプレフィックス内の各文字に対応する文字ベクトルをそれぞれスプライスした後にリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された最後の一つの文字に対応する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得るために用いられる。
【0020】
本開示の好ましい実施形態によれば、前記モデルトレーニングユニットは、ソートモデルをトレーニングするプロセス中に、具体的に、前記POI組込みネットワークを介してPOIの属性情報を符号化し、POIのベクトル表現を得るために用いられる。
【0021】
本開示の好ましい実施形態によれば、前記POI組込みネットワークは、畳み込みニューラルネットワーク、フィードフォワードニューラルネットワーク、および全接続層を含み、
前記モデルトレーニングユニットが前記POI組込みネットワークを介してPOIの属性情報を符号化する時に、具体的には、
畳み込みニューラルネットワークを使用してPOIの名前と住所情報を符号化し、
フィードフォワードニューラルネットワークを使用してPOIの他の属性情報を符号化し、
同一のPOIの符号化結果をスプライスした後に、全接続層のマッピングにより、当該POIのベクトル表現を得るために用いられる。
【0022】
本開示の好ましい実施形態によれば、前記モデルトレーニングユニットは、前記ソートモデルをトレーニングするプロセス中に、前記ソートネットワークの出力を使用してトリプレット損失関数を決定し、前記トリプレット損失関数が予め設定された要求を満たすか、または予め設定されたモデルパラメータ更新回数に達するまで、トリプレット損失関数を使用してフォワードフィードバックして前記プレフィックス組込みネットワーク、POI組込みネットワーク、及びソートネットワークのモデルパラメータを更新する。
【0023】
第4の態様によれば、本開示はクエリ自動補完の装置を提供し、当該装置は、
ユーザが現在入力したクエリプレフィックスを取得し、前記クエリプレフィックスに対応する候補関心ポイントPOIを決定するための取得ユニットと、
前記クエリプレフィックスと前記候補POIをソートモデルに入力し、前記ソートモデルが各候補POIに対する評点を得るための評点ユニットであって、前記候補POIの評点は、前記クエリプレフィックスのベクトル表現と候補POIのベクトル表現との間の類似度に基づいて得る評点ユニットと、
各候補POIの評点に基づいて前記ユーザに推奨するクエリ補完提案を決定するためのクエリ補完ユニットと、を含み、
前記ソートモデルは上記の装置を使用して予めトレーニングして得る。
【0024】
本開示の好ましい実施形態によれば、前記評点ユニットは、具体的に、
前記ソートモデルにおいて、前記クエリプレフィックス内の各文字に対応する文字ベクトルをリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された最後の一つの文字に対する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得、または、
前記ソートモデルにおいて、前記ユーザの属性特徴ベクトルと前記クエリプレフィックス内の各文字に対応する文字ベクトルをそれぞれスプライスした後にリカレントニューラルネットワークに順次入力し、前記リカレントニューラルネットワークによって出力された、最後の一つの文字に対応する特徴ベクトルを使用して前記クエリプレフィックスのベクトル表現を得るために用いられる。
【0025】
本開示の好ましい実施形態によれば、前記評点ユニットは、具体的に、
前記ソートモデルにおいて、各POIの属性情報を符号化して、POIのベクトル表現を得るために用いられる。
【0026】
本開示の好ましい実施形態によれば、前記評点ユニットは、具体的には、
前記ソートモデルにおいて、畳み込みニューラルネットワークを使用してPOIの名前と住所情報を符号化し、
フィードフォワードニューラルネットワークを使用してPOIの他の属性情報を符号化し、
同一のPOIの符号化結果をスプライスした後に、全接続層のマッピングにより、当該POIのベクトル表現を得るために用いられる。
【0027】
第5の態様によれば、本開示は電子機器をさらに提供し、
少なくとも一つのプロセッサと、
前記少なくとも一つのプロセッサと通信接続されたメモリと、を含み、
前記メモリに前記少なくとも一つのプロセッサにより実行可能な命令が記憶されており、前記命令が前記少なくとも一つのプロセッサにより実行されると、前記少なくとも一つのプロセッサが上記の方法を実行する。
【0028】
第6の態様によれば、本開示はコンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体をさらに提供し、前記コンピュータ命令は、前記コンピュータに上記の方法を実行させる。
【0029】
上記の技術方式から分かるように、本開示ではユーザが入力したクエリプレフィックスをソートモデルに統合してPOIのソート学習を行うことによって、ソートモデルがユーザがクエリ補完提案中のPOIを選択する時に入力した個別化されたクエリプレフィックスを学習することができる。このソートモデルに基づいて行うクエリ自動補完は、ユーザのクエリプレフィックスに対する入力習慣により良く適合することができ、ユーザの入力コストを減らすことができる。
【0030】
上記選択可能な方式が有する他の効果は、以下で具体的な実施例を併せて説明する。
【図面の簡単な説明】
【0031】
図面は、本開示をより良く理解するためのものであり、本開示を限定しない。
図1】クエリ自動補完のインターフェースのサンプル図である。
図2】本発明の実施例に適用可能な例示的なシステムアーキテクチャを示す。
図3】本開示の実施例によって提供されるソートモデルの構築方法のフローチャートである。
図4】本開示の実施例によって提供されるトレーニングソートモデルの概略構造図である。
図5】本開示の実施例によって提供されるPOIベクトル表現を取得する概略図である。
図6】本開示の実施例によって提供されるクエリ自動補完の方法のフローチャートである。
図7】本開示の実施例によって提供されるソートモデルの動作原理の概略図である。
図8】本開示の実施例によって提供されるソートモデルを構築する装置の構造図である。
図9】本開示の実施例によって提供されるクエリ自動補完の装置の構造図である。
図10】本開示の実施例の方法を実現するための電子機器のブロック図である。
【発明を実施するための形態】
【0032】
以下、図面に基づいて、本開示の例示の実施例を表現する。理解を容易にするために、本開示の実施例の様々な詳細が含まれており、それらは単なる例示と見なされるべきである。従って、当業者は、本開示の範囲及び精神から逸脱することなく、本明細書に記載の実施形態に対して様々な変更及び修正を行うことができることを認識するはずである。同様に、簡明のために、以下の表現では、よく知られた機能と構造の表現は省略される。
【0033】
図2は本発明の実施例に適用可能な例示的なシステムアーキテクチャを示す。図2に示すように、当該システムアーキテクチャは、端末デバイス101および102、ネットワーク103、およびサーバ104を含むことができる。ネットワーク103は端末デバイス101、102とサーバ104との間の通信リンクを提供する媒体として用いられる。ネットワーク103は、有線、無線通信リンク、または光ファイバケーブルなどのような、様々な接続タイプを含むことができる。
【0034】
ユーザは端末デバイス101および102を使用して、ネットワーク103を介してサーバ104とインタラクションすることができる。端末デバイス101および102には、音声インタラクションアプリケーション、ウェブブラウザアプリケーション、通信系アプリケーションなど、様々なアプリケーションがインストールされることができる。
【0035】
端末デバイス101および102は、スマートフォン、タブレットコンピュータ、PC、スマートテレビなどを含む様々な電子機器であってもよいが、これらに限定されない。本開示によって提供されるクエリ自動補完の装置はサーバ104上で設置および実行することができる。これは複数のソフトウェアまたはソフトウェアモジュール(例えば、分散サービスを提供するために)として実現することができ、単一のソフトウェアまたはソフトウェアモジュールとして実現することができ、ここでは具体的に限定しない。
【0036】
例えば、ユーザが端末デバイス101上のブラウザまたはクライアントにより提供される検索インターフェースを介してクエリプレフィックスを入力する場合、ブラウザまたはクライアントは当該クエリプレフィックスをサーバ104にリアルタイムで提供し、サーバは本開示によって提供される方法を使用してユーザが現在入力したクエリプレフィックスに対応するクエリ補完提案を端末デバイス101に返す。ユーザが当該クエリ補完提案から意図したPOIを発見した場合、当該POIを選択することにより、当該POIに対する検索を開始することができる。ユーザがクエリ補完提案から意図したPOIを発見しなかった場合、入力を続けることができ、次に、ブラウザまたはクライアントはクエリプレフィックスをサーバ104にリアルタイムで再提供することができ、サーバ104は、ユーザが入力したクエリプレフィックスに対応するクエリ補完提案を返す。これにより、ユーザがqueryを入力するプロセス中に、ユーザが入力したクエリプレフィックスとともにリアルタイムでユーザにクエリ補完提案を推奨する効果を形成する。
【0037】
サーバ104は単一のサーバであってもよく、複数のサーバによって構成されるサーバグループであってもよい。図2の端末デバイス、ネットワーク、およびサーバの数は単なる例示であることを理解されたい。実現のニーズに応じて、任意の数の端末デバイス、ネットワーク、およびサーバを有することができる。
【0038】
本開示の技術の本質は、ユーザとPOIとの間の関連付けを構築することであり、その使用シナリオは、ユーザが地図類データを使用してPOI検索を行う中に、ユーザがクエリプレフィックスを入力しているとともにリアルタイムでユーザにクエリ補完提案を推奨することであってもよい。その中、クエリ補完提案は、ユーザが入力したクエリプレフィックスに対応する候補POIを決定した後、ソートモデルを使用して各候補POIをソートした後に得るものである。本開示では全く新しいソートモデル構造及びトレーニング方式を提供して、このソートモデルに基づくクエリ自動補完がユーザのクエリプレフィックスに対する入力習慣により良く適合し、入力コストを削減することができる。本開示に対する理解を容易にするために、まず、実施例を組み合わせてソートモデルの構築方法を詳細に説明する。
【0039】
実施例1、
図3は本開示の実施例によって提供されるソートモデルの構築方法のフローチャートである。図3に示すように、当該方法は以下のステップを含むことができる。
301では、POIクエリログから、ユーザがクエリ補完提案からPOIを選択する時に既に入力したクエリプレフィックス、当該クエリプレフィックスに対応するクエリ補完提案中各POI、及びクエリ補完提案中でユーザによって選択されたPOIを取得する。
【0040】
例えば、あるユーザuser_Aが一つずつ文字を入力して各クエリプレフィックスを形成するプロセス中に、「ba」を入力した場合、クエリ補完提案からPOI「バイドゥビルA座」をクリックすると、ユーザ識別子user_A、クエリプレフィックス「ba」、対応するクエリ補完提案中の各POI、及びユーザによって選択されたPOI「バイドゥビルA座」を、一つのデータとして取得する。同じ方式で、ソートモデルのトレーニングのために、大規模ユーザのPOIクエリログから多くのデータを取得することができる。
【0041】
302では、同一のクエリプレフィックスに対応するクエリ補完提案の中でユーザによって選択されたPOI及びユーザによって選択されていないPOIを使用して正例-負例ペアを構成する。
【0042】
上記の例を続けると、ステップ301で取得されたデータの一つは、ユーザ識別子user_A、クエリプレフィックス「ba」、対応するクエリ補完提案中の各POI、及びユーザによって選択されたPOI「バイドゥビルA座」である。同一のクエリプレフィックス「ba」について、それに対応するユーザによって選択されたPOI「バイドゥビルA座」を正例とし、クエリ補完提案でユーザによって選択されていないPOI「八達嶺万里の長城」を負例とするため、「ba」は「バイドゥビルA座」と正例ペアを構成し、「ba」は「八達嶺万里の長城」と負例ペアを構成する。「バイドゥビル」、「バイドゥ科学技術園」など、クエリ補完提案にさらに他のユーザによって選択されていないPOIがあるため、「ba」は「バイドゥビル」と負例ペアを構成することもでき、「ba」は「バイドゥ科学技術園」と負例ペアを構成することもできる。
【0043】
303では、クエリプレフィックスと、クエリプレフィックスに対応する正例-負例ペアを使用してトレーニングしてソートモデルを得、ソートモデルのトレーニング目標は、クエリプレフィックスのベクトル表現と対応する正例POIのベクトル表現との類似度と、クエリプレフィックスのベクトル表現と対応する負例POIのベクトル表現との類似度との間の差を最大化する。
【0044】
従来のクエリ自動補完のためのソートモデルにおいて、その入力にクエリプレフィックスが含まれておらず、クエリプレフィックスは候補POIのリコールにのみ使用され、ソートモデルは候補POIの人気及びユーザ属性情報などに基づいて各候補POIに対する評点を出力する。しかし、本開示の実施例では、ソートモデルの入力はクエリプレフィックスおよびPOIであり、クエリプレフィックスのベクトル表現及びPOIのベクトル表現はいずれもソートモデルの内部において得られ、両者のベクトル表現の間の類似度に基づいて各POIに対する評点を出力する。これに応じて、本開示の実施例のソートモデルをトレーニングする時、クエリプレフィックスのベクトル表現及びPOIのベクトル表現を得る部分と、両者のベクトル表現の間の類似度を決定する部分は、統一的にトレーニングされる。
【0045】
具体的には、図4に示すように、本実施例のソートモデルは、具体的に、プレフィックス組込みネットワーク、POI組込みネットワーク、及びソートネットワークの3つの部分を含むことができる。その中、プレフィックス組込みネットワークはクエリプレフィックスのベクトル表現を得るために用いられ、POI組込みネットワークは各POIのベクトル表現を得るために用いられ、ソートネットワークはクエリプレフィックスのベクトル表現と対応するPOIのベクトル表現との間の類似度を決定するために用いられる。
【0046】
すなわち、トレーニングプロセスにおいて、一つのトレーニングデータであるクエリプレフィックス、当該クエリプレフィックスに対応する正例POI、及び当該クエリプレフィックスに対応する負例POIについて、クエリプレフィックスをプレフィックス組込みネットワークに入力すると、プレフィックス組込みネットワークは当該クエリプレフィックスのベクトル表現uを出力する。クエリプレフィックスに対応する正例POIおよび負例POIをPOI組込みネットワークにそれぞれ入力すると、POI組込みネットワークは正例POIのベクトル表現vおよび負例POIのベクトル表現vを出力する。ソートネットワークはクエリプレフィックスのベクトル表現uと正例POIのベクトル表現vとの間の類似度S、およびクエリプレフィックスのベクトル表現uと負例POIのベクトル表現vとの間の類似度Sをそれぞれ計算する。ソートモデル全体のトレーニング目標は、SとSとの間の差を最大化する。
【0047】
以下、ソートモデル内の各ネットワークに対してそれぞれ詳しく説明する。
【0048】
プレフィックス組込みネットワーク:
プレフィックス組込みネットワークはリカレントニューラルネットワークを含むことができ、例えば、Bi-LSTM(Bi-directionAl LSTM、双方向長短期記憶ネットワーク)を使用することができる。クエリプレフィックス内の各文字に対応する文字ベクトルをBi-LSTMに順次入力し、例えば、ユーザがクエリプレフィックス「ba」を入力する中に、まず、「b」を入力し、次に、「a」を入力するため、「b」の文字ベクトルおよび「a」の文字ベクトルを順にBi-LSTMに順次入力する。Bi-LSTMは、まず、「b」に対して一つのベクトル表現を出力し、次に、「a」に対して一つのベクトル表現を出力する。その中、「a」に対して出力するベクトル表現は、その前に記憶されたコンテキスト情報を参照するため、Bi-LSTMによって出力された最後の一つの文字「a」に対するベクトル表現をクエリプレフィックスのベクトル表現とする。
【0049】
また、クエリプレフィックスに加えて、ユーザの属性特徴もユーザが選択するPOIに対して影響することができる。したがって、好ましい実施形態として、クエリプレフィックスのベクトル表現を決定する時、プレフィックス組込みネットワークは、さらに、ユーザの属性特徴を考慮することができる。具体的には、ユーザの属性特徴ベクトルとクエリプレフィックス内の各文字に対応する文字ベクトルをそれぞれスプライスした後にリカレントニューラルネットワークに順次入力し、リカレントニューラルネットワークによって出力された最後の一つの文字に対応する特徴ベクトルを使用してクエリプレフィックスの特徴ベクトル表現を得ることができる。
【0050】
ユーザの属性特徴は、例えば、ユーザの年齢、性別、仕事、収入レベル、所在都市などの情報であってもよく、ユーザ属性特徴のベクトル表現はこれらの情報を符号化した後に得ることができる。上記の文字に対応する文字ベクトルは文字を文字ベクトル空間にマッピングした後に得ることができる。依然に、ユーザがクエリプレフィックス「ba」を入力したのを例として、まず、ユーザの属性特徴ベクトルと文字「b」の文字ベクトルをスプライスし、次に、スプライスしたベクトルをリカレントニューラルネットワークに入力し、次に、ユーザの属性特徴ベクトルと文字「a」の文字ベクトルを再スプライスし、次に、スプライスしたベクトルをリカレントニューラルネットワークに入力する。リカレントニューラルネットワークによって出力された「a」に対応する特徴ベクトルをクエリプレフィックス「ba」のベクトル表現とする。
【0051】
POI組込みネットワーク:
本実施例のPOI組込みネットワークはPOIの属性情報を符号化し、POIのベクトル表現を得る。関連する属性情報は、POIの識別子、名前、カテゴリ、住所、ラベルなどの情報を含むことができるが、これらに限定されない。
【0052】
好ましい実施形態として、図5に示すように、POI組込みネットワークは、畳み込みニューラルネットワーク、フィードフォワードニューラルネットワーク、および全接続層を含むことができる。畳み込みニューラルネットワークを使用してPOIの名前と住所情報を符号化し、フィードフォワードニューラルネットワークを使用してPOIの他の属性情報を符号化することができる。次に、同一のPOIの符号化結果をスプライスしたベクトルを全接続層のマッピングにより、当該POIのベクトル表現を得る。
【0053】
ソートネットワーク:
ソートネットワークは、主に、クエリプレフィックスのベクトル表現とPOIのベクトル表現との間の類似度を計算し、トレーニングプロセス中に、一つの正例および負例ペア内の、クエリプレフィックスと正例POIの類似度、及びクエリプレフィックスと負例POIの類似度をそれぞれ計算することができる。本開示では計算類似度の方式は、例えば、L2パラダイムなどを使用して、クエリプレフィックスのベクトル表現がPOIのベクトル表現の次元と一致することを要求することができる。
【0054】
モデルトレーニングプロセスに、上記のトレーニング目標は、トリプレット損失関数LΔを最小化するように具体化することができ、例えば、以下のような式を使用する。
【数1】
【数2】
はハイパーパラメータである。
【0055】
各反復はいずれもソートネットワークの出力を使用して上記トリプレット損失関数を決定し、次に、トリプレット損失関数が予め設定された要求を満たすか、または予め設定されたモデルパラメータ更新回数などに達するまで(すなわち反復回数)、トリプレット損失関数を使用してフォワードフィードバックしてプレフィックス組込みネットワーク、POI組込みネットワーク、及びソートネットワークのモデルパラメータを更新する。
【0056】
これまでのところ、トレーニングしてソートモデルを得る。
【0057】
実施例2、
図6は本開示の実施例によって提供されるクエリ自動補完の方法のフローチャートである。図6に示すように、当該方法は以下のステップを含むことができる。
601では、ユーザが現在入力したクエリプレフィックスを得、当該クエリプレフィックスに対応する候補POIを決定する。
【0058】
本開示は、漢字、ピンイン、頭文字の略称などの、様々な形式の入力内容に適用されることができるが、入力されたクエリプレフィックスはいずれも文字列に見なすことができる。ユーザがクエリプレフィックスを入力するとともに、ユーザが現在入力したクエリプレフィックスをリアルタイムで取得する。例えば、ユーザが「バイドゥビル(百度大厦)」を入力しようとするプロセス中に、「バイ(百)」、「バイドゥ(百度)」、「バイドゥビ(百度大)」などの複数のクエリプレフィックスを入力することにより、各クエリプレフィックスに対して本開示によって提供される方法をすべて実行する。すなわちユーザが「バイ(百)」を入力した場合、現在入力されたクエリプレフィックスは「バイ(百)」であり、当該クエリプレフィックスに対して本開示の方法を実行してユーザにクエリ補完提案を推奨する。ユーザが「バイドゥ(百度)」を入力した場合、現在入力されたクエリプレフィックスは「バイドゥ(百度)」であり、当該クエリプレフィックスに対して本開示の方法を実行してユーザにクエリ補完提案を推奨する。ユーザが「バイドゥビ(百度大)」を入力した場合、現在入力されたクエリプレフィックスは「バイドゥビ(百度大)」であり、当該クエリプレフィックスに対して本開示の方法を実行してユーザにクエリ補完提案を推奨する。
【0059】
現在入力されたクエリプレフィックスに対応する候補POIを決定する方式は、既存の実現方式を使用することができ、目的は、当該クエリプレフィックスをテキストの始まりとするPOIを探すこと、または当該クエリプレフィックスに強く関連するPOIを探すことである。
【0060】
例えば、POIライブラリにおいて予めにPOIに対して様々な対応するクエリプレフィックスで転置インデックスを構築することができる。ユーザがqueryを入力する場合、現在入力されたクエリプレフィックスに対してPOIライブラリをクエリし、ヒットしたすべてのPOIを候補POIとする。
【0061】
さらに、例えば、POIライブラリにPOIと様々なクエリプレフィックスとの間の関連付けを予め構築することができ、当該関連付けはユーザ検索履歴から取得することができる。例えば、ユーザが以前に「浙大」を入力したことがあった後に、検索結果から「浙江大学」のPOIを選択する。当該関連付けは同義POIワードリストを使用して取得することもでき、例えば、「故宮」は「紫禁城」とも呼ばれ、クエリプレフィックス「紫禁」、「zijin」などの「故宮」POIとの関連付けを予め構築する。当該関連付けは人工的に追加することもできる。
【0062】
602では、ユーザが現在入力したクエリプレフィックスおよび候補POIをソートモデルに入力して、ソートモデルが各候補POIに対する評点を得、候補POIの評点はクエリプレフィックスのベクトル表現と候補POIのベクトル表現との間の類似度に基づいて得る。
【0063】
実施例1と同様に、図7に示すように、ユーザが現在入力したクエリプレフィックスおよび候補POIをソートモデル内のプレフィックス組込みネットワークおよびPOI組込みネットワークにそれぞれ入力し、クエリプレフィックスのベクトル表現uおよび候補POIのベクトル表現vを得た後、ソートネットワークでクエリプレフィックスのベクトル表現uと各候補POIのベクトル表現vとの間の類似度Sを決定し、当該類似度に基づいて各候補POIを評点する。
【0064】
具体的には、ソートモデルのプレフィックス組込みネットワークで実現する場合、クエリプレフィックス内の各文字に対応する文字ベクトルをリカレントニューラルネットワークに順次入力し、リカレントニューラルネットワークによって出力された最後の一つの文字に対する特徴ベクトルを使用してクエリプレフィックスのベクトル表現を得ることができる。
【0065】
好ましい実施形態として、ソートモデルのプレフィックス組込みネットワークの実現において、ユーザの属性特徴ベクトルとクエリプレフィックス内の各文字に対応する文字ベクトルをそれぞれスプライスした後にリカレントニューラルネットワークに順次入力し、リカレントニューラルネットワークによって出力された最後の一つの文字に対応する特徴ベクトルを使用してクエリプレフィックスのベクトル表現を得ることができる。
【0066】
ユーザの属性特徴は、例えば、ユーザの年齢、性別、仕事、収入レベル、所在都市などの情報であってもよく、ユーザ属性特徴のベクトル表現はこれらの情報を符号化した後に得ることができる。上記の文字に対応する文字ベクトルは文字を文字ベクトル空間にマッピングした後に得ることができる。
【0067】
POI組込みネットワークでは、候補POIをPOI組込みネットワークに入力し、POI組込みネットワークは候補POIの属性情報を符号化して、候補POIのベクトル表現を得る。関連する属性情報は、候補POIの識別子、名前、カテゴリ、住所、ラベルなどの情報を含むことができるが、これらに限定されない。
【0068】
POI組込みネットワークは、畳み込みニューラルネットワーク、フィードフォワードニューラルネットワーク、および全接続層を含むことができる。畳み込みニューラルネットワークを使用して候補POIの名前と住所情報を符号化し、候補POIの他の属性情報をフィードフォワードニューラルネットワークを使用して符号化することができる。次に、同一の候補POIの符号化結果をスプライスしたベクトル全接続層のマッピングに経て、当該候補POIのベクトル表現を得る。
【0069】
ソートネットワークはユーザが入力したクエリプレフィックスのベクトル表現と候補POIのベクトル表現との間の類似度を計算する時、例えば、L2パラダイムのような方式を使用することができる。
【0070】
603では、各候補POIの評点に基づいてユーザに推奨するクエリ補完提案を決定する。
【0071】
ステップでは、評点値が予め設定された評点閾値以上である候補POIをクエリ補完提案とするか、評点値が前に並ぶP個のPOIをクエリ補完提案とすることなどもでき、Pは予め設定された正の整数である。ユーザにクエリ補完提案を推奨する時、各POIの評点に基づいて候補リストにソートする。推奨方式は既存の検索ボックスの近くにあるドロップダウンボックスの形式を使用することができ、他の形式を使用することもできる。
【0072】
本実施形態では、ユーザが入力したクエリプレフィックスをソートモデルに統合してPOIのソート学習を行うことによって、ソートモデルがユーザがクエリ補完提案中のPOIを選択する時に入力した個別化されたクエリプレフィックスを学習することができる。このソートモデルに基づいて行うクエリ自動補完は、ユーザのクエリプレフィックスに対する入力習慣により良く適合することができ、ユーザの入力コストを減らすことができる。例えば、ユーザがクエリプレフィックス「ba」を習慣的に入力する時、クエリ補完提案から「バイドゥビルA座」をクリックして検索すると仮定する。本開示によって提供される方式で、ソートモデルはユーザの当該入力習慣を学習することができて、ユーザがクエリプレフィックス「ba」を入力する時、クエリ補完提案内の「バイドゥビルA座」のランキングを向上させて、ユーザがクエリ補完提案から「バイドゥビルA座」を簡単に選択することができる。「バイドゥビルA座」というPOIの人気が低いためランキングの後の位置から探す必要がなく、さらにより多くの文字を入力してクエリ補完提案に「バイドゥビルA座」が出現されるようにする必要がない。ユーザの入力効率を明らかに向上させ、入力コストを削減する。
【0073】
また、本開示はいくつかの特別な入力習慣についてもよく学習することができる。例えば、一つのユーザ習慣は「thu」をクエリプレフィックスとして「清華大学」といるPOIを検索する。本開示によって提供される方式において、ソートモデルはユーザの当該入力習慣を学習することができ、当該ユーザまたは他のユーザが「thu」を入力する場合、「清華大学」というクエリ補完提案を迅速に提供することによって、ユーザの使用体験を向上させる。
【0074】
以上は本開示によって提供される方法を詳細に説明し、以下は実施例を組み合わせて本開示によって提供される装置を詳細に説明する。
【0075】
実施例3、
図8は本開示の実施例によって提供される構築ソートモデルの装置の構造図である。図8に示すように、当該装置は、第1の取得ユニット01、第2の取得ユニット02、およびモデルトレーニングユニット03を含み、各構成ユニットの主な機能は以下のとおりである。
第1の取得ユニット01はPOIクエリログから、ユーザがクエリ補完提案からPOIを選択する時に既に入力したクエリプレフィックス、当該クエリプレフィックスに対応するクエリ補完提案中の各POI、及びクエリ補完提案中でユーザによって選択されたPOIを取得する。
【0076】
第2の取得ユニット02は同一のクエリプレフィックスに対応するクエリ補完提案中でユーザによって選択されたPOI及びユーザによって選択されていないPOIを使用して正例-負例ペアを構成する。
【0077】
モデルトレーニングユニット03はクエリプレフィックスと、クエリプレフィックスに対応する正例-負例ペアを使用してトレーニングしてソートモデルを得る。
【0078】
ソートモデルは、プレフィックス組込みネットワーク、POI組込みネットワーク、及びソートネットワークを含み、プレフィックス組込みネットワークはクエリプレフィックスのベクトル表現を得るために用いられ、POI組込みネットワークは各POIのベクトル表現を得るために用いられ、ソートネットワークはクエリプレフィックスのベクトル表現と対応するPOIのベクトル表現との間の類似度を決定するために用いられる;ソートモデルのトレーニング目標は、クエリプレフィックスのベクトル表現と対応する正例POIのベクトル表現との類似度と、クエリプレフィックスのベクトル表現と対応する負例POIのベクトル表現との類似度との間の差を最大化する。
【0079】
具体的には、プレフィックス組込みネットワークはリカレントニューラルネットワークを含むことができる。モデルトレーニングユニット03はトレーニングソートモデルプロセス中に、クエリプレフィックス内の各文字に対応する文字ベクトルをリカレントニューラルネットワークに順次入力し、リカレントニューラルネットワークによって出力された最後の一つの文字に対する特徴ベクトルを使用してクエリプレフィックスのベクトル表現を得ることができる。
【0080】
好ましい実施形態として、モデルトレーニングユニット03はトレーニングソートモデルプロセス中に、ユーザの属性特徴ベクトルとクエリプレフィックス内の各文字に対応する文字ベクトルをそれぞれスプライスした後にリカレントニューラルネットワークに順次入力し、リカレントニューラルネットワークによって出力された最後の一つの文字に対応する特徴ベクトルを使用してクエリプレフィックスのベクトル表現を得ることができる。
【0081】
具体的には、モデルトレーニングユニット03はトレーニングソートモデルプロセス中に、POI組込みネットワークを介してPOIの属性情報を符号化し、POIのベクトル表現を得ることができる。
【0082】
好ましい実施形態として、POI組込みネットワークは、畳み込みニューラルネットワーク、フィードフォワードニューラルネットワーク、および全接続層を含むことができる。モデルトレーニングユニット03は、POI組込みネットワークを介してPOIの属性情報を符号化する時、畳み込みニューラルネットワークを使用してPOIの名前と住所情報を符号化し、フィードフォワードニューラルネットワークを使用してPOIの他の属性情報を符号化し、同一のPOIの符号化結果をスプライスした後に、全接続層のマッピングにより、当該POIのベクトル表現を得ることができる。
【0083】
具体的には、モデルトレーニングユニット03はソートモデルをトレーニングするプロセス中に、ソートネットワークの出力を使用して損失関数を決定し、損失関数が予め設定された要求を満たすか、または予め設定されたモデルパラメータ更新回数に達するまで、損失関数を使用してフォワードフィードバックしてプレフィックス組込みネットワーク、POI組込みネットワーク、及びソートネットワークのモデルパラメータを更新する。
【0084】
実施例4、
図9は本開示の実施例によって提供されるクエリ自動補完の装置の構造図である。本装置で使用されるソートモデルは図8に示す装置によって予めトレーニングされて得ることができる。図9に示すように、当該装置は、取得ユニット11、評点ユニット12、およびクエリ補完ユニット13を含む。各構成ユニットの主な機能は以下のとおりである。
取得ユニット11はユーザが現在入力したクエリプレフィックスを取得し、クエリプレフィックスに対応する候補関心ポイントPOIを決定する。
【0085】
評点ユニット12はクエリプレフィックスと候補POIをソートモデルに入力し、ソートモデルが各候補POIに対する評点を得、候補POIの評点はクエリプレフィックスのベクトル表現と候補POIのベクトル表現との間の類似度に基づいて得られる。
【0086】
具体的には、評点ユニット12は、ソートモデルにおいて、クエリプレフィックス内の各文字に対応する文字ベクトルをリカレントニューラルネットワークに順次入力し、リカレントニューラルネットワークによって出力された最後の一つの文字に対する特徴ベクトルを使用してクエリプレフィックスのベクトル表現を得ることができる。
【0087】
好ましい実施形態として、評点ユニット12は、ソートモデルにおいて、ユーザの属性特徴ベクトルとクエリプレフィックス内の各文字に対応する文字ベクトルをそれぞれスプライスした後にリカレントニューラルネットワークに順次入力し、リカレントニューラルネットワークによって出力された最後の一つの文字に対応する特徴ベクトルを使用してクエリプレフィックスのベクトル表現を得ることができる。
【0088】
具体的には、評点ユニット12は、ソートモデルにおいて、各POIの属性情報を符号化して、POIのベクトル表現を得ることができる。
【0089】
好ましい実施形態として、評点ユニット12は、ソートモデルにおいて、畳み込みニューラルネットワークを使用してPOIの名前と住所情報を符号化し、フィードフォワードニューラルネットワークを使用してPOIの他の属性情報を符号化し、同一のPOIの符号化結果をスプライスした後に、全接続層のマッピングにより、当該POIのベクトル表現を得ることができる。
【0090】
ソートネットワークはユーザが入力したクエリプレフィックスのベクトル表現と候補POIのベクトル表現との間の類似度を計算する時、例えば、L2パラダイムのような方式を使用することができる。
【0091】
クエリ補完ユニット13は各候補POIの評点に基づいてユーザに推奨するクエリ補完提案を決定する。
【0092】
具体的には、クエリ補完ユニット13は、評点値が予め設定された評点閾値以上である候補POIをクエリ補完提案とするか、評点値が前に並ぶP個POIをクエリ補完提案とするなどのこともでき、Pは予め設定された正の整数である。ユーザにクエリ補完提案を推奨する時、各POIの評点に基づいて候補リストにソートする。推奨方式は既存の検索ボックスの近くにあるドロップダウンボックスの形式を使用することができ、他の形式を使用することもできる。
【0093】
本開示の実施例によれば、本開示は電子機器および読み取り可能な記憶媒体をさらに提供する。
【0094】
図10に示すように、本開示の実施例のソートモデルまたはクエリ自動補完を構築する方法を実現するための電子機器のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ、及び他の適切なコンピュータなどの様々な形式のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタルアシスタント、携帯電話、スマートフォン、ウェアラブルデバイス、他の同様のコンピューティングデバイスなどの様々な形式のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本開示の実現を制限することを意図したものではない。
【0095】
図10に示すように、当該電子機器は、一つ又は複数のプロセッサ1001と、メモリ1002と、高速インターフェースと低速インターフェースを含む各コンポーネントを接続するためのインターフェースと、を含む。各コンポーネントは、異なるバスで相互に接続され、共通のマザーボードに取り付けられるか、又は必要に基づいて他の方式で取り付けられることができる。プロセッサは、外部入力/出力装置(インターフェースに結合されたディスプレイデバイスなど)にGUIの図形情報をディスプレイするためにメモリに記憶されている命令を含む、電子機器内に実行される命令を処理することができる。他の実施方式では、必要であれば、複数のプロセッサ及び/又は複数のバスを、複数のメモリと複数のメモリとともに使用することができる。同様に、複数の電子機器を接続することができ、各電子機器は、部分的な必要な操作(例えば、サーバアレイ、ブレードサーバ、又はマルチプロセッサシステムとする)を提供することができる。図10では、一つのプロセッサ1001を例とする。
【0096】
メモリ1002は、本開示により提供される非一時的なコンピュータ読み取り可能な記憶媒体である。その中、前記メモリには、前記少なくとも一つのプロセッサが本開示により提供されるソートモデルまたはクエリ自動補完を構築する方法を実行することができるように、少なくとも一つのプロセッサによって実行される命令が記憶されている。本開示の非一時的なコンピュータ読み取り可能な記憶媒体は、コンピュータが本開示により提供されるソートモデルまたはクエリ自動補完を構築する方法を実行するためのコンピュータ命令が記憶される。
【0097】
メモリ1002は、非一時的なコンピュータ読み取り可能な記憶媒体として、本開示の実施例におけるソートモデルまたはクエリ自動補完を構築する方法に対応するプログラム命令/モジュールように、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能なプログラム及びモジュールを記憶するために用いられる。プロセッサ1001は、メモリ1002に記憶されている非一時的なソフトウェアプログラム、命令及びモジュールを実行することによって、サーバの様々な機能アプリケーション及びデータ処理を実行し、すなわち上記の方法の実施例におけるソートモデルまたはクエリ自動補完を構築する方法を実現する。
【0098】
メモリ1002は、ストレージプログラム領域とストレージデータ領域とを含むことができ、その中、ストレージプログラム領域は、オペレーティングシステム、少なくとも一つの機能に必要なアプリケーションプログラムを記憶することができ、ストレージデータ領域は、当該電子機器の使用によって作成されたデータなどを記憶することができる。また、メモリ1002は、高速ランダムアクセスメモリを含むことができ、非一時的なメモリをさらに含むことができ、例えば、少なくとも一つのディスクストレージデバイス、フラッシュメモリデバイス、又は他の非一時的なソリッドステートストレージデバイスである。いくつかの実施例では、メモリ1002は、プロセッサ1001に対して遠隔に設置されたメモリを含むことができ、これらの遠隔メモリは、ネットワークを介して当該電子機器に接続されることができる。上記のネットワークの例は、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、及びその組み合わせを含むが、これらに限定しない。
【0099】
当該電子機器は、入力装置1003と出力装置1004とをさらに含むことができる。プロセッサ1001、メモリ1002、入力装置1003、及び出力装置1004は、バス又は他の方式を介して接続することができ、図10では、バスを介して接続することを例とする。
【0100】
入力装置1003は、入力された数字又は文字情報を受信することができ、及び当該電子機器のユーザ設置及び機能制御に関するキー信号入力を生成することができ、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、指示杆、一つ又は複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置である。出力装置1004は、ディスプレイデバイス、補助照明デバイス(例えば、LED)、及び触覚フィードバックデバイス(例えば、振動モータ)などを含むことができる。当該ディスプレイデバイスは、LCD(液晶ディスプレイ)、LED(発光ダイオード)ディスプレイ、及びプラズマディスプレイを含むことができるが、これらに限定しない。いくつかの実施方式では、ディスプレイデバイスは、タッチスクリーンであってもよい。
【0101】
本明細書で説明されるシステムと技術の様々な実施方式は、デジタル電子回路システム、集積回路システム、特定用途向けASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現することができる。これらの様々な実施方式は、一つ又は複数のコンピュータプログラムで実施されることを含むことができ、当該一つ又は複数のコンピュータプログラムは、少なくとも一つのプログラマブルプロセッサを含むプログラム可能なシステムで実行及び/又は解釈されることができ、当該プログラマブルプロセッサは、特定用途向け又は汎用プログラマブルプロセッサであってもよく、ストレージシステム、少なくとも一つの入力装置、及び少なくとも一つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも一つの入力装置、及び当該少なくとも一つの出力装置に伝送することができる。
【0102】
これらのコンピューティングプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)は、プログラマブルプロセッサの機械命令、高レベルのプロセス及び/又はオブジェクト指向プログラミング言語、及び/又はアセンブリ/機械言語でこれらのコンピューティングプログラムを実施することを含む。本明細書に使用されるように、用語「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」は、機械命令及び/又はデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、機器、及び/又は装置(例えば、磁気ディスク、光ディスク、メモリ、PLD(プログラマブルロジックデバイス))を指し、機械読み取り可能な信号である機械命令を受信する機械読み取り可能な媒体を含む。用語「機械読み取り可能な信号」は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意の信号を指す。
【0103】
ユーザとのインタラクションを提供するために、コンピュータ上でここで説明されているシステム及び技術を実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置は、ユーザとのインタラクションを提供するために用いられることもでき、例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形式(音響入力と、音声入力と、触覚入力とを含む)でユーザからの入力を受信することができる。
【0104】
ここで説明されるシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバー)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施方式とインタラクションする)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実施することができる。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続されることができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、インターネットと、ブロックチェーンネットワークと、を含む。
【0105】
コンピュータシステムは、クライアントとサーバとを含むことができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによってクライアントとサーバとの関係が生成される。
【0106】
上記の説明から分かるように、本開示の実施例によって提供される上記方法、装置、機器およびコンピュータ記憶媒体は以下の利点を有することができ、
1)ユーザが入力した個別化されたクエリプレフィックスをソートモデルに統合してPOIのソート学習を行うことによって、ソートモデルがユーザがクエリ補完提案中のPOIを選択する時に入力した個別化されたクエリプレフィックスを学習することができる。このソートモデルに基づいて行うクエリ自動補完は、ユーザのクエリプレフィックスに対する入力習慣により良く適合することができ、ユーザの入力コストを減らすことができる。
【0107】
2)在クエリプレフィックスのベクトル表現を得る時、リカレントニューラルネットワークを使用してクエリプレフィックスのベクトル表現がテキストのコンテキスト制約により適合することができる。
【0108】
3)本開示の各POIの属性情報を符号化する時、POIを一つのマルチソース情報の集合体として十分に考慮し、POIの名前、住所、カテゴリ、識別子などの情報を融合することによって、POIの表現をより正確にする。
【0109】
上記に示される様々な形式のフローを使用して、ステップを並べ替え、追加、又は削除することができることを理解されたい。例えば、本開示に記載されている各ステップは、並列に実行されてもよいし、順次的に実行されてもよいし、異なる順序で実行されてもよいが、本開示で開示されている技術案が所望の結果を実現することができれば、本明細書では限定されない。
【0110】
上記の具体的な実施方式は、本開示に対する保護範囲の制限を構成するものではない。当業者は、設計要求と他の要因に基づいて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができる。任意の本開示の精神と原則内で行われる修正、同等の置換、及び改善などは、いずれも本開示の保護範囲内に含まれなければならない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【国際調査報告】