(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022020070
(43)【公開日】2022-01-31
(54)【発明の名称】情報処理、情報推薦の方法および装置、電子デバイス及び記憶媒体
(51)【国際特許分類】
G06F 16/9035 20190101AFI20220124BHJP
【FI】
G06F16/9035
【審査請求】有
【請求項の数】30
【出願形態】OL
【公開請求】
(21)【出願番号】P 2021181807
(22)【出願日】2021-11-08
(31)【優先権主張番号】202110246985.6
(32)【優先日】2021-03-05
(33)【優先権主張国・地域又は機関】CN
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ANDROID
(71)【出願人】
【識別番号】516262169
【氏名又は名称】北京百度網訊科技有限公司
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】程 黙
(72)【発明者】
【氏名】于 佃 海
(72)【発明者】
【氏名】馬 琳
(72)【発明者】
【氏名】呉 志 華
(72)【発明者】
【氏名】董 大 祥
(72)【発明者】
【氏名】湯 偉
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175FA03
5B175HA02
5B175KA11
(57)【要約】 (修正有)
【課題】リコールステップのリコール効果を高めることで、推薦システムの以降のソート及び表示効果を高める情報処理方法、装置、電子デバイス及びコンピュータプログラムを提供する。
【解決手段】情報処理方法は、推薦に利用可能なオブジェクトセットをインデックスするためのツリー構造のツリー構造パラメータを取得し、ツリー構造の最上位階層から下位に向けて階層毎に、各階層のユーザに好まれる確率ランキングが上位である嗜好ノードセットを予測する分類器の分類器パラメータを取得し、一層の嗜好ノードセットがその上位層の嗜好ノードセットに基づいて特定され、ツリー構造パラメータ及び分類器パラメータに基づいてリコールモデルを構築し、ツリー構造パラメータおよび分類器パラメータをモデルパラメータとして、リコールモデルのトレーニング過程および使用過程を最適化し、リコールモデルのリコール結果をさらに改善する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
推薦に利用可能なオブジェクトセットをインデックスするためのツリー構造のツリー構造パラメータを取得することと、
前記ツリー構造の最上位階層から下位に向けて階層ごとに、各階層のユーザに好まれる確率ランキングが上位である嗜好ノードセットを予測する分類器の分類器パラメータを取得し、一層の嗜好ノードセットがその上位層の嗜好ノードセットに基づいて特定されることと、
前記ツリー構造パラメータ及び前記分類器パラメータに基づいてリコールモデルを構築し、前記オブジェクトセットで前記ユーザに対する候補オブジェクトセットを特定することと、を含む
情報処理方法。
【請求項2】
前記ツリー構造パラメータを取得することは、
前記オブジェクトセットをベクトル化して、オリジナルオブジェクトベクトルセットを生成することと、
事前トレーニングモデルおよび前記オリジナルオブジェクトベクトルセットに基づいて、クラスタリング特性に関して最適化された最適化オブジェクトベクトルセットを生成することと、
前記最適化オブジェクトベクトルセットに対してクラスタリングを実行して前記ツリー構造を構築し、前記ツリー構造パラメータを特定することと、を含む
請求項1に記載の方法。
【請求項3】
前記ユーザは第1のユーザであり、
前記方法は、
第2のユーザの履歴ユーザデータに基づいて、前記ツリー構造で前記第2のユーザに好まれるリーフノードを特定することと、
前記ツリー構造における前記リーフノードの先輩ノードを第1のノードセットとして特定することと、
前記第1のノードセットに基づいて、前記リコールモデルをトレーニングするためのポジティブサンプルを特定することと、をさらに含む
請求項1に記載の方法。
【請求項4】
前記ポジティブサンプルを特定することは、
前記履歴ユーザデータ及び前記分類器に基づいて、前記ツリー構造の最上位階層以下の複数の階層に対応する複数の階層ノードサブセットを特定し、各階層ノードサブセットが対応階層における確率ランキングが上位である複数のノードを含むことと、
前記複数の階層ノードサブセットの和集合に基づいて、第2のノードセットを特定することと、
前記第1のノードセットと前記第2のノードセットとの共通集合に基づいて、前記ポジティブサンプルを取得することと、を含む
請求項3に記載の方法。
【請求項5】
前記リコールモデルをトレーニングするためのトレーニングデータに前記オブジェクトセットに属さない新規オブジェクトが含まれるとの特定に従って、前記新規オブジェクトに対応する新規リーフノードを作成することと、
前記新規リーフノードを前記ツリー構造に挿入することと、をさらに含む
請求項1に記載の方法。
【請求項6】
前記新規リーフノードを前記ツリー構造に挿入することは、
前記トレーニングデータにおいて、前記新規オブジェクトに関連するユーザデータを取得することと、
前記ユーザデータ及び前記分類器に基づいて、前記ツリー構造において好まれる確率が最大である目標リーフノードを特定することと、
前記新規リーフ子ノードを前記目標リーフノードの兄弟ノードとして前記ツリー構造に追加することと、を含む
請求項5に記載の方法。
【請求項7】
前記新規オブジェクトに関連する前記ユーザデータを取得することは、
前記新規オブジェクトが複数のユーザの複数の候補ユーザデータに関連するとの特定に従って、
前記複数の候補ユーザデータからランダムに選択された1つの候補ユーザデータと、
前記複数の候補ユーザデータに基づいて特定される平均候補ユーザデータと、
前記複数の候補ユーザデータにおける重みが最も大きいユーザに対応する候補ユーザデータと、
の少なくとも1つに基づいて前記ユーザデータを特定する
請求項6に記載の方法。
【請求項8】
前記新規リーフノードを前記ツリー構造に挿入することは、
前記ツリー構造の最下位階層の一層上の階層における非リーフノードから、目標非リーフノードをランダムに特定することと、
前記新規リーフのノードを、前記目標非リーフノードの子ノードとして前記ツリー構造に追加することと、を含む
請求項5に記載の方法。
【請求項9】
前記第1の予定時間長内に前記新規オブジェクトを好むユーザ数が閾値数より多いとの特定に従って、前記トレーニングデータに前記新規オブジェクトが含まれると特定すること、をさらに含む
請求項5に記載の方法。
【請求項10】
第2の予定時間長内に前記オブジェクトセットにおけるオブジェクトが好まれる回数が閾値回数未満であるとの特定に従って、前記オブジェクトセットから前記オブジェクトを除去して新規オブジェクトセットを取得することと、
前記新規オブジェクトセットに基づいて新規ツリー構造の新規ツリー構造パラメータを取得することと、
前記新規ツリー構造パラメータに基づいて新規リコールモデルを構築することと、をさらに含む
請求項1に記載の方法。
【請求項11】
前記分類器は、前記ツリー構造の最上位階層以下の複数の階層に対応する複数の分類器ユニットを含み、前記複数の分類器ユニットの各々は、対応階層におけるノードがユーザによって好まれる確率を予測するために使用される
請求項1に記載の方法。
【請求項12】
請求項1~11のいずれか一項に記載の方法に従って構築されたリコールモデルに基づいて、推薦システムにおける推薦に利用可能なオブジェクトセットから、ユーザに対する候補オブジェクトセットを特定することと、
前記候補オブジェクトセットから前記ユーザに推薦する少なくとも1つのオブジェクトを特定することと、を含む
情報推薦方法。
【請求項13】
推薦に利用可能なオブジェクトセットをインデックスするためのツリー構造のツリー構造パラメータを取得するように配置されるツリー構造パラメータ取得モジュールと、
前記ツリー構造の最上位階層から下位に向けて階層ごとに、各階層のユーザに好まれる確率ランキングが上位である嗜好ノードセットを予測する分類器の分類器パラメータを取得し、一層の嗜好ノードセットがその上位層の嗜好ノードセットに基づいて特定されるように配置される分類器パラメータ取得モジュールと、
前記ツリー構造パラメータ及び前記分類器パラメータに基づいてリコールモデルを構築し、前記オブジェクトセットで前記ユーザに対する候補オブジェクトセットを特定するように配置されるリコールモデル構築モジュールと、を含む
情報処理装置。
【請求項14】
前記ツリー構造パラメータ取得モジュールは、
前記オブジェクトセットをベクトル化して、オリジナルオブジェクトベクトルセットを生成するように配置されるオリジナルオブジェクトベクトルセット生成モジュールと、
事前トレーニングモデルおよび前記オリジナルオブジェクトベクトルセットに基づいて、クラスタリング特性に関して最適化された最適化オブジェクトベクトルセットを生成するように配置される最適化オブジェクトベクトルセット生成モジュールと、
前記最適化オブジェクトベクトルセットに対してクラスタリングを実行して前記ツリー構造を構築し、前記ツリー構造パラメータを特定するように配置されるクラスタリングモジュールと、を含む
請求項13に記載の装置。
【請求項15】
前記ユーザは第1のユーザであり、
前記装置は、
第2のユーザの履歴ユーザデータに基づいて、前記ツリー構造で前記第2のユーザに好まれるリーフノードを特定するように配置される嗜好リーフノード特定モジュールと、
前記ツリー構造における前記リーフノードの先輩ノードを第1のノードセットとして特定するように配置される第1のノードセット特定モジュールと、
前記第1のノードセットに基づいて、前記リコールモデルをトレーニングするためのポジティブサンプルを特定するように配置されるポジティブサンプル特定モジュールと、をさらに含む
請求項13に記載の装置。
【請求項16】
前記ポジティブサンプル特定モジュールは、
前記履歴ユーザデータ及び前記分類器に基づいて、前記ツリー構造の最上位階層以下の複数の階層に対応する複数の階層ノードサブセットを特定し、各階層ノードサブセットが対応階層における確率ランキングが上位である複数のノードを含むように配置される階層ノードサブセット特定モジュールと、
前記複数の階層ノードサブセットの和集合に基づいて、第2のノードセットを特定するように配置される第2のノードセット特定モジュールと、
前記第1のノードセットと前記第2のノードセットとの共通集合に基づいて、前記ポジティブサンプルを取得するように配置されるポジティブサンプル取得モジュールと、を含む
請求項15に記載の装置。
【請求項17】
前記リコールモデルをトレーニングするためのトレーニングデータに前記オブジェクトセットに属さない新規オブジェクトが含まれるとの特定に従って、前記新規オブジェクトに対応する新規リーフノードを作成するように配置される新規リーフノード作成モジュールと、
前記新規リーフノードを前記ツリー構造に挿入するように配置される挿入モジュールと、をさらに含む
請求項13に記載の装置。
【請求項18】
前記挿入モジュールは、
前記トレーニングデータにおいて、前記新規オブジェクトに関連するユーザデータを取得するように配置されるユーザデータ取得モジュールと、
前記ユーザデータ及び前記分類器に基づいて、前記ツリー構造において好まれる確率が最大である目標リーフノードを特定するように配置される目標リーフノード特定モジュールと、
前記新規リーフ子ノードを前記目標リーフノードの兄弟ノードとして前記ツリー構造に追加するように配置される兄弟ノード追加モジュールと、を含む
請求項17に記載の装置。
【請求項19】
前記ユーザデータ取得モジュールは、
前記新規オブジェクトが複数のユーザの複数の候補ユーザデータに関連するとの特定に従って、
前記複数の候補ユーザデータからランダムに選択された1つの候補ユーザデータと、
前記複数の候補ユーザデータに基づいて特定される平均候補ユーザデータと、
前記複数の候補ユーザデータにおける重みが最も大きいユーザに対応する候補ユーザデータと、
の少なくとも1つに基づいて前記ユーザデータを特定するように配置されるユーザデータ特定モジュールを含む
請求項18に記載の装置。
【請求項20】
前記挿入モジュールは、
前記ツリー構造の最下位階層の一層上の階層における非リーフノードから、目標非リーフノードをランダムに特定するように配置される目標非リーフノード特定モジュールと、
前記新規リーフのノードを、前記目標非リーフノードの子ノードとして前記ツリー構造に追加するように配置される子ノード追加モジュールと、を含む
請求項17に記載の装置。
【請求項21】
前記第1の予定時間長内に前記新規オブジェクトを好むユーザ数が閾値数より多いとの特定に従って、前記トレーニングデータに前記新規オブジェクトが含まれると特定するように配置される新規オブジェクト特定モジュール、をさらに含む
請求項17に記載の装置。
【請求項22】
第2の予定時間長内に前記オブジェクトセットにおけるオブジェクトが好まれる回数が閾値回数未満であるとの特定に従って、前記オブジェクトセットから前記オブジェクトを除去して新規オブジェクトセットを取得するように配置される新規オブジェクトセット取得モジュールと、
前記新規オブジェクトセットに基づいて新規ツリー構造の新規ツリー構造パラメータを取得するように配置される新規ツリー構造パラメータ取得モジュールと、
前記新規ツリー構造パラメータに基づいて新規リコールモデルを構築するように配置される新規リコールモデル構築モジュールと、をさらに含む
請求項13に記載の装置。
【請求項23】
前記分類器は、前記ツリー構造の最上位階層以下の複数の階層に対応する複数の分類器ユニットを含み、前記複数の分類器ユニットの各々は、対応階層におけるノードがユーザによって好まれる確率を予測するために使用される
請求項13に記載の装置。
【請求項24】
請求項1~11のいずれか一項に記載の方法に従って構築されたリコールモデルに基づいて、推薦システムにおける推薦に利用可能なオブジェクトセットから、ユーザに対する候補オブジェクトセットを特定するように配置されるリコールモジュールと、
前記候補オブジェクトセットから前記ユーザに推薦する少なくとも1つのオブジェクトを特定するように配置される推薦オブジェクト特定モジュールと、を含む
情報推薦装置。
【請求項25】
プロセッサと、
前記プロセッサと通信可能に接続されたメモリと、を含み、
前記メモリには、前記プロセッサによって実行可能な命令が記憶され、前記命令は、前記プロセッサによって実行され、前記プロセッサに請求項1~11のいずれか一項に記載の方法を実行させることを可能にする
電子デバイス。
【請求項26】
プロセッサと、
前記プロセッサと通信可能に接続されたメモリと、を含み、
前記メモリには、前記プロセッサによって実行可能な命令が記憶され、前記命令は、前記プロセッサによって実行され、前記プロセッサに請求項12に記載の方法を実行させることを可能にする
電子デバイス。
【請求項27】
コンピュータに請求項1~11のいずれか一項に記載の方法を実行させるためのコンピュータ命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項28】
コンピュータに請求項12に記載の方法を実行させるためのコンピュータ命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項29】
プロセッサによって実行されたときに、請求項1~11のいずれか一項に記載の方法を実現するコンピュータプログラム。
【請求項30】
プロセッサによって実行されたときに、請求項12に記載の方法を実現するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータ技術の分野及び情報処理技術の分野に関し、特に、人工知能、推薦システム及びディープラーニング技術の分野に関する。
【背景技術】
【0002】
ディープラーニングを基礎とする推薦システム適用場面では、データ量が多く、特徴が多く、オンライン推薦に要する遅延が低いなどの技術的困難がある。これらの技術的困難に対処するために、実際の適用において、通常、推薦フローを2つの大きなステップに分割する。第1のステップは、リコールステップであり、すなわち、推薦システムに入力されたユーザの特徴や関連文を、データベースにおける大量(例えば、上億個)の商品、広告、ニュースなどのオブジェクト(カテゴリともいえる)の情報と類似度を計算する。転置インデックスやベクトルコサイン類似度計算などの検索方式により、関連性の高い少量(例えば、数百個)のオブジェクトを選ぶ。第2のステップは、ソートステップであり、すなわち、数百のオブジェクトをリコール(例えば、多重リコール)し、ユーザの特徴とさらにクリック率、支払い率、視聴予想時間長などの業務指標を計算し、それに応じてリコールされるオブジェクトをソートし、最終的にユーザに提示される推薦結果を生成する。
【0003】
これによれば、推薦システムが良好であることは、リコールステップにおけるリコールされたオブジェクトとユーザ特徴やユーザデータとの関連性が高いことを基礎とする。したがって、リコールステップのリコール効果を高めることで、推薦システムの以降のソートおよび表示効果を顕著に高めることができる。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示は、情報処理方法、情報処理装置、情報推薦方法、情報推薦装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラムを提案する。
【0005】
本開示の第1の局面によれば、情報処理方法が提供される。この方法は、推薦に利用可能なオブジェクトセットをインデックスするためのツリー構造のツリー構造パラメータを取得することを含む。この方法は、ツリー構造の最上位階層から下位に向けて階層ごとに、各階層のユーザに好まれる確率ランキングが上位である嗜好ノードセットを予測する分類器の分類器パラメータを取得し、一層の嗜好ノードセットがその上位層の嗜好ノードセットに基づいて特定されることをさらに含む。この方法は、ツリー構造パラメータ及び分類器パラメータに基づいてリコールモデルを構築し、オブジェクトセットでユーザに対する候補オブジェクトセットを特定することをさらに含む。
【0006】
本開示の第2の局面によれば、情報推薦方法が提供される。この方法は、第1の局面の方法に従って構築されたリコールモデルに基づいて、推薦システムにおける推薦に利用可能なオブジェクトセットから、ユーザに対する候補オブジェクトセットを特定することを含む。この方法は、候補オブジェクトセットからユーザに推薦する少なくとも1つのオブジェクトを特定することをさらに含む。
【0007】
本開示の第3の局面によれば、情報処理装置が提供される。この装置は、推薦に利用可能なオブジェクトセットをインデックスするためのツリー構造のツリー構造パラメータを取得するように配置されるツリー構造パラメータ取得モジュールを含む。この装置は、ツリー構造の最上位階層から下位に向けて階層ごとに、各階層のユーザに好まれる確率ランキングが上位である嗜好ノードセットを予測する分類器の分類器パラメータを取得し、一層の嗜好ノードセットがその上位層の嗜好ノードセットに基づいて特定されるように配置される分類器パラメータ取得モジュールをさらに含む。この装置は、ツリー構造パラメータ及び分類器パラメータに基づいてリコールモデルを構築し、オブジェクトセットでユーザに対する候補オブジェクトセットを特定するように配置されるリコールモデル構築モジュールをさらに含む。
【0008】
本開示の第4の局面によれば、情報推薦装置が提供される。この装置は、第1の局面の方法に従って構築されたリコールモデルに基づいて、推薦システムにおける推薦に利用可能なオブジェクトセットから、ユーザに対する候補オブジェクトセットを特定するように配置されるリコールモジュールを含む。この装置は、候補オブジェクトセットからユーザに推薦する少なくとも1つのオブジェクトを特定するように配置される推薦オブジェクト特定モジュールをさらに含む。
【0009】
本開示の第5の局面によれば、電子デバイスが提供される。当該電子デバイスは、プロセッサと、プロセッサに通信可能に接続されたメモリとを含む。メモリには、プロセッサによって実行可能な命令が記憶され、命令は、プロセッサによって実行されて、プロセッサに第1の局面の方法を実行させることを可能にする。
【0010】
本開示の第6の局面によれば、電子デバイスが提供される。当該電子デバイスは、プロセッサと、プロセッサに通信可能に接続されたメモリとを含む。メモリには、プロセッサによって実行可能な命令が記憶され、命令は、プロセッサによって実行されて、プロセッサに第2の局面の方法を実行させることを可能にする。
【0011】
本開示の第7の局面によれば、コンピュータに第1の局面の方法を実行させるためのコンピュータ命令を記憶した非一時的コンピュータ可読記憶媒体が提供される。
【0012】
本開示の第8の局面によれば、コンピュータに第2の局面の方法を実行させるためのコンピュータ命令を記憶した非一時的コンピュータ可読記憶媒体が提供される。
【0013】
本開示の第9の局面によれば、コンピュータプログラムが提供される。当該コンピュータプログラムは、プロセッサによって実行されるときに、第1の局面による方法を実現する。
【0014】
本開示の第10の局面によれば、コンピュータプログラムが提供される。当該コンピュータプログラムは、プロセッサによって実行されるときに、第2の局面による方法を実現する。
【0015】
このセクションに記載された内容は、本開示の実施例の主要な特徴または重要な特徴を特定することを意図しておらず、本開示の範囲を限定するものでもないことを理解されたい。本開示の他の特徴は、以下の説明によって容易に理解されるであろう。
【0016】
図面は、本願をよりよく理解するためのものであり、本開示を限定するものではない。
【図面の簡単な説明】
【0017】
【
図1】
図1は、本開示のいくつかの実施例が実現され得る例示的な環境の概略図を示す。
【
図2】
図2は、本開示の実施例による情報処理方法の例示的な過程のフローチャートを示す。
【
図3】
図3は、本開示の実施例によるオブジェクトセットに基づいてツリー構造パラメータを特定する例示的な過程のフローチャートを示す。
【
図4】
図4は、本開示の実施例によるオブジェクトセットに基づいてツリー構造パラメータを特定する例示的なブロック図を示す。
【
図5】
図5は、本開示の実施例によるリコールモデルをトレーニングするためのポジティブサンプルを特定するための例示的な過程のフローチャートを示す。
【
図6】
図6は、本開示の実施例による2つのノードセットの共通集合に基づいてポジティブサンプルを特定するための例示的な過程のフローチャートを示す。
【
図7】
図7は、本開示の実施例による新規リーフノードをツリー構造に追加する例示的な過程のフローチャートを示す。
【
図8】
図8は、本開示の実施例によるオブジェクトセットからオブジェクトを除去した後に新規リコールモデルを構築する例示的な過程のフローチャートを示す。
【
図9】
図9は、本開示の実施例による情報推薦方法の例示的な過程のフローチャートを示す。
【
図10】
図10は、ツリー構造とリコールモデルとが分離されている場合におけるオフライントレーニング段階およびオンラインリコール段階の例示的な過程のブロック図を示す。
【
図11】
図11は、本開示の実施例によるリコールモデルのオフライントレーニング段階およびオンラインリコール段階の例示的な過程のブロック図を示す。
【
図12】
図12は、本開示の実施例による例示的な情報処理装置のブロック図を示す。
【
図13】
図13は、本開示の実施例による例示的な情報推薦装置のブロック図を示す。
【
図14】
図14は、本開示の実施例を実現するための例示的な電子デバイスのブロック図を示す。
【発明を実施するための形態】
【0018】
図面全体にわたって同一または類似の参照符号は、同一または類似の部品を示す。
以下、添付の図面を組み合わせて、本願の例示的な実施例を説明し、理解を容易にするために本願の実施例の様々な詳細を含むが、それらは単に例示的なものとみなされるべきである。したがって、当業者は、本願の範囲および精神から逸脱することなく、本明細書に記載される実施例に対して様々な変更および修正を行うことができることを認識するであろう。また、明確化及び簡潔化のために、以下の説明では、周知の機能及び構成についての記載が省略される。
【0019】
上述したように、推薦システムが良好であることは、リコールステップでリコールされるオブジェクトとユーザ特徴またはユーザデータとの関連性が高いことを基礎とする。したがって、リコールステップのリコール効果を高めることで、推薦システムの以降のソートおよび表示効果を顕著に高めることができる。しかしながら、推薦システムに用いられる従来のリコールステップには、様々な問題がある。例えば、転置インデックスに基づくリコール方法は、所定のルールを用いてトリガされ、リコール効果は、人間のルール設計に依存し、最適なリコール戦略を達成し難しい。
【0020】
また、例えば、ベクトル検索に基づくリコール方式は、ユーザ側のベクトルとオブジェクト側のベクトルを用いて類似度を計算するため、ディープラーニングモデルの計算複雑度に制限され、また、両者のベクトルが統一次元にマッピングされることを要求し、また、複雑なモデルを用いて両者の情報のインタラクションをサポートすることができず、リコール効果の向上が制限される。また、業界で主流となっているリコール実現方法では、検索段階の計算回数を減らすために、オブジェクト側のベクトルを事前に計算し、それに応じてリコールオブジェクトを特定する検索構造を構築する必要がある。しかし、リコールモデルのトレーニング段階と、リコール検索構築段階の最適化目標が一致しないため、リコールモデルのリコール効果に影響を及ぼす。
【0021】
従来の解決策における上述の問題及び他の潜在的な問題に鑑み、本開示の実施例は、リコールモデルを構築するための技術案を提案する。本開示のリコールモデルを構築する技術案において、コンピューティングデバイスは、ツリー構造のツリー構造パラメータを取得し、ツリー構造は、推薦に利用可能なオブジェクトセットをインデックスする。また、コンピューティングデバイスは、分類器の分類器パラメータを取得し、分類器は、ツリー構造の最上位階層から下位に向けて階層ごとに、各階層のユーザに好まれる確率ランキングが上位である嗜好ノードセットを予測し、ここで、1つの階層の嗜好ノードセットは、その上位階層の嗜好ノードセットに基づいて特定される。そして、コンピューティングデバイスは、オブジェクトセットでユーザに対する候補オブジェクトセットを特定するために、ツリー構造パラメータ及び分類器パラメータに基づいてリコールモデルを構築する。本開示の実施例によって構築されたリコールモデルは、ツリー構造パラメータおよび分類器パラメータをモデルパラメータとして、リコールモデルのトレーニング過程および使用過程を最適化し、リコールモデルのリコール結果をさらに改善する。
【0022】
本開示の技術案において、関連するユーザーの個人情報の取得、保存、および適用は、関連する法律および規制に準拠しており、公序良俗に違反しないことに留意されたい。
【0023】
図1は、本開示のいくつかの実施例が実現され得る例示的な環境100の概略図を示す。
図1に示すように、例示的な環境100は、オブジェクトセット112を含むことができ、オブジェクトセット112は、ユーザに推薦するために使用可能なオブジェクト(物品又はカテゴリなどとも呼ばれる)を含む。例えば、そのようなオブジェクトは、ユーザが購入可能な商品、ユーザが視聴又は閲覧可能なコンテンツ(例えば、音声、ビデオ、画像、ニュース、書籍など)、ユーザに提示可能な広告、ユーザに推薦可能なソーシャル情報、位置に基づくサービスコンテンツなどを含み得る。より一般的には、オブジェクトセット112におけるオブジェクトは、ユーザに推薦可能な任意のデータ又は情報を含むことができる。いくつかの実施例では、オブジェクトセット112は、ある推薦システムにおけるユーザに推薦するために使用可能なオブジェクトセットであることができる。
図1の例示的場面では、オブジェクトセット112における各オブジェクトは、デジタル化形式で表現され(例えば、ベクトルで表現され)、コンピューティングデバイス120に提供され得る。
【0024】
図1に示すように、リコールモデル130はコンピューティングデバイス120に実現され得る。例えば、リコールモデル130は、オブジェクトセット112に関連する推薦システムにおいてリコールステップを実現するために用いられることができる。すなわち、リコールモデル130は、オブジェクトセット112においてあるユーザに対する候補オブジェクトセット114を特定することができる。例えば、あるユーザに関するユーザデータに基づいて、リコールモデル130は、オブジェクトセット112において当該ユーザが好む(関心があるとも称される)複数のオブジェクト、すなわち、候補オブジェクトセット114を予測することができる。より直感的な説明として、いくつかの例示的な場面では、オブジェクトセット112は、膨大な数のオブジェクト、例えば、数百万から億のオブジェクトを含む可能性がある。これに対し、リコールモデル130によって予測されるユーザの関心のある候補オブジェクトセット114は、より少ないオブジェクト、例えば、数十から数百個のオブジェクトを含むことができる。いくつの実施例では、リコールモデル130によって提供される候補オブジェクトセット114に基づいて、推薦システムは、ユーザへ推薦する1つ以上のオブジェクト、すなわち、推薦されるオブジェクト116を更に特定(例えば、選択)することができる。
【0025】
図1に示す例では、リコールモデル130は、ツリー構造パラメータ132および分類器パラメータ134に基づいて構築され得る。本開示の実施例において、ツリー構造パラメータ132は、ツリー構造140を説明するために使用されてもよく、ツリー構造140は、推薦に利用可能なオブジェクトセット112をインデックスする。言い換えると、オブジェクトセット112における各オブジェクトは、ツリー構造140における異なるノードにそれぞれ対応し得る。したがって、本開示の文脈では、ツリー構造140は、インデックスツリー140とも呼ばれまたは表され、これらの2つの用語は、本明細書において互換的に使用され得る。
【0026】
一般に、ツリー構造140は、最上位階層から最下位階層までの複数の階層を含み、各階層は、1つ以上のノードを含み得る。例えば、ツリー構造140の最上位階層はルートノードのみを含み、最下位階層のノードは、子ノードを含まないのでリーフノードと呼ぶことができる。なお、ツリー構造140の最下位階層以外のノードは、子ノードを有するので、非リーフノードと呼ぶことができる。いくつかの実施例において、ツリー構造140の最下位階層の各リーフノードは、オブジェクトセット112中の1つのオブジェクトに対応することができ、ツリー構造140の各非リーフノードは、オブジェクトセット112の複数のオブジェクトからなるオブジェクトサブセットに対応することができる。また、ツリー構造140における各ノードは、1つの親ノードのみを有することができる。
【0027】
図1に模式的に示した具体例では、ツリー構造140は、第1階層~第4階層、および各階層にあるノード140-1~140-15を有している。第1階層は、ルートノード140-1を含み、第2階層は、ノード140-2、140-3を含み、第3階層は、ノード140-4乃至140-7を含み、第4階層は、ノード140-8乃至140-15を含む。ツリー構造140のノードのうち、ノード140-8乃至140-15は、リーフノードであり、それぞれオブジェクトセット112の8個のオブジェクトに対応する。ノード140-1乃至140-7は、非リーフノードであり、それぞれオブジェクトセット112のサブセットに対応し得る。例えば、ノード140-5は、ノード140-12及び140-13に対応する2つのオブジェクトからなるサブセットなどに対応することができる。
【0028】
なお、
図1のツリー構造140は、特定の数のノード及び特定のトポロジーを有するものとして描かれているが、これは単なる例示であり、本開示の範囲を何ら限定することを意図していない。他の実施例において、ツリー構造140は、任意の数のノード及び任意のトポロジーを有することができる。例えば、
図1の例示では、ツリー構造140は、完全二分木であるので、各ノードは、2つの子ノードのみを有する。ただし、完全二分木構造は、例示的なものであり、本開示の実施例のツリー構造140は、これに限定されない。他の実施例において、ツリー構造140の各非リーフノードは、任意の数の子ノードを有し得る。
【0029】
リコールモデル130を構築するためのツリー構造パラメータ132は、任意の適切な表現方法または形式でツリー構造140を表現することができる。例えば、ツリー構造パラメータ132は、ツリー構造140のトポロジー構造を説明するパラメータを含むことができ、ツリー構造140の各ノードのパラメータをさらに含むことができる。より具体的には、いくつかの実施例において、ツリー構造パラメータ132は、行列の形態で表現されてもよく、当該行列の各素子は、ツリー構造140における各ノードに関する情報であることができる。このようなノード情報は、例えば、当該ノードの識別子、当該ノードの親ノードの識別子、当該ノードの子ノードの識別子、当該ノードのベクトル表現などを含み得る。
【0030】
他の実施例において、ツリー構造パラメータ132のノード情報は、ノードを管理するための任意の他の情報、例えば、ノードがいつにツリー構造140に追加され、ノードがユーザに好まれる回数、ノードがツリー構造140に存在する時間長、ノードがユーザに好まれない時間長など、をさらに含むことができる。要するに、コンピューティングデバイス120は、ツリー構造パラメータ132に基づいて、ツリー構造140のトポロジー構造およびツリー構造140の各ノードの情報を完全に特定することができ、具体的な適用場面および要求によってノードの関連情報を追加または削除することができる。
【0031】
図1にさらに示されるように、リコールモデル130は、ツリー構造パラメータ132に加えて、分類器150の分類器パラメータ134に基づいて構築される。本明細書で使用されるように、分類器150は、ツリー構造140の最上位階層から下位に向けて階層ごとに、各階層のユーザに好まれる確率ランキングが上位である嗜好ノードセットを予測することができる。例えば、ユーザの関連データまたは情報(以下、単にユーザデータと呼ばれる)およびツリー構造140の各ノードのノード情報に基づいて、分類器150は、各ノードにユーザが関心を持つ確率又は確率の大きさの順位を特定することができる。したがって、いくつかの場合では、分類器150は、関心分類器、嗜好分類器、判別器、関心判別器、嗜好判別器などとも呼ばれ得る。
【0032】
いくつかの実施例では、ユーザデータは、ユーザの嗜好を予測するためのユーザに関する任意の情報であることができる。例えば、ユーザデータは、ユーザの行動情報、ユーザのプロファイル情報、ユーザのコンテキスト情報などを含むことができる。下記、
図2を参照して、ツリー構造140において分類器150が階層ごとに嗜好ノードセットを特定する例示的な過程をさらに説明する。本明細書で使用される場合、分類器パラメータ134は、分類器150を記述するために使用されるパラメータであり得る。例えば、分類器150に使用されるアルゴリズムまたはモデルに応じて、分類器パラメータ134は、異なるコンテンツを有する。要するに、コンピューティングデバイス120は、分類器パラメータ134に基づいて、分類器150を完全に特定することができる。
【0033】
いくつかの実施例において、ツリー構造140は、オブジェクトの特徴に基づく最大ヒープツリーであることができる。最大ヒープツリー構造では、ツリー構造140のリーフノードからルートノードまで、粒度の異なるオブジェクト分類に対応することができ、オブジェクトの分類粒度は、細かいもの乃至粗いものであることができる。したがって、リコールモデル130がオブジェクトのリコール検索を行う場合、分類器150は、最上位階層から下位に向けてツリー構造140のノードをトラバースし、ユーザと各ノードとの類似度を判断することによって、粗いもの乃至細かいもののユーザの関心を予測することができる。また、分類器150がユーザとノードとの類似度に対する計算は、ベクトルの内積に限定されず、任意の複雑なディープラーニングモデルによる類似度の計算をサポートし得る。さらに、最大ヒープツリーに基づく方法は、ユーザ側とオブジェクト側との複雑なインタラクションをアルゴリズム的にサポートすることができ、そして、リコールモデル130のオンラインオブジェクト検索の計算複雑度を制御することができる。
【0034】
このように、ツリー構造140は、ネットワークトレーニングに参加した最大ヒープツリーを利用して、効率的なリコールオブジェクト検索構造を実現することができる。このようなツリー構造140は、人間の脳の考え方を参考して設計されたものと考えることができ、ユーザの関心の側面から、粗い粒度から細かい粒度までの組織方式および検索方式を構築し、これにより、オブジェクト検索過程におけるリコールモデル130の計算回数を顕著に減らすことができる。いくつかの実施例において、ツリー構造140の各階層に対応し、分類器150は、異なる関心粒度に対してトレーニングされるディープラーニングモデルを含むことができ、本明細書では、分類器ユニットとも呼ばれる。したがって、各階層のディープラーニングモデル(すなわち、分類器ユニット)は、ベクトル内積類似度の計算に限定されず、任意の先進なディープラーニングモデルを搭載することができる。以下、
図2を参照してそのような実施例をさらに説明する。
【0035】
いくつかの実施例では、コンピューティングデバイス120は、コンピューティング機能及び/又は制御機能を実現可能な任意のデバイスを含むことができ、任意のタイプの固定コンピューティングデバイス、移動コンピューティングデバイス、又は携帯コンピューティングデバイスであってもよく、専用コンピュータ、汎用コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、タブレットコンピュータ、マルチメディアコンピュータ、携帯電話、汎用プロセッサ、マイクロプロセッサ、マイクロコントローラ、又はステートマシンを含むが、これらに限定されない。コンピューティングデバイス120は、個別のコンピューティングデバイスまたはコンピューティングデバイスの組合せ、例えば、デジタル信号プロセッサ(DSP)とマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つ以上のマイクロプロセッサ、または任意の他のそのような構成として実現されることができる。
【0036】
さらに、
図1が、本開示の実施例に関連するオブジェクト、ユニット、素子、または部品を概略的に示すに過ぎないことを理解されたい。実際には、例示的な環境100は、他のオブジェクト、ユニット、素子、又は部品などをさらに含むことができる。さらに、
図1に示されるオブジェクト、ユニット、素子、または部品の特定の数は、単に例示的なものであり、本開示の範囲をいかなる方法で限定することを意図していない。他の実施例では、例示的な環境100は、任意の適切な数のオブジェクト、ユニット、素子、または部品などを含み得る。したがって、本開示の実施例は、
図1に示される具体的な場面に限定されず、リコールモデルを構築する任意の技術的環境に一般に適用可能である。以下、
図2を参照して、本開示の実施例のリコールモデルを構築するための例示的な過程を説明する。
【0037】
図2は、本開示の実施例による情報処理方法の例示的な過程200のフローチャートを示す。いくつかの実施例において、例示的な過程200は、例示的な環境100におけるコンピューティングデバイス120によって実現され、例えば、コンピューティングデバイス120のプロセッサもしくは処理ユニットによって、またはコンピューティングデバイス120の様々な機能モジュールによって実現され得る。他の実施例では、例示的な過程200は、例示的な環境100から独立したコンピューティングデバイスによって実現されてもよく、または例示的な環境100の他のユニットもしくはモジュールによって実現されてもよい。説明の便宜上、
図1を参照して例示的な過程200を説明する。
【0038】
ブロック210で、コンピューティングデバイス120は、リコールモデル130のツリー構造140ためのツリー構造パラメータ132を取得する。上述したように、ツリー構造140は、推薦に利用可能なオブジェクトセット112をインデックスする。いくつかの実施例において、ツリー構造140における各リーフノードは、オブジェクトセット112の1つのオブジェクトに対応することができる。また、ツリー構造140の各非リーフノードは、オブジェクトセット112の複数のオブジェクトからなるオブジェクトサブセットに対応することができる。例えば、このようなオブジェクトサブセットにおけるオブジェクトは、共通の特徴を有することができる。したがって、いくつかの実施例において、ツリー構造140の各非リーフノードは、1つのオブジェクト分類に対応するものとして理解され、ツリー構造140の異なる階層における非リーフノードは、異なる粒度のオブジェクト分類に対応するものとして理解され得る。
【0039】
いくつかの実施例では、ツリー構造140の機能がオブジェクトセット112における各オブジェクトをインデックスすることであるので、コンピューティングデバイス120は、オブジェクトセット112に基づいてツリー構造140を特定し、ツリー構造パラメータ132をさらに取得することができる。上述したように、オブジェクトセット112におけるオブジェクトは、ユーザに推薦するのに適した任意のオブジェクトであることができる。いくつかの実施例では、推薦システムの適用場面の変化に従って、オブジェクトセット112のオブジェクトの種類も変化する。例えば、推薦システムがオンラインショッピング場面に適用される場合、オブジェクトセット112は、ユーザが購入可能な様々な商品を含むことができる。また例えば、推薦システムがユーザにコンテンツ(例えば、音声、ビデオ、画像、ニュース、本等)を推薦する場面に適用される場合、オブジェクトセット112は、ユーザに推薦するための様々なコンテンツを含むことができる。さらに例えば、推薦システムがウェブページ閲覧に適用されるか、又は広告をユーザに推薦する任意の他の場面(例えば、情報検索場面)に適用される場合、オブジェクトセット112は、ユーザにプッシュする様々な広告を含むことができる。また例えば、推薦システムがソーシャルネットワークの場面に適用される場合、オブジェクトセット112は、ユーザに推薦するためのソーシャル情報を含むことができる。
【0040】
一般に、コンピューティングデバイス120は、任意の適切な分類方法または他の処理方法によってオブジェクトセット112を処理し、ツリー構造140を構築し、ツリー構造パラメータ132を取得することができる。いくつかの実施例では、コンピューティングデバイス120は、オブジェクトセット112における各オブジェクトの分類情報に基づいてツリー構造140を構築することができる。例えば、オブジェクトセット112に様々な携帯電話が含まれる場合、コンピューティングデバイス120は、ツリー構造140に各携帯電話に対応するリーフノードを作成することができる。そして、コンピューティングデバイス120は、異なる粒度の携帯電話分類に従って、ツリー構造140のリーフノードの上位階層の非リーフノードを特定し得る。非限定的な例示として、可能性のある非リーフノードは、Androidシステムベースの携帯電話、Appleシステムベースの携帯電話、他のオペレーティングシステムに基づく携帯電話などに対応し得る。オブジェクトセット112におけるオブジェクトが変化すると、コンピューティングデバイス120がツリー構造140を作成するためのオブジェクト分類情報も対応的に変化することが理解されるであろう。
【0041】
他の実施例では、コンピューティングデバイス120は、適切なクラスタリングアルゴリズムを用いてオブジェクトセット112のオブジェクトをクラスタリングし、ツリー構造140を構築するための複数のオブジェクト分類を特定することができる。例えば、オブジェクトセット112の各オブジェクトは、オブジェクトベクトル表現にベクトル化されてもよく、すなわち、異なるオブジェクトは、異なるオブジェクトベクトルを用いて表される。したがって、コンピューティングデバイス120は、クラスタリングアルゴリズムを用いてオブジェクトのオブジェクトベクトル表現を処理し、オブジェクトセット112のオブジェクトを異なるクラスにクラスタリングすることができ、各クラスにおけるオブジェクトは、一定の類似性を有し、異なるクラスにおけるオブジェクトは、類似性が低い。
【0042】
非限定的な例示として、コンピューティングデバイス120によって採用され得るクラスタリングアルゴリズムは、K-Means(K平均値)クラスタリングアルゴリズム、平均値ドリフトクラスタリングアルゴリズム、密度ベースのクラスタリング法(DBSCAN)、ガウス混合モデル(GMM)を利用する最大期待(EM)クラスタリングアルゴリズム、集約的階層クラスタリング、グラフコミュニティ検出クラスタリングアルゴリズムなどを含むが、それらに限定されない。より一般的には、コンピューティングデバイス120は、既存のまたは将来開発される任意のクラスタリングアルゴリズムを使用して、オブジェクトセット112のオブジェクトをクラスタリングして、ツリー構造140を構築し、ツリー構造パラメータ132を取得することができる。
【0043】
別の実施例では、オブジェクトセット112の各オブジェクトのよりよいクラスタリング効果を実現するために、コンピューティングデバイス120は、まず、事前トレーニングモデルを用いて、オブジェクトセット112の各オブジェクトのオリジナルオブジェクトベクトル表現を最適化オブジェクトベクトル表現に変換してもよい。オリジナルオブジェクトベクトル表現に比べ、これらの最適化オブジェクトベクトル表現は、よりよいクラスタリング特性を有する。次いで、コンピューティングデバイス120は、クラスタリングアルゴリズムを使用して、これらの最適化オブジェクトベクトル表現をクラスタリングして、ツリー構造140を構築し、ツリー構造パラメータ132を取得してもよい。このように、クラスタリングによるツリー構造140の初期化をより効率的に行うことができ、収束速度を速めることができ、これにより、リコールモデル130の効果が改善されることができる。以下、
図3および
図4を参照して、そのような実施例をさらに説明する。
【0044】
ブロック220で、コンピューティングデバイス120は、リコールモデル130の分類器150のための分類器パラメータ134を取得する。一般に、リコールモデル130の分類器150は、ユーザがあるオブジェクトを好む確率、又はユーザが複数のオブジェクトに関心を持っている確率の大きさのランキングを予測するための任意のアルゴリズム、モデル、ユニット、部品、又はモジュールなどであることができる。例えば、分類器150は、ユーザデータとオブジェクトセット112のオブジェクトのオブジェクト表現との相関性の大きさを計算することができる。ユーザデータとオブジェクト表現との相関性の大きさに基づいて、分類器150は、ユーザがあるオブジェクトを好む確率を特定することができる。あるいは、分類器150は、あるオブジェクトにユーザが関心を持っている確率を具体的に特定するのではなく、複数のオブジェクトにユーザが関心を持っている確率の大きさのランキングを特定することもできる。いくつかの実施例において、リコールモデル130の分類器150は、機械学習に基づくモデルであることができ、例えば、任意の適切なディープラーニングネットワーク、完全接続ネットワーク、注意メカニズムに基づくネットワーク等であることができる。他の実施例では、リコールモデル130の分類器150は、非機械学習に基づくモデルであってもよい。さらに、上述したように、分類器パラメータ134は、リコールモデル130の分類器150を説明するためのパラメータであってもよい。例えば、分類器150に使用される具体的なアルゴリズムまたはモデルに応じて、分類器パラメータ134は、異なるコンテンツを有する。要するに、コンピューティングデバイス120は、分類器パラメータ134に基づいて、分類器150を完全に特定することができる。
【0045】
いくつかの実施例において、リコールモデル130の分類器150は、ツリー構造140の最上位階層から下位に向けて階層ごとに、各階層のユーザに好まれる確率ランキングが上位である嗜好ノードセットを予測することができる。例えば、ユーザデータ(例えば、ユーザの行動データ、ユーザのプロファイルデータ、ユーザのコンテキストデータなど)及び各ノードのノード情報に基づいて、分類器150は、ツリー構造140の各階層で複数のノードにユーザが関心を持っている確率、又は複数のノードにユーザが関心を持っている確率の大きさのランキングを特定することができる。より具体的な例示として、
図1に示すツリー構造140において、第2階層のノード140-2および140-3について、分類器150は、ユーザデータおよびノード140-2、140-3のノード情報に基づいて、ノード140-2、140-3にユーザが関心を持つ確率ランキングを予測することができる。第3階層のノード140-4乃至140-7については、分類器150は、ユーザデータ及びノード140-4乃至140-7のノード情報に基づいて、ノード140-4乃至140-7にユーザが関心を持つ確率ランキングを予測することができる。同様に、第4階層のノード140-8乃至140-15についても、分類器150は、ユーザデータ及びノード140-8乃至140-15のノード情報に基づいて、ノード140-8乃至140-15にユーザが関心を持つ確率ランキングを予測することができる。
【0046】
また、推薦システム内の推薦に利用可能なオブジェクトセット112内のオブジェクトの数は膨大である可能性があるため、分類器150は、ツリー構造140内のすべてのリーフノードについてユーザに好まれる確率または確率ランキングを直接予測することができない場合がある。このために、分類器150は、ビームサーチ(Beam Search)の方式でツリー構造140の各階層でユーザに好まれるノードセットを特定することができる。このようなビームサーチにおいて、分類器150は、ある階層における考慮すべきノードを、上位階層におけるユーザに好まれるノードの子ノードだけに限定することができる。より具体的な例示として、
図1に示すツリー構造140において、第3階層におけるユーザに好まれるノードセットをノード140-4、140-6と仮定した場合、分類器150は、第4階層においてユーザに好まれるノードセットを特定する際に、ノード140-4および140-6の子ノード、すなわち、ノード140-8、140-9、140-12及び140-13のみを考慮すればよい。すなわち、分類器150が好まれる確率的大きさが上位である嗜好ノードセットを特定する場合、ツリー構造140の一階層における嗜好ノードセットは、当該階層の上位階層の嗜好ノードセットに基づいて特定することができる。
【0047】
いくつかの実施例では、コンピューティングデバイス120は、ツリー構造140に基づいて、分類器150を適切な分類器構造を有することと相応的に特定することができる。例えば、コンピューティングデバイス120は、ツリー構造140全体に対して、個別で統一である分類器150を使用し得る。すなわち、ツリー構造140の異なる階層の全てのノードについて、コンピューティングデバイス120は、同じ分類器150を用いて、ユーザがノードに好まれる確率または確率の大きさのランキングを特定することができる。このようにして、リコールモデル130の分類器150の構造は、簡略化されることができ、これにより、分類器150を実現するためのコンピューティングデバイス120のコンピューティングリソースを節約することができる。
【0048】
他の実施例では、ツリー構造140の複数の階層のポロジー構造を考慮して、分類器150は、ツリー構造140の最上位階層以下の複数の階層に対応する複数の分類器ユニットを含み得る。分類器150のこのような複数の分類器ユニットの各々は、対応的な階層のノードがユーザによって好まれる確率又は確率の大きさのランキングを予測することができる。例えば、
図1に示すツリー構造140の例示において、分類器150は、第2階層~第4階層にそれぞれ対応する3つの分類器ユニットを有することができる。このように、コンピューティングデバイス120は、異なるオブジェクト分類粒度を有するツリー構造140の複数の階層について、対応的な分類器ユニットをそれぞれ実現することができ、そのため、これらの分類器ユニットは、異なるオブジェクト分類粒度のノードに対するユーザの嗜好を予測することができ、それにより、より高い予測正確性を実現し、リコールモデル130のリコール結果をさらに最適化することができる。
【0049】
ブロック230で、ツリー構造パラメータ132及び分類器パラメータ134を取得した後、コンピューティングデバイス120は、ツリー構造パラメータ132及び分類器パラメータ134に基づいてリコールモデル130を構築する。上述したように、コンピューティングデバイス120によって構築されたリコールモデル130は、オブジェクトセット112でユーザに対する候補オブジェクトセット114を特定するために使用されることができる。例えば、例示的な場面では、オブジェクトセット112には、比較的に膨大な数(例えば、数百万から億個)のオブジェクトが含まれる可能性があり、リコールモデル130は、オブジェクトセット112の大きい数のオブジェクトから、ユーザが関心を持っている少ない(例えば、数十から数百個の)オブジェクトを特定することができる。いくつかの実施例において、リコールモデル130に関連する推薦システムは、候補オブジェクト集合114からユーザに推薦するオブジェクト116をさらに特定することができる。例えば、推薦システムは、ランキング戦略に基づいて(例えば、クリック率、支払い率、視聴予想時間などの関連業務指標を考慮して)、候補オブジェクトセット114における複数の候補オブジェクトをランキングし、ユーザに推薦するオブジェクト116を特定することができる。
【0050】
一般に、コンピューティングデバイス120は、任意の適切な方式によって、ツリー構造パラメータ132及び分類器パラメータ134に基づいて、リコールモデル130を構築し、これにより、ツリー構造パラメータ132及び分類器パラメータ134をリコールモデル130のモデルパラメータとして(例えば、バックプロパゲーションアルゴリズムなどにより)最適化又は調整することができる。例えば、リコールモデル130に対するトレーニングによって、ツリー構造パラメータ132は、リコールモデル130のモデルパラメータとして最適化または調整され得る。このような最適化または調整は、ツリー構造140内の各ノードのベクトル表現が最適化されることを含むだけでなく、ツリー構造140内のノードの位置情報の更新、すなわち、ツリー構造140のトポロジー構造の更新も含むことができる。また例えば、リコールモデル130に対するトレーニングによって、分類器パラメータ134は、リコールモデル130のモデルパラメータとして最適化または調整されてもよい。このような最適化又は調整は、例えば、分類器150を実現するためのディープラーニングネットワークのネットワークパラメータの最適化を含むことができる。
【0051】
いくつかの実施例において、コンピューティングデバイス120は、ツリー構造パラメータ132および分類器パラメータ134をそれぞれ使用して、リコールモデル130における異なる階層またはユニットを構築することができる。具体的には、コンピューティングデバイス120は、オブジェクトセット112をツリー構造140に編成するように、ツリー構造パラメータ132によってリコールモデル130の1つの階層を構築することができる。さらに、コンピューティングデバイス120は、分類器150を用いてツリー構造140に基づいてツリー構造140の各ノードにユーザが好まれる確率または確率の大きさランキングを特定するように、分類器パラメータ134によってリコールモデル130の別の階層を構築することができる。これにより、ツリー構造パラメータ132および分類器パラメータ134の両方は、いずれもリコールモデル130のモデルパラメータとして最適化または調整され得る。
【0052】
他の実施例では、コンピューティングデバイス120は、ツリー構造パラメータ132および分類器パラメータ134の両方を、モデルを構築するための他の関連パラメータとともに、リコールモデル130のモデルパラメータとして、モデルの全体的な編成および設計を行い、リコールモデル130を構築してもよい。これにより、例示的な過程200により、コンピューティングデバイス120は、ツリー構造パラメータ132および分類器パラメータ134をモデルパラメータとして、リコールモデル130を構築し、これにより、リコールモデル130におけるツリー構造140および分類器150の一体化トレーニングを実現することができる。そのため、リコールモデル130のトレーニング過程および使用過程を最適化し、リコールモデル130のリコール結果を改善することができる。
【0053】
図2のブロック210を説明する際に上述したように、オブジェクトセット112の各オブジェクトのより良いクラスタリング効果を実現するために、コンピューティングデバイス120は、まず、事前トレーニングモデルを使用して、オブジェクトセット112の各オブジェクトのオリジナルオブジェクトベクトル表現を最適化オブジェクトベクトル表現に変換することができる。オリジナルオブジェクトベクトル表現に比べ、これらの最適化オブジェクトベクトル表現は、よりよいクラスタリング特性を有する。次いで、コンピューティングデバイス120は、クラスタリングアルゴリズムを使用して、これらの最適化オブジェクトベクトル表現をクラスタリングして、ツリー構造140を構築し、ツリー構造パラメータ132を取得することができる。以下、
図3及び
図4を参照して、このような実施例を詳細に説明する。
【0054】
図3は、本開示の実施例によるオブジェクトセット112に基づいてツリー構造パラメータ132を特定する例示的な過程300のフローチャートを示す。いくつかの実施例において、例示的な過程300は、例示的な環境100におけるコンピューティングデバイス120によって実現され、例えば、コンピューティングデバイス120のプロセッサもしくは処理ユニットによって、またはコンピューティングデバイス120の様々な機能モジュールによって実現され得る。他の実施例では、例示的な過程300は、例示的な環境100から独立したコンピューティングデバイスによって実現されてもよく、または例示的な環境100における他のユニットもしくはモジュールによって実現されてもよい。説明の便宜上、
図4を参照して例示的な過程300を説明する。
【0055】
図4は、本開示の実施例によるオブジェクトセット112に基づいてツリー構造パラメータ132を特定する例示的なブロック図表現400を示す。ブロック図表現400において、
図1と同一又は類似のコンポーネントは、同一又は類似の参照符号で示される。
図3及び
図4を参照すると、
図3のブロック310で、コンピューティングデバイス120は、オブジェクトセット112をベクトル化して、オリジナルオブジェクトベクトルセット410を生成することができる。例えば、オリジナルオブジェクトベクトルセット410の各オリジナルオブジェクトベクトルは、オブジェクトセット112の1つのオブジェクトに対応する。いくつかの実施例では、コンピューティングデバイス120は、オブジェクトセット112の各オブジェクトをランダムにベクトル化して、オリジナルオブジェクトベクトルセット410を取得することができる。他の実施例では、コンピューティングデバイス120は、他の適切な方法でオブジェクトセット112内のオブジェクトをベクトル化してオリジナルオブジェクトベクトルセット410を取得してもよい。例えば、コンピューティングデバイス120は、オブジェクトセット112内の各オブジェクトの異なる名前または識別子に基づいて、これらのオブジェクトをベクトル化してもよい。
【0056】
図3のブロック320において、コンピューティングデバイス120は、事前トレーニングモデル420およびオリジナルオブジェクトベクトルセット410に基づいて、クラスタリング特性に関して最適化された最適化オブジェクトベクトルセット430を生成し得る。例えば、最適化オブジェクトベクトルセット430の各最適化オブジェクトベクトルは、オブジェクトセット112の1つのオブジェクトに対応する。通常、事前トレーニングモデル420は、機械学習方法(例えば、ディープラーニング、自己監督学習、教師なし学習など)によって、大規模データから獲得された具体的なタスクと関連しない機械学習モデルであることができる。具体的な適用場面に応じて、事前トレーニングモデル420は、様々な事前トレーニングモデルのうちの1つ又は組み合わせを含み得る。例えば、自然言語処理(NLP)の適用場面に対して、事前トレーニングモデル420は、ERNIEモデル、BERTモデル、ELMoモデルなどを含み得る。画像処理の適用場面に関して、事前トレーニングモデル420は、目標検出モデル、顔認識モデル、語彙画像分割モデル、画像記述モデルなどを含み得る。より一般的には、事前トレーニングモデル420は、オリジナルオブジェクトベクトルセット410のクラスタリング特性を最適化可能な任意の既存のまたは将来開発される事前トレーニングモデルを含むことができる。
【0057】
図3のブロック330において、コンピューティングデバイス120は、ツリー構造パラメータ132を特定するように、最適化オブジェクトベクトルセット430をクラスタリングしてツリー構造140を構築することができる。例えば、コンピューティングデバイス120は、クラスタリングアルゴリズムを使用して、最適化オブジェクトベクトルセット430をクラスタリングすることができる。例示的な過程300によって、事前トレーニングモデル420によって提供された事前トレーニング情報に基づいて、コンピューティングデバイス120は、ツリー構造140の初期化方式を顕著に最適化することができ、それによって、オブジェクト検索構造の効率的な初期化を実現し、収束速度を速くし、リコールモデル130のモデル効果を改善することができる。言い換えれば、オリジナルオブジェクトベクトルセット410は、事前トレーニングモデル420の処理によって、オブジェクトベクトル間の区別性が増し、より良好なクラスタリング特性を有する。したがって、事前トレーニングモデル420は、ツリー構造140の構築をより合理的にし、収束をより迅速にし、効果をより良好にし得る。
【0058】
いくつかの実施例において、リコールモデル130を構築した後、コンピューティングデバイス120は、1つまたは複数のユーザの履歴ユーザデータを用いてリコールモデル130をトレーニングし、リコールモデル130のモデルパラメータ(例えば、ツリー構造パラメータ132および分類器パラメータ134)を最適化または調整して、より妥当なツリー構造140およびより正確な分類器150をもたらし、最終的にリコールモデル130のリコール結果を最適化することができる。例えば、トレーニングされたリコールモデル130のリコール結果は、より高いリコール率及び正確率などを有することができる。
【0059】
より具体的には、リコールモデル130をトレーニングするために、コンピューティングデバイス120は、まず、リコールモデル130をトレーニングするためのポジティブサンプルおよびネガティブサンプルを収集し得る。例えば、あるユーザの履歴ユーザデータが、そのユーザがツリー構造140内のあるリーフノード(すなわち、オブジェクトセット112内のあるオブジェクト)に関心を持つことを示す場合、当該リーフノード及び関連する履歴ユーザデータは、リコールモデル130をトレーニングするためのポジティブサンプルとして使用され得る。なお、リーフノード(またはオブジェクト)に対するユーザの嗜好は、ユーザの明示的なフィードバック、暗示的なフィードバック、それらの組み合わせ、またはユーザの嗜好を体現し得る任意の他の情報に基づいて特定され得る。また、当該ユーザが関心を示さない他のリーフノード、および当該ユーザの履歴ユーザデータは、リコールモデル130をトレーニングするためのネガティブサンプルとして使用され得る。
【0060】
ツリー構造140の最下位階層のすべてのリーフノードにとって、ポジティブサンプルおよびネガティブサンプルの選択は、比較的に直感的であり得る。ユーザの履歴ユーザデータは、ユーザがあるリーフノード、すなわちあるオブジェクトを好むか否かを直接的に反映できるためである。しかしながら、ツリー構造140内の非リーフノードについて、ポジティブサンプルおよびネガティブサンプルの選択は、直接的ではなく、何らかの設計を必要とする。例えば、ユーザ履歴データには、一般的に、ツリー構造140内の非リーフノードに対するユーザの嗜好識別子が含まれない。これは、非リーフノードに対応する異なる粒度のオブジェクト分類概念が、リコールモデル130内部でのみ意味を有し、ユーザに提供されないためである。
【0061】
いくつかの設計では、コンピューティングデバイス120は、ポジティブサンプルとして特定されるリーフノードのすべての先輩ノード(祖先ノードとも呼ばれる)をユーザが好むポジティブサンプルとして特定し得る。相応的には、コンピューティングデバイス120は、ポジティブサンプルであるリーフノードのすべての非先輩ノードを、ユーザが関心を持っていないネガティブサンプルとして特定し得る。言い換えれば、そのような設計では、ユーザがあるリーフノードに関心を持っている場合、コンピューティングデバイス120は、当該ユーザが当該リーフノードのすべての先輩ノードに関心を持っていると仮定し、そのような仮定は、ほとんどの場合に合理的である。このようにして、コンピューティングデバイス120は、合理的な仮定に従って、リコールモデル130をトレーニングするためのより多くのポジティブサンプルを取得し得る。以下、
図5を参照して、そのような実施例をさらに説明する。
【0062】
図5は、本開示の実施例によるリコールモデル130をトレーニングするためのポジティブサンプルを特定する例示的な過程500のフローチャートを示す。いくつかの実施例において、例示的な過程500は、例示的な環境100におけるコンピューティングデバイス120によって実現され、例えば、コンピューティングデバイス120のプロセッサもしくは処理ユニットによって、またはコンピューティングデバイス120の様々な機能モジュールによって実現され得る。他の実施例では、例示的な過程500は、例示的な環境100から独立したコンピューティングデバイスによって実現されてもよく、または例示的な環境100における他のユニットもしくはモジュールによって実現されてもよい。説明の便宜上、
図1を参照して、例示的な過程500を説明する。
【0063】
まず、例示的な過程500に係るユーザと例示的な過程200に係るユーザとは、同一のユーザでなくてもよいので、説明の正確性のために、下記、例示的な過程200に言及されるユーザを第1のユーザと称し、例示的な過程500に係るユーザを第2のユーザと称する。しかし、第1のユーザ及び第2のユーザを使用して例示的な過程200及び例示的な過程500におけるユーザをそれぞれ説明するが、場合によって、第1のユーザ及び第2のユーザは、同一のユーザであってもよい。
【0064】
ブロック510で、コンピューティングデバイス120は、第2のユーザの履歴ユーザデータに基づいて、ツリー構造140で第2のユーザに好まれるリーフノードを特定することができる。例えば、第2のユーザの履歴ユーザデータが、当該第2のユーザが、ツリー構造140内のあるリーフノード(例えば、オブジェクトセット112内のあるオブジェクト)について、明示的なフィードバック、暗示的なフィードバック、両方の組み合わせ、またはユーザの嗜好を体現し得る任意の他の情報を提供したことを示す場合、当該リーフノードは、第2のユーザに好まれるリーフノードとして特定され得る。いくつかの実施例では、第2のユーザの明示的なフィードバックは、オブジェクトに関するスコア評価、レベル評価、サムアップ 等を含むことができる。第2のユーザの暗示的なフィードバックは、ブラウジング、クリック、ショッピングカートに加入、転送などを含むことができる。もちろん、本開示の実施例は、ここに挙げた嗜好指示方式に限定されない。より一般的には、コンピューティングデバイス120は、任意の適切な方式で履歴ユーザデータから第2のユーザに好まれるリーフノードを特定することができる。
【0065】
ブロック520において、コンピューティングデバイス120は、ツリー構造140における、第2のユーザに好まれるリーフノードの先輩ノードを特定して、第1のノードセットとすることができる。例えば、
図1に示されるツリー構造140の例示を参照すると、第2のユーザに好まれるリーフノードは140-12であると仮定される。この仮定の場合、コンピューティングデバイス120は、ツリー構造140におけるリーフノード140-12の先輩ノードがノード140-6、140-3および140-1であると特定し得る。したがって、ツリー構造140の当該例示において、コンピューティングデバイス120は、第1のノードセットがノード140-6、140-3および140-1であると特定し得る。
【0066】
ブロック530において、コンピューティングデバイス120は、第1のノードセットに基づいて、リコールモデル130をトレーニングするためのポジティブサンプルを特定し得る。上述したように、いくつかの実施例では、コンピューティングデバイス120は、第2のユーザに好まれるリーフノードおよび第1のノードセットを、リコールモデル130をトレーニングするためのポジティブサンプルとして直接に特定することができる。言い換えれば、第2のユーザがあるリーフノードに関心を持つ場合、コンピューティングデバイス120は、当該第2のユーザが当該リーフノードのすべての先輩ノードに関心を持つと仮定する。このようにして、コンピューティングデバイス120は、合理的な仮定に従って、リコールモデル130をトレーニングするためのより多くのポジティブサンプルを取得することができる。上記の例示を継続して使用すると、第2のユーザがリーフノード140-12に関心を持つ場合、コンピューティングデバイス120は、リーフノード140-12及び第1のノードセット140-6、140-3および140-1を、リコールモデル130をトレーニングするためのポジティブサンプルとして特定し得る。
【0067】
しかしながら、ユーザが関心を持っているリーフノードのすべての先輩ノードを、リコールモデル130をトレーニングするためのポジティブサンプルとして特定する場合、そのようなトレーニング目標は、実際には、後のリコールステップにおけるリコールモデル130の使用方式(例えば、ビームサーチ)と一致しない。このような不一致により、リコールモデル130が「悪くに学び」となり、リコールモデル130のリコール正確性に影響を及ぼすことがある。したがって、いくつかの実施例において、トレーニングされたリコールモデル130のリコール結果をさらに最適化するために、コンピューティングデバイス120は、上記で特定された第1のノードセットにさらに選択して、第1のノードセットのサブセットを、リコールモデル130をトレーニングするためのポジティブサンプルとして特定することができる。
【0068】
例えば、リコールモデル130のトレーニング過程を使用過程とより一致させるために、コンピューティングデバイス120は、リコールモデル130のトレーニング段階におけるポジティブサンプルの選択方式を、リコールモデル130の使用段階におけるツリー構造140の各層に嗜好ノードセットを特定するビームサーチ方式と一致させ、第1のノードセットからポジティブサンプルをより最適化的に選択することができる。このように、リコールモデル130のトレーニング過程におけるトレーニング目標と、使用過程におけるオブジェクト検索目標とを統一することができるので、リコールモデル130のリコール正確性をさらに向上させることができる。以下、
図6を参照して、そのような実施例を説明する。
【0069】
図6は、本開示の実施例による2つのノードセットの共通集合に基づいてポジティブサンプルを特定する例示的な過程600のフローチャートを示す。いくつかの実施例において、例示的な過程600は、例示的な環境100におけるコンピューティングデバイス120によって実現され、例えば、コンピューティングデバイス120のプロセッサもしくは処理ユニットによって、またはコンピューティングデバイス120の様々な機能モジュールによって実現され得る。他の実施例では、例示的な過程600は、例示的な環境100から独立したコンピューティングデバイスによって実現されてもよく、または例示的な環境100における他のユニットもしくはモジュールによって実現されてもよい。説明の便宜上、
図1を参照して、例示的な過程600を説明する。
【0070】
ブロック610において、コンピューティングデバイス120は、第2のユーザの履歴ユーザデータおよびリコールモデル130の分類器150に基づいて、ツリー構造140の最上位階層以下の複数の階層に対応する複数の階層ノードサブセットを特定することができ、各階層ノードサブセットは、対応階層において確率ランキングが上位である複数のノードを含む。すなわち、第2のユーザの履歴ユーザデータおよび分類器150に基づいて、コンピューティングデバイス120は、リコールモデル130がリコールステップに用いられる際のビームサーチ方式を使用し、ツリー構造140の各階層で確率大きさランキングが上位であるノードを特定し得る。いくつかの実施例において、各階層に特定される確率ランキングが上位であるノードの数は、予め特定されることができ、後の使用過程におけるリコールモデル130が階層ごとに保持されるノードの数と一致することができる。
【0071】
上記の具体例を継続して用いると、
図1に示すツリー構造140において、コンピューティングデバイス120が、階層ごとに確率ランキングが上位である2つのノードを特定すると仮定する。また、第2のユーザの履歴ユーザデータ及び分類器150に基づいて、コンピューティングデバイス120により第2の階層で特定された確率ランキングが上位であるノードは140-2及び140-3であり、第3の階層で特定された確率ランキングが上位であるノードは140-5及び140-7であるとさらに仮定する。なお、ツリー構造140の最下位階層のリーフノードが好まれるか否かは、ユーザ履歴データから直接的に特定できるので正確であり、トレーニング段階で用いたビームサーチは、ツリー構造140の最下位階層まで行う必要はない。また、ツリー構造140の最上位階層はルートノード140-1のみを含むので、コンピューティングデバイス120は、ルートノード140-1がユーザによって好まれることを常に仮定してもよい。したがって、ここでのビームサーチもツリー構造140の最上位階層に対して実行される必要がない。
【0072】
ブロック620において、コンピューティングデバイス120は、複数の階層のノードのサブセットの和集合に基づいて、第2のノードセットを特定し得る。例えば、上記の具体的な例示では、コンピューティングデバイス120は、複数の階層のノードのサブセットの和集合をノード140-2、140-3、140-5及び140-7、即ち第2のノードセットとして特定することができる。ブロック630において、コンピューティングデバイス120は、第1のノードセットと第2のノードセットとの共通集合に基づいて、リコールモデル130をトレーニングするためのポジティブサンプルを取得し得る。例えば、上記の具体的な例示において、第1のノードセットは、ノード140-6、140-3及び140-1であり、第2のノードセットは、ノード140-2、140-3、140-5及び140-7である。したがって、コンピューティングデバイス120は、両方の共通集合がノード140-3であると特定し得る。さらに、上記で説明したように、コンピューティングデバイス120は、ルートノード140-1およびリーフ子ノード140-12をポジティブサンプルとして特定し得る。すなわち、この具体的な例示について、コンピューティングデバイス120によって最終的に特定されたポジティブサンプルは、ノード140-12、140-3および140-1である。このように、
図5に示される例示的な過程500と比較して、コンピューティングデバイス120は、トレーニング段階のビームサーチによって検索されていないノード140-6をポジティブサンプルとすることを避け、リコールモデル130のトレーニング段階のトレーニング目標と使用段階のオブジェクト検索目標とを一致させ、リコールモデル130に対するトレーニング過程をさらに最適化することができる。
【0073】
いくつかの実施例では、リコールモデル130はまた、ストリーミングトレーニングをサポートし、リコールモデル130のモデルパラメータ(たとえば、ツリー構造パラメータ132)を動的に調整して、リコールモデル130の適用場面を拡張することができる。たとえば、リコールモデル130のストリーミングトレーニングは、ツリー構造140の追加更新および全体更新を含み得る。本明細書で使用される、ツリー構造140の追加更新は、リコールモデル130のトレーニング過程に、コンピューティングデバイス120がツリー構造140に新規リーフノードを追加し得ることを意味する。例示として、ツリー構造140の追加更新は、所定の周期(例えば、1時間)で行われる。また、ツリー構造140の全体更新は、所定の全体更新周期(例えば、1日)でコンピューティングデバイス120が推薦に利用可能な全てのオブジェクトに基づいて新規ツリー構造140を再構築することを意味し、これは、推薦に利用可能なオブジェクトがリコールモデル130のトレーニング過程に時間とともに変化し得るからである。例えば、リコールモデル130をトレーニングするためのトレーニングデータに、ツリー構造140がインデックス付けされていない新規オブジェクトが引き込まれる可能性があり、ツリー構造140内の既存のオブジェクトが削除される可能性がある。以下では、まず、ツリー構造140の追加更新過程について説明し、
図7を参照して追加更新の一例について説明する。次に、ツリー構造140の全体更新過程について説明し、
図8を参照して全体更新の一例について説明する。
【0074】
ツリー構造140を追加更新するために、コンピューティングデバイス120は、リコールモデル130をトレーニングするためのトレーニングデータにオブジェクトセット112に属さない新規オブジェクトが含まれるかどうかを特定することができる。いくつかの実施例では、コンピューティングデバイス120が、トレーニングデータに、オブジェクトセット112に含まれない新規オブジェクトが存在することを検出した場合、コンピューティングデバイス120は、新規オブジェクトの存在を直接に特定し、ツリー構造140の追加更新を直ちに実行し、すなわち、新規オブジェクトをツリー構造140に挿入することができる。代替的に、コンピューティングデバイス120は、ツリー構造140の追加更新を直ちに実行するのではなく、新規オブジェクトの存在を記録し、次いで、所定の周期で当該周期内に検出された1つまたは複数の新規オブジェクトをツリー構造140に挿入することができる。
【0075】
他の実施例では、ツリー構造140のリーフノードに対応するオブジェクトが他のユーザにも好まれるはずであること、すなわち、推薦に利用可能なオブジェクトが広範囲の関心オブジェクトであることが考慮される。この考慮に基づいて、新規オブジェクトが一つのユーザによって一度好まれればツリー構造140に挿入されると、コンピューティングデバイス120のメモリ空間および計算量が浪費される可能性がある。したがって、ユーザに好まれる回数が少ない新規オブジェクトをツリー構造140に追加することを回避するために、且つ、ツリー構造140の相対的安定性を維持するために、コンピューティングデバイス120は、一定の条件を満たす新規オブジェクトに対して、ツリー構造140の追加更新を実行し得る。例えば、コンピューティングデバイス120がトレーニングデータに基づいて予定時間長(以下、第1の予定時間長とも呼ぶ)にある新規オブジェクトを好むユーザの数が閾値数よりも大きいと特定する場合、コンピューティングデバイス120はトレーニングデータに新規オブジェクトが含まれると特定することができる。いくつかの実施例において、ここでの第1の予定時間長は、上述のツリー構造140の追加更新の周期に等しくてもよい。すなわち、追加更新の周期内に、ある新規オブジェクトが一定数以上のユーザによって好まれる場合、コンピューティングデバイス120は、この新規オブジェクトがツリー構造140に追加される価値があると考え得る。
【0076】
上記のどのような方法でトレーニングデータに新規オブジェクトが存在するかを特定することにかかわらず、コンピューティングデバイス120が、リコールモデル130をトレーニングするためのトレーニングデータにオブジェクトセット112に属さない新規オブジェクトが含まれると特定する場合、コンピューティングデバイス120は、新規オブジェクトに対応する新規リーフノードを作成することができる。そして、コンピューティングデバイス120は、作成された新規リーフノードをツリー構造140に挿入して、ツリー構造140に対する追加更新を実現することができる。コンピューティングデバイス120は、様々な適切な方法を使用して、新規リーフノードをツリー構造140に挿入することができる。いくつかの実施例において、新規リーフノードは、ツリー構造140の最下位階層の一層上の階層のある非リーフノードの下にランダムに挿入し、当該非リーフノードの子ノードとすることができる。すなわち、コンピューティングデバイス120は、ツリー構造140の最下位階層の一層上の階層の各非リーフノードから、目標である非リームノードをランダムに特定し得る。そして、コンピューティングデバイス120は、新規リーフノードを、目標である非リーフノードの子ノードとしてツリー構造140に追加し得る。このようにして、コンピューティングデバイス120の、新規リーフノードを挿入するためのコンピューティングリソースは、最小限にされ得る。他の実施例では、コンピューティングデバイス120は、ビームサーチの方法に基づいて、ツリー構造140に新規リーフノードが挿入されるのに最も適している場所を特定することができる。以下、
図7を参照して、かかる実施例について説明する。
【0077】
図7は、本開示の実施例による、新規リーフノードをツリー構造140に追加する例示的な過程700のフローチャートを示す。いくつかの実施例において、例示過程700は、例示的な環境100におけるコンピューティングデバイス120によって実現され、例えばコンピューティングデバイス120のプロセッサもしくは処理ユニットによって、またはコンピューティングデバイス120の様々な機能モジュールによって実現され得る。他の実施例では、例示的な過程700は、例示的な環境100から独立したコンピューティングデバイスによって実現されてもよく、または例示的な環境100内の他のユニットもしくはモジュールによって実現されてもよい。説明の便宜上、
図1を参照して例示的な過程700を説明する。
【0078】
ブロック710では、コンピューティングデバイス120は、トレーニングデータから新規オブジェクトに関係付けられるユーザデータを取得することができる。例えば、ユーザがリコールモデル130をトレーニングするトレーニングデータは、通常、「オブジェクト-ユーザデータ」のペアの形態で収集される。したがって、コンピューティングデバイス120がトレーニングデータのあるオブジェクトが新規オブジェクトであると特定した場合、コンピューティングデバイス120は、当該新規オブジェクトに対応するユーザデータ、すなわち、当該新規オブジェクトに関心のあるユーザの関連ユーザデータを同時に取得することができる。いくつかの実施例では、ある新規オブジェクトに関係付けられる複数のユーザデータが存在する可能性がある。換言すれば、トレーニングデータにおいて、コンピューティングデバイス120は、新規オブジェクトが複数のユーザの複数のユーザデータに関連し、すなわち、この新規オブジェクトが複数のユーザによって好まれまたは関心があると特定する可能性がある。以下、新規オブジェクトに関連する複数のユーザデータが、複数の候補ユーザデータとも呼ばれる。
【0079】
このような実施例において、複数の候補ユーザデータから新規オブジェクトに関連するユーザデータを取得するために、コンピューティングデバイス120は、複数の候補ユーザデータからランダムに選択された1つの候補ユーザデータに基づいてユーザデータを特定し得る。このようにして、ユーザデータを特定するためのコンピューティングデバイス120のコンピューティングリソースは最小化され得る。追加的に又は代替的に、コンピューティングデバイス120は、複数の候補ユーザデータから特定された平均候補ユーザデータに基づいて(例えば、ユーザ画像として)ユーザデータを特定し得る。このようにして、コンピューティングデバイス120は、新規オブジェクトを好むユーザのユーザデータをより統合して全面的に特定し得る。追加的に又は代替的に、コンピューティングデバイス120は、複数の候補ユーザデータのうち重み付けが最も高いユーザ(例えば、推薦システムを使用する時間が最も長いユーザ、コアユーザ等)に対応する候補ユーザデータに基づいて、ユーザデータを特定し得る。このように、コンピューティングデバイス120は、ユーザデータを特定するためのコンピューティングリソースとユーザデータの正確性との間のバランスを取り得る。
【0080】
ブロック720において、コンピューティングデバイス120は、得られたユーザデータおよびリコールモデル130の分類器150に基づいて、ツリー構造140において好まれる確率が最大である目標リーフノードを特定することができる。例えば、新規オブジェクトに関連するユーザデータにより、コンピューティングデバイス120は、分類器150を使用して、最下位階層においてユーザに好まれる確率が最大であるリーフノードを目標リーフノードとして特定するまで、ビームサーチの方法で、ツリー構造140の最上位階層から下位に向けて階層ごとに、各階層において好まれるノードサブセットを特定することができる。ブロック730では、コンピューティングデバイス120は、新規リーフノードを目標リーフノードの兄弟ノードとしてツリー構造140に追加し得る。すなわち、コンピューティングデバイス120は、最初に、目標リーフノードの親ノードを特定し、次いで、新規リーフノードを当該親ノードの子ノードとしてツリー構造140に挿入し得る。このように、新規リーフノードをツリー構造140内の最も適した位置に追加することにより、ツリー構造パラメータ132を最適化することができ、すなわち、リコールモデル130のモデルパラメータを最適化することができ、それによって、リコールモデル130のトレーニング効果およびリコール結果を改善することができる。
【0081】
上述したように、追加更新に加えて、コンピューティングデバイス120は、ツリー構造140に対して全体更新を実行し得る。例えば、ツリー構造140の全体更新は、所定の周期(例えば、1日)で実行され得る。いくつかの実施例において、ツリー構造140の全体更新は、リコールモデル130に基づく推薦システムの通常動作に影響を与えないように、リコールモデル130の業務量が少ない夜間に実行することができる。さらに、いくつかの実施例において、ツリー構造140の全体更新の過程は、オブジェクトセット112内のオブジェクトが「ログアウト」メカニズムを導入することができる。すなわち、予定の条件を満足する場合、オブジェクトセット112のオブジェクトがオブジェクトセット112から除外されて新規オブジェクトセット112を取得し、新規オブジェクトセット112に基づいて新規ツリー構造140が構築される。このようにして、コンピューティングデバイス120は、リコールモデル130のツリー構造140がユーザに関心があり得るオブジェクトにインデックス付けされることを確保し、それによって、リコールモデル130のリコール結果を最適化することができる。さらに、ツリー構造140を処理するためのコンピューティングデバイス120のコンピューティングリソースまたはストレージリソースなども節約され得る。以下、
図8を参照して、かかる実施例について説明する。
【0082】
図8は、本開示の実施例による、オブジェクトセット112からオブジェクトを除外した後に新規リコールモデル130を構築する例示的な過程800のフローチャートを示す。いくつかの実施例において、例示的な過程800は、例示的な環境100内のコンピューティングデバイス120によって実現され、例えば、コンピューティングデバイス120のプロセッサもしくは処理ユニットによって、またはコンピューティングデバイス120の様々な機能モジュールによって実現され得る。他の実施例では、例示的な過程800は、例示的な環境100から独立したコンピューティングデバイスによって実現されてもよく、または例示的な環境100内の他のユニットもしくはモジュールによって実現されてもよい。説明の便宜上、
図1を参照して例示的な過程800を説明する。
【0083】
ブロック810では、コンピューティングデバイス120は、オブジェクトセット112のあるオブジェクトが予定時間長内に好まれる回数が閾値回数未満であるか否かを特定することができる。以下、上記第1の予定時間長と区別するために、ここでの予定時間長を第2の予定時間長と呼ぶ。いくつかの実施例において、第2の予定時間長は、ツリー構造140の全体更新の周期と一致し、例えば、両方とも1日であることができる。他の実施例において、第2の予定時間長は、ツリー構造140の全体更新の周期とは異なるように設定されてもよい。例えば、第2の予定時間長は、ツリー構造140の全体更新周期の倍数であってもよい。
【0084】
コンピューティングデバイス120が、オブジェクトセット112において予定時間長内に好まれる回数が閾値回数未満であるオブジェクトが存在しないと特定した場合(
図8に図示せず)、オブジェクトセット112内の各オブジェクトが最近ユーザによって依然として好まれることを意味する。この場合、コンピューティングデバイス120は、全体更新を実行する間、オブジェクトセット112内のオブジェクトをそのままにするか、または新規オブジェクトが検出された場合、既存のオブジェクトを除去しなくてオブジェクトセット112に新規オブジェクトのみを追加し得る。
【0085】
一方、コンピューティングデバイス120が、オブジェクトセット112のあるオブジェクトが第2の予定時間長内に好まれる回数が閾値回数未満であると特定すると、当該オブジェクトが最近にユーザに好まれなく、すなわち、ユーザに推薦するのに適さなかったことを意味する。そのような場合、例示的な過程800は、ブロック820に進むことができる。ブロック820で、コンピューティングデバイス120は、オブジェクトセット112から当該オブジェクトを除去し、新規オブジェクトセット112を取得してブロック830を実行することができる。
【0086】
ブロック830において、コンピューティングデバイス120は、新規オブジェクトセット112に基づいて新規ツリー構造140の新規ツリー構造パラメータ132を取得することができる。例えば、新規オブジェクトセット112に基づいて新規ツリー構造パラメータ132を取得する過程は、オブジェクトセット112からツリー構造140およびツリー構造パラメータ132を取得するという上記の過程と類似することができ、ここでは贅言しない。ブロック840において、コンピューティングデバイス120は、新規ツリー構造パラメータ132に基づいて新規リコールモデル130を構築し得る。例えば、新規ツリー構造パラメータ132に基づいて新規リコールモデル130を構築する過程は、ツリー構造パラメータ132からリコールモデル130を構築する過程と類似することができ、ここでは贅言しない。例示的な過程800によって、コンピューティングデバイス120は、リコールモデル130のツリー構造140がユーザが関心のある可能性のあるオブジェクトにインデックス付けされることを確保し、それによって、リコールモデル130のリコール結果を最適化することができる。さらに、ユーザがもはや関心を有しない、または関心が低いノードがツリー構造140から除外されるので、ツリー構造140のノード数を減らすことができ、これにより、ツリー構造140を処理するためのコンピューティングデバイス120のコンピューティングリソースまたはストレージリソースなどを節約することができる。
【0087】
図9は、本開示の実施例による情報推薦方法の例示的な過程900のフローチャートを示す。例示的な過程900は、推薦システムが上述のリコールモデル130を使用してユーザに推薦されるオブジェクトを特定することを説明している。いくつかの実施例において、例示的な過程900は、例示的な環境100におけるコンピューティングデバイス120によって実現され、例えば、コンピューティングデバイス120のプロセッサもしくは処理ユニットによって、またはコンピューティングデバイス120の様々な機能モジュールによって実現され得る。他の実施例では、例示的な過程900は、例示的な環境100から独立したコンピューティングデバイスによって実現されてもよく、または例示的な環境100内の他のユニットもしくはモジュールによって実現されてもよい。説明の便宜上、
図1を参照して、例示的な過程900を説明する。
【0088】
ブロック910では、コンピューティングデバイス120は、リコールモデル130に基づいて、推薦システム内の推薦に利用可能なオブジェクトセット112からユーザに対する候補オブジェクトセット114を特定する。なお、例示的な過程900において、コンピューティングデバイス120によって使用されるリコールモデル130は、本明細書で説明する本開示の任意の実施例の方法によって構築される。具体的には、いくつかの実施例において、コンピューティングデバイス120は、ユーザに関連するユーザデータ(例えば、ユーザ挙動データ、ユーザプロファイルデータ、ユーザコンテキストデータ等)をリコールモデル130に入力することができる。入力されたユーザデータ、ツリー構造パラメータ132及び分類器パラメータ134に基づいて、リコールモデル130は、分類器150を用いて、ツリー構造140の最上位階層から下位に向けて階層ごとに、各階層のユーザに好まれる確率ランキングが上位である嗜好ノードセットを予測して、候補オブジェクトセット114を最終的に特定することができる。
【0089】
ブロック920で、コンピューティングデバイス120は、候補オブジェクトセット114からユーザに推薦される1つ以上のオブジェクト116を特定する。例えば、コンピューティングデバイス120は、任意の既知のまたは将来開発される選択方法(例えば、ランキング方法)を採用して、候補オブジェクトセット114から、ユーザに推薦するためのオブジェクト116を更に選択することができる。例示的な過程900において、本開示の実施例に従って構築されたリコールモデル130は、最適化されたトレーニング過程及び使用過程を実現し、改善されたリコール結果を取得することができるので、推薦システムの推薦性能を向上させることができる。
【0090】
本開示の実施例の技術的利点および有益な技術的効果をさらに説明するために、以下、まず、
図10を参照して、ツリー構造がリコールモデルから分離された場合のオフライントレーニング段階およびオンラインリコール段階の例示的な過程を説明する。次に、
図11を参照して、本開示の実施例におけるリコールモデル(ツリー構造パラメータおよび分離器パラメータを含んでモデルパラメータとする)のオフライントレーニング段階およびオンラインリコール段階の例示的な過程を説明する。次に、本開示の実施例によって提供されるリコールモデルが、ツリー構造がリコールモデルから分離される場合に比べて達成され得る技術的利点および有益な技術的効果がより詳細に説明される。
【0091】
図10は、ツリー構造がリコールモデルと分離されている場合の、オフライントレーニング段階およびオンラインリコール段階の例示的な過程1000のブロック図を示す。最初に説明すべきことは、例示的な過程1000の技術案では、インデックスツリー1030は、リコールモデル1040の一部ではない。逆に、インデックスツリー1030およびリコールモデル1040は、たとえば、異なるコンピューティングデバイスによって実現され、異なる形態で存在するなど、2つの互いに独立した部分である。したがって、
図10に示されるように、当該技術案の例示的な過程1000のオフライントレーニング段階において、オリジナルオブジェクトベクトル表現1005が「ベクトルに基づいてツリーにクラスタリングする」というステップ1010を実行することができ、すなわち、オブジェクトのオリジナルオブジェクトベクトル表現1005に基づいて、初期のインデックスツリー1030をクラスタリングすることができる。
【0092】
次に、最初のインデックスツリー1030は、「新規ツリーに基づいてサンプルを構築する」というステップ1015を実行するために用いられることができる。すなわち、例示的な過程1000の技術案では、インデックスツリー1030がリコールモデル1040から独立しているので、推薦システムから直接に収集された「オブジェクト-ユーザデータ」ペアは、リコールモデル1040をトレーニングするために直接使用することができない。代わりに、「オブジェクト-ユーザデータ」ペアは、まず、インデックスツリー1030の処理によって行われ、そして、リコールモデル1040をトレーニングするためのサンプル(たとえば、インデックスツリー1030に基づいてポジティブサンプルおよびネガティブサンプルを特定する)データを特定することができる。次に、インデックスツリー1030に基づいて構築されたサンプルは、「サンプルに基づいてモデルをトレーニングする」というステップ1020を実行するために用いられることができ、すなわち、サンプルデータに基づいてリコールモデル1040をトレーニングすることができる。その後、トレーニングされたリコールモデル1040は、「オブジェクトベクトル表現を更新する」というステップ1025を実行するために用いられることができ、すなわち、トレーニングされたリコールモデル1040は、オブジェクトのオブジェクトベクトル表現を更新して、更新されたオブジェクトベクトル表現を取得することができる。
【0093】
次に、更新されたオブジェクトベクトル表現は、「ベクトルに基づいてツリーにクラスタリングする」というステップ1010を実行するために再び使用されることができ、すなわち、オブジェクトの更新されたオブジェクトベクトル表現は、再びクラスタリングされ新規インデックスツリー1030を形成することができる。
図10に示されるように、オフライントレーニング段階において、インデックスツリー1030およびリコールモデル1040の両方が所定のトレーニング結果を取得するまで、インデックスツリー1030およびリコールモデル1040を更新して最適化するために、上述のステップ1010、ステップ1015、ステップ1020およびステップ1025は、周期的に実行されることができる。最後に、例示的な過程1000のオフライントレーニング段階は、インデックスツリー1030を生成し、リコールモデル1040を生成し得る。
【0094】
図10でさらに示されるように、例示的な過程1000のオンラインリコール段階では、オンラインデータ1035は、インデックスツリー1030の構造にしたがって、各階層におけるノード(またはオブジェクト)に対するユーザの好みを階層ごとに予測することができる。この過程では、ユーザがあるノード(またはオブジェクト)に関心を持つかどうかを予測するために、インデックスツリー1030は、リコールモデル1040とインテラクティブする必要がある。例えば、インデックスツリー1030は、インデックス構造に基づいて、現在の階層におけるどのノードがユーザによって好まれるか否かを特定する必要があるかを、リコールモデル1040に提供することができ、リコールモデル1040は、ユーザが現在の階層におけるどのノードを好むかの予測結果を、インデックスツリー1030に提供する必要がある。インデックスツリー1030とリコールモデル1040との複数のインテラクティブ後、インデックスツリー1030は、最下位階層におけるユーザによって好まれるノードを特定し、リコール結果1045を特定することができる。
【0095】
これによれば、本開示の実施例と比較して、例示的な過程1000の技術案は、いくつかの欠点を有する。第1の欠点は、インデックスツリー1030が、追加のインデックスデータ構造として、リコールモデル1040のモデルトレーニングに必要なトレーニングデータを生成するが、ネットワークトレーニングに直接関与しないことである。これは、様々な不利益をもたらす。第1の結果として、トレーニングデータがインデックスツリー1030に基づいて事前に生成される必要があり、すなわち、インデックスツリー1030が事前に生成されてリコールモデル1040のトレーニングを開始することであり、トレーニング速度が大幅に低減される。第2の結果として、トレーニングデータが指定されたインデックスツリー1030の構造に結合され、インデックスツリー1030のツリー構造が変更されると、オリジナルトレーニングデータが無意味となり、トレーニングデータの多重化が不可能となり、さらに、大量のメモリ空間を占有することである。第3の結果として、インデックスツリー1030のツリー構造の更新効率が制限され、インデックスツリー1030のツリー構造は、ネットワークの勾配に基づく逆更新に参加することができず、より柔軟なツリーインデックス更新ポリシーを適用することができない。
【0096】
第2の欠点は、インデックスツリー1030のツリー構造が固定されており、アルゴリズムが、所定の1つのインデックスツリー1030に基づいて最適なオブジェクト検索ポリシーを学習することのみが可能であり、オブジェクトが頻繁に追加および削除される必要があるリコール場面、たとえば、ショートビデオ、情報ストリームのリコール場面などを解決することができないことである。すなわち、インデックスツリー1030は、ストリーム的に追加や全体更新をサポートしていないため、適用場面が限定され、例えば、文字やビデオのリコール場面など、大量の追加アイテムがあるリコール場面に不適合である。第3の欠点は、オブジェクト側の特徴を用いてインデックスツリー1030を構成するとき、事前トレーニングモデルが提供する事前トレーニング情報を用いず、トレーニング全体が2つの過程に分けられ、すなわち、インデックスツリー1030を構成することと、インデックスツリー1030に基づくディープラーニングモデルのトレーニングを交互に行う必要があることである。インデックスツリー1030のランダムな初期化により、インデックスツリー1030およびリコールモデル1040の全体的な収束速度が遅く、複数回の反復による限りよい効果が達成される。
【0097】
図11は、本開示の実施例による、リコールモデル1130のオフライントレーニング段階およびオンラインリコール段階の例示的な過程1100のブロック図を示す。
図10に示されたインデックスツリー1030がリコールモデル1040から分離されているのに対して、
図11に示された本開示の実施例のリコールモデル1130は、ツリー構造および分類器に基づいて、全体的なリコールモデル1130を形成し、したがって、リコールモデル1130のパラメータは、ツリー構造パラメータ1132および分類器パラメータ1134の両方を含むことができる。なお、
図11に示すリコールモデル1130、ツリー構造パラメータ1132および分類器パラメータ1134は、それぞれ
図1のリコールモデル130、ツリー構造パラメータ132および分類器パラメータ134の例示と考えることができる。
【0098】
図11に示すように、オフライントレーニング段階では、オリジナルオブジェクトベクトル表現1105は、最初に、事前トレーニングモデル1110の処理を受けて、クラスタリング的に最適化された最適化オブジェクトベクトルセット(
図11には図示せず)を生成することができる。そして、最適化オブジェクトベクトルセットは、初期のツリー構造パラメータ1132を取得するために使用され得る。なお、
図11に示すオリジナルオブジェクトベクトル表現1105及び事前トレーニングモデル1110は、それぞれ
図4のオリジナルオブジェクトベクトル表現410及び事前トレーニングモデル420の例示と考えることができる。さらに、どのように最適化オブジェクトベクトルセットを使用して初期のツリー構造パラメータ1132を取得することは、
図3に関して上述した例示的な過程300を参照することができ、ここでは贅言しない。
【0099】
一方、リコールモデル1130の分類器に用いられる具体的な機械学習(例えば、ディープラーニング)モデルに応じて、分類器パラメータ1134は、機械学習モデルに対応する方式で初期化され得る。次に、初期リコールモデル1130は、初期ツリー構造パラメータ1132および初期分類器パラメータ1134に基づいて構築することができる。次いで、トレーニングデータ1115は、リコールモデル1130をトレーニングすることができ、これにより、リコールモデル1130のモデルパラメータ(ツリー構造パラメータ1132および分類パラメータ1134を含む)を調整または最適化することができる。いくつかの実施例では、トレーニングデータ1115は、例えば、オブジェクトに関するユーザの嗜好及び関心の履歴データ、並びにユーザの履歴ユーザデータを含むことができ、例えば、「オブジェクト-ユーザデータ」ペアの形態で、推薦モデルの履歴オンラインデータから取得されることができる。
【0100】
なお、本開示の実施例のリコールモデル1130は、ツリー構造と分類器に基づいて全体を形成するリコールモデルであるので、最初にツリー構造の処理を受けてリコールモデル1130をトレーニングするためのトレーニングデータを形成する必要がなく、トレーニングデータ1115がリコールモデル1130に直接に入力してリコールモデル1130をトレーニングすることができる。すなわち、推薦システム内のオリジナルデータは、リコールモデル1130のモデルトレーニングに直接参加することができ、したがって、データとモデルとの結合度を低減し、また、関連作業量を低減する。例えば、リコールモデル1130に入力された後、
図5および
図6に関して上述した例示的な過程500および600によって、トレーニングデータ1115が処理されて、リコールモデル1130をトレーニングするためのポジティブサンプルを取得する。
【0101】
これは、
図10に示されたインデックスツリー1030がリコールモデル1040から分離されている場合とは対照的である。
図10の場面では、インデックスツリー1030とリコールモデル1040とが分離されて独立しているので、推薦モデルの履歴オンラインデータは、リコールモデル1040をトレーニングするために直接使用されることはできず、まずインデックスツリー1030の処理(たとえば、トレーニングデータのポジティブサンプルおよびネガティブサンプルを特定することなど)を受けて、次にリコールモデル1040をトレーニングするために使用されることが必要である。また、
図10のインデックスツリー1030は、リコールモデル1040から独立しているため、機械学習ネットワークの逆伝搬更新に参加することができない。これに対し、本開示の実施例のリコールモデル1130のツリー構造及び分類器モデルは、ネットワークトレーニングに同時に参加することができ、これにより、リコールモデルの効果をさらに向上させることができる。換言すれば、リコールモデル1130のツリー構造は、リコールモデル1130の一部として、ネットワークトレーニングにも参加し、リコール効果を向上させるとともに、トレーニング速度を向上させる。
【0102】
エンジニアリングの具体的な実現において、推薦システムのリコールステップには、ユーザとオブジェクトとの間の1回の類似性計算によって消費される時間T、オブジェクトのリコールを完了するのに必要な計算の回数N、および推薦システムの性能限界Boundという3つの要因があり、一般的にはT×N≦Boundを必要とする。実際、ユーザごとの毎回のリコールに対して、先進なディープラーニングモデルを適用すると、消耗時間Tが増大してしまう。また、全てのオブジェクトについての情報検索を行うと、計算回数Nが増加してしまう。この2つの乗算は、システム性能上限Boundに到達する可能性があり、これはエンジニアリングの観点から許容することができない。これらの考察に基づいて、本開示の実施例のリコールモデル1130のトレーニングは、エンジニアリング上、以下の操作に従って実施することができる。
【0103】
まず、オリジナルオブジェクトベクトル表現1105は、事前トレーニングモデル1110によって、初期最適化オブジェクトベクトルセットを取得し、これに基づいてクラスタリングして初期ツリー構造を取得することができる。また、ツリー構造を全体更新する頻度を設置することができ、例えば、1日に1回などにすることができる。そして、分類器モデルパラメータおよびツリー構造パラメータは、オフラインデータによって反復的に更新され得る。具体的には、以下のステップを含むことができる。ステップa):ミニバッチ(MiniBatch)ごとのトレーニングデータに対して、リコールモデル1130の内部でツリー構造を構築する各階層のトレーニングデータをサンプリングして、分類器の各階層の分類器ユニットのパラメータトレーニングを行う。ステップb):トレーニングデータのうちツリー構造に存在しない追加オブジェクトセットを取得し、ツリー構造に追加更新する。ステップc):トレーニングされた回数が全体ツリー構築のトリガ条件を満たす(例えば、1日のトレーニング回数が24回に達する)場合、ツリー構造のすべてのリーフノードのパラメータが保存され(オブジェクトのログアウトメカニズムを含み、ホットのオブジェクトまたはリーフノードのみが保存され得る)、最適化オブジェクトベクトルセットのクラスタリングツリー構築の方法を多重化し、更新されたツリー構造を再生成する。ステップd):ステップa)を繰り返し実行する。
【0104】
リコールモデル1130のトレーニングが完了した後、オンラインリコール段階に進むことができる。具体的には、推薦システムのオンラインデータ1120は、トレーニングされたリコールモデル1130に直接に入力し、リコール結果1125を計算して取得することができる。例えば、オンラインデータ1120は、例えばユーザの挙動データ、ユーザのプロファイルデータ、ユーザのコンテキストデータなどのユーザのユーザデータであることができる。いくつかの実施例では、オンラインデータ1120、ツリー構造パラメータ1132によって表されるツリー構造、及び分類器パラメータ1134によって表される分類器に基づいて、リコールモデル1130は、ツリー構造の最上位階層から下位に向けて階層ごとに、ユーザに好まれるノードを特定し、最終的に、ツリー構造の最下位階層でユーザに好まれる複数のリーフノード(すなわち、好まれるオブジェクト)を特定し、リコール結果1125を特定することができる。なお、
図11に示すリコール結果1125は、
図1の候補オブジェクトセット114の例示と考えることができる。例示的な過程1000の技術案では、インデックスツリー1030とリコールモデル1040は、依然として、互いに独立した2つの部分であり、インデックスツリー1030は、追加のデータ構造として存在する必要がある。これに対し、本開示の実施例のツリー構造は、リコールモデル1130に含まれるので、リコールモデル1130のみを配布すればよく、作業量が少なくなるだけでなく、オブジェクト検索の速度が速くなる。
【0105】
これによれば、本開示の実施例は、オブジェクトをインデックスするためのツリー構造とユーザに好まれるオブジェクトを予測するための分類器の両方に対する連帯トレーニングを可能にし、推薦システムに適用可能なリコールモデル及びその構築方法を提案する。本開示のいくつかの設計では、まず分類器モデルとツリーオブジェクト検索構造とを一体化してトレーニングすることができる。具体的には、一回前のトレーニングの分類器モデルパラメータとツリー構造オブジェクト検索構造に基づいて、次回のトレーニングデータを構成してディープラーニングネットワークの更新を行うことができ、これにより、分類器モデルトレーニングとツリー構造オブジェクト検索目標との一致性を実現することができ、リコールモデル1130のリコール効果を向上させることができる。さらに、いくつかの実施例では、リコールモデル1130のツリー構造は、追加および全体更新をサポートすることができ、したがって、リコールモデル1130の適用場面を拡張する。また、いくつかの実施例において、リコールモデル1130は、事前トレーニングモデルによって提供された事前トレーニング情報に基づいて、ツリー構造オブジェクト検索構造の効率的な初期化を実現し、検索ツリーの構造をより合理的にし、収束速度を早め、リコールモデル1130のリコール効果を向上させる。
【0106】
さらに、いくつかの実施例では、リコールモデル1130はまた、ツリー構造の各層におけるポジティブサンプルのサンプリング方式を改善し得る。例えば、ユーザに好まれるオブジェクトからルートノードへの経路における各ノードがその階層のポジティブサンプルとして階層分類器のトレーニングに参加することと区別し、リコールモデル1130は、その上で、ビームサーチの操作をさらに追加して、ツリー構造における上方への戻り経路内のビームサーチの階層候補セットに存在しないポジティブサンプルをフィルタリングし、これによって、モデルトレーニングの目標とオブジェクト検索の目標とを統合して、リコールの正確率をさらに向上させることができる。したがって、ツリー構造の各階層のトレーニングデータの構築方法は、より合理的であり、オブジェクト検索最適化の目標と一致し、リコールモデル1130の全体的な効果を向上させる。さらに、いくつかの実施例では、リコールモデル1130は、ストリーミングトレーニングもサポートすることができる。たとえば、リコールモデル1130は、ツリー構造の追加更新および前記更新の頻度をモデルのスーパーパラメータとして得る。リコールモデル1130のストリーミングトレーニングおよびツリー構造の動的調整設計は、リコールモデル1130の適用場面を大幅に拡張することができる。エンジニアリングの観点から、トレーニングサンプルのサンプリングロジックはオブジェクト検索ロジックを既に含むので、オンラインオブジェクト検索ロジックを構築する作業量を除去し、オンラインリコールおよびオフライントレーニングが同じリコールモデル1130を使用することができ、したがって、推薦システムを配備するために必要な作業量が低減される。
【0107】
また、推薦システムの技術分野において、ベクトル類似性に基づくリコール検索方法(二重塔構造及びディープ構造化語彙モデルDSSMとも呼ばれる)の従来技術案も存在する。この技術案の核心思想は、ユーザ側のベクトルとオブジェクト側のベクトルを共通次元の語彙空間にマッピングし、ユーザベクトルとオブジェクトベクトルとの間のコサイン類似度を最大化することによって、暗黙的な語彙モデルをトレーニングして取得し、オブジェクト検索の目的を達成することである。しかしながら、この従来の技術案には、以下のような欠点がある。第1に、プレハブネットワークの変更にかかわらず、最終的には、コサイン類似度を計算するために、ユーザベクトルおよびオブジェクトベクトルを同じ空間にマッピングすることが必要であり、これはモデルの設計を制限する。第2に、オンラインでリアルタイムにオブジェクト検索を行うためには、オブジェクト側のベクトルを予め計算し、高速に検索できるデータ構造を構築する必要がある。検索構造の構築の主な目標は、検索性能であり、一般的な方法は、オブジェクトベクトルをクラスタリングすることである。ユーザベクトルは、まず、各大分類のベクトル平均値と、類似度を比較し、さらに、最も類似するクラスにおける各オブジェクトと、類似度を計算し、これにより、オブジェクトのライブラリ全体の検索による計算量を減らす。しかし、検索構造のインデックス構造段階とモデルトレーニング段階との最適化目標が一致せず、リコールの効果に影響を及ぼす。
【0108】
したがって、従来のベクトル類似性に基づくリコール検索方法と比較して、本開示の実施例のリコールモデル1130は、以下の態様において技術的利点および有益な技術的効果を奏する。まず、従来の二重塔構造は、最後のステップでコサイン類似度を用いて、ユーザ側とオブジェクト側のベクトルを同じ次元にマッピングしてメトリックする必要がある。これに対し、本開示の実施例のリコールモデル1130は、リコールステップにおいて任意の先進なディープラーニングモデルを担持することができ、ユーザ側とオブジェクト側が複雑なモデルを使用してインテラクティブしてリコール結果を取得することをサポートし得る。また、従来の二重塔構造では、リコールモデルを得た後に、オブジェクト側のベクトルを事前に計算して検索構造を構築する必要があり、オンラインリコール部分に余分な作業が必要であった。これに対し、本開示の実施例のリコールモデル1130のオフライントレーニングは、オンラインリコールと同じモデルを使用し、検索構造体を構築する必要がない。第3に、従来の二重塔構造の検索構造の構築目標は、オンライン計算回数を減らすことであり、オフライントレーニングの効果の最適化目標と一致しないため、最終的なリコール効果に影響を与える。これに対し、本開示の実施例のリコールモデル1130のツリー構造検索構造は、分類器モデルと暗黙的に連帯トレーニングされ、グローバルに最適なリコールモデル1130を取得する。
【0109】
図12は、本開示の実施例による例示的な情報処理装置1200のブロック図を示す。いくつかの実施例では、装置1200は、
図1のコンピューティングデバイス120に含まれてもよく、又はコンピューティングデバイス120として実現されてもよい。他の実施例では、装置1200は、
図1に示されていないコンピューティングデバイスに含まれてもよく、または、このコンピューティングデバイスとして実現されてもよい。
【0110】
図12に示すように、装置1200は、ツリー構造パラメータ取得モジュール1210、分類器パラメータ取得モジュール1220、リコールモデル構築モジュール1230を有する。ツリー構造パラメータ取得モジュール1210は、推薦に利用可能なオブジェクトセットをインデックスするためのツリー構造のツリー構造パラメータを取得するように配置される。分類器パラメータ取得モジュール1220は、分類器の分類器パラメータを取得するように配置され、分類器は、ツリー構造の最上位階層から下位に向けて階層ごとに、各階層のユーザに好まれる確率ランキングが上位である嗜好ノードセットを予測し、1層の嗜好ノードセットは、その上位層の嗜好ノードセットに基づいて特定される。リコールモデル構築モジュール1230は、オブジェクトセットにユーザについての候補オブジェクトセットを特定するように、ツリー構造パラメータ及び分類器パラメータに基づいてリコールモデルを構築するように配置されている。
【0111】
いくつかの実施例では、ツリー構造パラメータ取得モジュール1210は、オブジェクトセットをベクトル化して、オリジナルオブジェクトベクトルセットを生成するように配置されるオリジナルオブジェクトベクトルセット生成モジュールと、事前トレーニングモデルおよびオリジナルオブジェクトベクトルセットに基づいて、クラスタリング特性に関して最適化された最適化オブジェクトベクトルセットを生成するように配置される最適化オブジェクトベクトルセット生成モジュールと、最適化オブジェクトベクトルセットに対してクラスタリングを実行してツリー構造を構築し、ツリー構造パラメータを特定するように配置されるクラスタリングモジュールと、を含む。
【0112】
いくつかの実施例では、上記ユーザは第1のユーザであり、装置1200は、第2のユーザの履歴ユーザデータに基づいて、ツリー構造で第2のユーザに好まれるリーフノードを特定するように配置される嗜好リーフノード特定モジュールと、ツリー構造におけるリーフノードの先輩ノードを第1のノードセットとして特定するように配置される第1のノードセット特定モジュールと、第1のノードセットに基づいて、リコールモデルをトレーニングするためのポジティブサンプルを特定するように配置されるポジティブサンプル特定モジュールと、をさらに含む。
【0113】
いくつかの実施例において、ポジティブサンプル特定モジュールは、履歴ユーザデータ及び分類器に基づいて、ツリー構造の最上位階層以下の複数の階層に対応する複数の階層ノードサブセットを特定し、各階層ノードサブセットが対応階層における確率ランキングが上位である複数のノードを含むように配置される階層ノードサブセット特定モジュールと、複数の階層ノードサブセットの和集合に基づいて、第2のノードセットを特定するように配置される第2のノードセット特定モジュールと、第1のノードセットと第2のノードセットとの共通集合に基づいて、ポジティブサンプルを取得するように配置されるポジティブサンプル取得モジュールと、を含む。
【0114】
いくつかの実施例において、装置1200は、リコールモデルをトレーニングするためのトレーニングデータにオブジェクトセットに属さない新規オブジェクトが含まれるとの特定に従って、新規オブジェクトに対応する新規リーフノードを作成するように配置される新規リーフノード作成モジュールと、新規リーフノードをツリー構造に挿入するように配置される挿入モジュールと、をさらに含む。
【0115】
いくつかの実施例では、挿入モジュールは、トレーニングデータにおいて、新規オブジェクトに関連するユーザデータを取得するように配置されるユーザデータ取得モジュールと、ユーザデータ及び分類器に基づいて、ツリー構造において好まれる確率が最大である目標リーフノードを特定するように配置される目標リーフノード特定モジュールと、新規リーフ子ノードを目標リーフノードの兄弟ノードとしてツリー構造に追加するように配置される兄弟ノード追加モジュールと、を含む。
【0116】
いくつかの実施例において、ユーザデータ取得モジュールは、新規オブジェクトが複数のユーザの複数の候補ユーザデータに関連するとの特定に従って、複数の候補ユーザデータからランダムに選択された1つの候補ユーザデータと、複数の候補ユーザデータに基づいて特定される平均候補ユーザデータと、複数の候補ユーザデータにおける重みが最も大きいユーザに対応する候補ユーザデータと、という少なくとも1つに基づいてユーザデータを特定するように配置されるユーザデータ特定モジュールを含む。
【0117】
いくつかの実施例において、挿入モジュールは、ツリー構造の最下位階層の一層上の階層における非リーフノードから、目標非リーフノードをランダムに特定するように配置される目標非リーフノード特定モジュールと、新規リーフのノードを、目標非リーフノードの子ノードとしてツリー構造に追加するように配置される子ノード追加モジュールと、を含む。
【0118】
いくつかの実施例では、装置1200は、第1の予定時間長内に新規オブジェクトを好むユーザ数が閾値数より多いとの特定に従って、トレーニングデータに新規オブジェクトが含まれると特定するように配置される新規オブジェクト特定モジュール、をさらに含む。
【0119】
いくつかの実施例において、装置1200は、第2の予定時間長内にオブジェクトセットにおけるオブジェクトが好まれる回数が閾値回数未満であるとの特定に従って、オブジェクトセットからオブジェクトを除去して新規オブジェクトセットを取得するように配置される新規オブジェクトセット取得モジュールと、新規オブジェクトセットに基づいて新規ツリー構造の新規ツリー構造パラメータを取得するように配置される新規ツリー構造パラメータ取得モジュールと、新規ツリー構造パラメータに基づいて新規リコールモデルを構築するように配置される新規リコールモデル構築モジュールと、をさらに含む。
【0120】
いくつかの実施例において、分類器は、ツリー構造の最上位階層以下の複数の階層に対応する複数の分類器ユニットを含み、複数の分類器ユニットの各々は、対応階層におけるノードがユーザによって好まれる確率を予測するために使用される。
【0121】
図13は、本開示の実施例による例示情報推薦装置1300の一例を示すブロック図である。いくつかの実施例では、装置1300は、
図1のコンピューティングデバイス120に含まれてもよく、またはコンピューティングデバイス120として実現されてもよい。他の実施例では、装置1300は、
図1に示されないコンピューティング装置に含まれてもよく、またはそのようなコンピューティング装置として実現されてもよい。
【0122】
図13に示されるように、装置1300は、リコールモジュール1310及び推薦オブジェクト特定モジュール1320を含む。リコールモジュール1310は、本開示の任意の実施例に従って構築されたリコールモデルに基づいて、推薦システムにおける推薦に利用可能なオブジェクトセットから、ユーザに対する候補オブジェクトセットを特定するように配置される。推薦オブジェクト特定モジュール1320は、候補オブジェクト集合からユーザに推薦する少なくとも1つのオブジェクトを特定するように配置される。
【0123】
本開示の実施例によれば、本開示は、電子デバイス、可読記憶媒体、およびコンピュータプログラム製品をさらに提供している。
【0124】
図14は、本開示の実施例を実現するための例示的電子デバイス1400の概略ブロック図を示す。電子デバイスは、例えば、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなどの様々な形態のデジタルコンピュータである。電子デバイスは、例えば、パーソナルデジタルプロセッシング、携帯電話、スマートフォン、ウェアラブルデバイス、及び他の類似なコンピューティングデバイス等、様々な形態のモバイルデバイスであってもよい。本明細書に示される部品、それらの接続及び関係、並びにそれらの機能は、単なる例示であり、本明細書に記載及び/又は請求される本開示の実施を限定しない。
【0125】
図14に示されるように、デバイス1400は、リードオンリーメモリ(ROM)1402に記憶されたコンピュータプログラム、又は記憶ユニット1408からランダムアクセスメモリ(RAM)1403にロードされたコンピュータプログラムに従って様々な適切な動作及び処理を実行することができるコンピューティングユニット1401を含む。RAM1403には、デバイス1400の操作に必要な各種プログラムやデータを記憶するもできる。コンピューティングユニット1401、ROM1402、及びRAM1403は、バス1404を介して相互に接続されている。入出力(I/O)インタフェース1405もバス1404に接続されている。
【0126】
デバイス1400における複数の部品は、I/Oインタフェース1405に接続されており、例えばキーボード、マウスなどの入力ユニット1406と、例えば各種のディスプレイ、スピーカなどの出力ユニット1407と、例えば磁気ディスク、光ディスクなどの記憶ユニット1408と、例えばネットワークカード、モデム、無線通信送受信機などの通信ユニット1409と、を含む。通信ユニット1409は、デバイス1400が、例えばインターネットなどのコンピュータネットワーク及び/又は様々な電気通信ネットワークを介して、他の機器と情報/データを交換することを可能にする。
【0127】
コンピューティングユニット1401は、処理および計算能力を有する様々な汎用および/または専用処理コンポーネントであることができる。コンピューティングユニット1401のいくつかの例示は、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、様々な専用人工知能(AI)コンピューティングチップ、様々な機械学習モデルアルゴリズムを実行するコンピューティングユニット、デジタルシグナルプロセッサ(DSP)、および任意の適切なプロセッサ、コントローラ、マイクロコントローラなどを含むが、これらに限定されない。コンピューティングユニット1401は、例えば方法200、300、500、600、700、800および900のような上記に記載の各方法及び処理を実行する。例えば、いくつかの実施例において、方法200、300、500、600、700、800および900のいずれかは、コンピュータソフトウェアプログラムとして実現され、例えば記憶ユニット1408などの機械可読媒体に有形に組み込まれる。いくつかの実施例において、コンピュータプログラムの一部又は全部は、ROM1402及び/又は通信ユニット1409を介してデバイス1400にロード及び/又はインストールされてよい。コンピュータプログラムがRAM1403にロードされ、コンピューティングユニット1401によって実行されると、上記に記載の方法200、300、500、600、700、800および900のいずれかの1つまたは複数のステップを実行することができる。あるいは、他の実施例では、コンピューティングユニット1401は、他の任意の適切な方式で(例えば、ファームウェアを用いて)方法200、300、500、600、700、800および900のいずれかを実行するように配置されることができる。
【0128】
本明細書で説明したシステムおよび技術の様々な実施態様は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、負荷プログラマブル論理デバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せで実現され得る。これらの様々な実施形態は、1つまたは複数のコンピュータプログラム内で実施されることを含み、当該1つまたは複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行および/または解釈され、当該プログラマブルプロセッサは、専用または汎用のプログラマブルプロセッサであり、記憶システム、少なくとも1つの入力装置、および少なくとも1つの出力装置からデータおよび命令を受信し、データおよび命令を当該記憶システム、少なくとも1つの入力装置、および少なくとも1つの出力装置に送信する。
【0129】
本開示の方法を実施するためのプログラムコードは、1つまたは複数のプログラミング言語の任意の組合せで書かれてもよい。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能なデータ処理装置のプロセッサ又はコントローラに提供されてもよく、これにより、プログラムコードがプロセッサ又はコントローラによって実行されると、フローチャート及び/又はブロック図において特定された機能/動作が実施される。プログラムコードは、完全にマシンで、部分的にマシンで、独立型ソフトウェアパッケージとして部分的にマシンで、部分的にリモートマシンで、または完全にリモートマシンもしくはサーバで実行され得る。
【0130】
本開示の文脈において、機械可読媒体は、命令実行システム、装置、またはデバイスによる使用のための、またはそれらと関連して使用されるプログラムを含み、または記憶することができる有形媒体であり得る。機械可読媒体は、機械可読信号媒体または機械可読記憶媒体であり得る。機械可読媒体は、電子的、磁気的、光学的、電磁的、赤外線、または半導体システム、装置、もしくはデバイス、または上記の任意の好適な組み合わせを含み得るが、これらに限定されない。機械可読記憶媒体のより具体的な例示は、1つ以上の配線に基づく電気接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、光ファイバ、コンパクトディスクリードオンリメモリ(CD-ROM)、光記憶装置、磁気記憶装置、又はこれらの任意の適切な組み合わせを含む。
【0131】
ユーザとのインテラクティブを提供するために、コンピュータで本明細書に記載されるシステムおよび技術を実施することができ、当該コンピュータは、ユーザに情報を表示するための表示装置(たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、ユーザがコンピュータに入力を提供し得るキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)とを有する。他の種類の装置は、ユーザとのインテラクティブを提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形態(例えば、音声入力、発話入力または触覚入力)でユーザからの入力を受信することができる。
【0132】
本明細書で説明されるシステムおよび技術を、バックエンド部品を含むコンピューティングシステム(例えば、データサーバとして)、またはミドルウェア部品を含むコンピューティングシステム(例えば、アプリケーションサーバ)、またはフロントエンド部品を含むコンピューティングシステム(例えば、ユーザが本明細書で説明されるシステムおよび技術の実施形態とインテラクティブすることができるグラフィカルユーザインターフェースまたはウェブブラウザを有するユーザコンピュータ)、またはそのようなバックエンド部品、ミドルウェア部品、もしくはフロントエンド部品の任意の組合せを含むコンピューティングシステムにおいて実施され得る。任意の形態または媒体のデジタルデータ通信(例えば、通信ネットワーク)を介してシステムの部品を互いに接続することができる。通信ネットワークの例示は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、およびインターネットを含む。
【0133】
コンピュータシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に、互いから離れており、通常、通信ネットワークを介してインテラクティブしている。相応的なコンピュータで運行し、互いにクライアント-サーバ関係を有するコンピュータプログラムによって、クライアントとサーバの関係を生成する。サーバは、クラウドサーバー、すなわちクラウドコンピューティングサーバ又はクラウドホストとも称され、従来の物理ホスト及びVPSサービス(「Virtual Private Server」又は単に「VPS」)における管理の困難さが大きく、サービスの拡張性が弱いという欠点を解決するために、クラウドコンピューティングサービスのアーキテクチャにおけるホスト製品の1つであってもよい。サーバは、分散システムのサーバ、または、ブロックチェーンを結合したサーバであってもよい。
【0134】
なお、上記に示された様々な形態のフローを用いて、ステップを並べ替え、追加、または削除することができることを理解されたい。例えば、本開示に記載された各ステップは、並列的に実行されてもよく、順番に実行されてもよく、異なる順番で実行されてもよく、本開示において開示された技術案の所望の結果を達成することができる限り、ここで制限されない。
【0135】
上記の具体的な実施形態は、本開示の保護範囲を限定するものではない。当業者であれば、設計の要求及び他の要因に応じて、各種の補正、組合、サブ組合および切り替えを行うことができることは明らかであろう。本開示の思想及び原則における任意の補正、均等物及び改善は、本開示の保護範囲に含まれるべきである。