(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024084704
(43)【公開日】2024-06-25
(54)【発明の名称】マルチモーダルフィーチャに基づいた検索結果を提供する方法、コンピュータ装置、およびコンピュータプログラム
(51)【国際特許分類】
G06F 16/908 20190101AFI20240618BHJP
【FI】
G06F16/908
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023201168
(22)【出願日】2023-11-29
(31)【優先権主張番号】10-2022-0174089
(32)【優先日】2022-12-13
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2023-0043095
(32)【優先日】2023-03-31
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チェ・スングォン
(72)【発明者】
【氏名】イ・ジウン
(72)【発明者】
【氏名】キム・サンヨン
(72)【発明者】
【氏名】イ・ドンジュ
(72)【発明者】
【氏名】チョン・ジス
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA10
5B175FA01
5B175HA01
(57)【要約】
【課題】マルチモーダルフィーチャに基づいた検索結果を提供する方法、コンピュータ装置、およびコンピュータプログラムを提供する。
【解決手段】マルチモーダルフィーチャに基づいた検索結果を提供する方法は、マルチモーダル埋め込み空間に対してユーザクエリによる属性間のベクトル演算を実行する段階、および前記ベクトル演算によって取得した埋め込みベクトルを基準にして前記ユーザクエリに対応する検索結果を提供する段階を含む。
【選択図】
図6
【特許請求の範囲】
【請求項1】
コンピュータ装置で実行されるマルチモーダル検索方法であって、
前記コンピュータ装置は、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、
前記マルチモーダル検索方法は、
前記少なくとも1つのプロセッサにより、マルチモーダル埋め込み空間に対してユーザクエリによる属性間のベクトル演算を実行する段階、
前記少なくとも1つのプロセッサにより、前記ベクトル演算によって取得した埋め込みベクトルを基準にして前記ユーザクエリに対応する検索結果を提供する段階
を含む、マルチモーダル検索方法。
【請求項2】
前記実行する段階は、
前記マルチモーダル埋め込み空間の非線形な誤差を考慮した補正関数を利用して前記ベクトル演算を実行すること
を特徴とする、請求項1に記載のマルチモーダル検索方法。
【請求項3】
前記実行する段階は、
前記マルチモーダル埋め込み空間上の各属性ベクトルを利用して、前記マルチモーダル埋め込み空間の非線形的な誤差を考慮した補正関数を推定する段階、および
前記補正関数を利用した近似計算によって前記ユーザクエリに含まれる属性間のベクトル演算を実行する段階
を含む、請求項1に記載のマルチモーダル検索方法。
【請求項4】
前記マルチモーダル埋め込み空間は、非線形性を有するデルタ空間(delta space)と線形表現が可能な仮想のベクトル空間に分解可能なベクトル空間として定義されること
を特徴とする、請求項1に記載のマルチモーダル検索方法です。
【請求項5】
前記実行する段階は、
前記マルチモーダル埋め込み空間を線形表現が可能なベクトル空間に変換する段階、および
前記ベクトル空間で、前記ユーザクエリに含まれる属性間のベクトル演算を実行する段階
を含む、請求項1に記載のマルチモーダル検索方法。
【請求項6】
前記提供する段階は、
前記ベクトル空間を前記マルチモーダル埋め込み空間に復元し、前記マルチモーダル埋め込み空間上で、前記ベクトル演算によって取得した埋め込みベクトルと一定の距離以内のベクトルを有する少なくとも1つの商品を前記検索結果として提供すること
を特徴とする、請求項5に記載のマルチモーダル検索方法。
【請求項7】
前記実行する段階は、
前記ユーザクエリとして入力された少なくとも1つのイメージと少なくとも1つのテキストに対応するベクトル演算を実行すること
を特徴とする、請求項1に記載のマルチモーダル検索方法。
【請求項8】
前記実行する段階は、
記ユーザクエリに含まれる属性のうちの特定の属性に該当するベクトルの反対方向ベクトルとの組み合わせによって前記特定の属性を除くベクトル演算を実行すること
を特徴とする、請求項1に記載のマルチモーダル検索方法。
【請求項9】
前記実行する段階は、
前記ユーザクエリに含まれる属性のうちの特定の属性に該当するベクトルに対するスカラー積によって前記特定の属性の強度を調節するベクトル演算を実行すること
を特徴とする、請求項1に記載のマルチモーダル検索方法です。
【請求項10】
前記実行する段階は、
同じ座標系を使用するテキストベクトル空間とイメージベクトル空間の間でクロスモーダル特徴ベクトル操作(cross-modal feature vector manipulation)を実行する段階
を含む、請求項1に記載のマルチモーダル検索方法。
【請求項11】
請求項1~10のうちのいずれか一項に記載のマルチモーダル検索方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項12】
コンピュータ装置であって、
メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
マルチモーダル埋め込み空間に対してユーザクエリによる属性間のベクトル演算を実行する過程、および
前記ベクトル演算によって取得した埋め込みベクトルを基準にして前記ユーザクエリに対応する検索結果を提供する過程
を処理する、コンピュータ装置。
【請求項13】
前記少なくとも1つのプロセッサは、
前記マルチモーダル埋め込み空間の非線形な誤差を考慮した補正関数を利用して前記ベクトル演算を実行すること
を特徴とする、請求項12に記載のコンピュータ装置。
【請求項14】
前記少なくとも1つのプロセッサは、
前記マルチモーダル埋め込み空間上の各属性ベクトルを利用して、前記マルチモーダル埋め込み空間の非線形的な誤差を考慮した補正関数を推定し、
前記補正関数を利用した近似計算によって前記ユーザクエリに含まれる属性間のベクトル演算を実行すること
を特徴とする、請求項12に記載のコンピュータ装置。
【請求項15】
前記マルチモーダル埋め込み空間は、非線形性を有するデルタ空間と線形表現が可能な仮想のベクトル空間に分解可能なベクトル空間として定義されること
を特徴とする、請求項12に記載のコンピュータ装置。
【請求項16】
前記少なくとも1つのプロセッサは、
前記マルチモーダル埋め込み空間を線形表現が可能なベクトル空間に変換し、
前記ベクトル空間で、前記ユーザクエリに含まれる属性間のベクトル演算を実行すること
を特徴とする、請求項12に記載のコンピュータ装置。
【請求項17】
前記少なくとも1つのプロセッサは、
前記ベクトル空間を前記マルチモーダル埋め込み空間に復元し、前記マルチモーダル埋め込み空間上で、前記ベクトル演算によって取得した埋め込みベクトルと一定の距離以内のベクトルを有する少なくとも1つの商品を前記検索結果として提供すること
を特徴とする、請求項16に記載のコンピュータ装置。
【請求項18】
前記少なくとも1つのプロセッサは、
前記ユーザクエリとして入力された少なくとも1つのイメージと少なくとも1つのテキストに対応するベクトル演算を実行すること
を特徴とする、請求項12に記載のコンピュータ装置。
【請求項19】
前記少なくとも1つのプロセッサは、
前記ユーザクエリに含まれる属性のうちの特定の属性に該当するベクトルの反対方向ベクトルとの組み合わせによって前記特定の属性を除くベクトル演算を実行すること
を特徴とする、請求項12に記載のコンピュータ装置。
【請求項20】
前記少なくとも1つのプロセッサは、
前記ユーザクエリに含まれる属性のうちの特定の属性に該当するベクトルに対するスカラー積によって前記特定の属性の強度を調節するベクトル演算を実行すること
を特徴とする、請求項12に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、ユーザの意図に適した検索結果を提供する技術に関する。
【背景技術】
【0002】
検索エンジン(search engine)とは、インターネット上で資料を簡単に探し出してくれるソフトウェアまたはウェブサイトを意味する。このような検索エンジンは、ユーザが入力した検索語を使ってデータベースを検索し、これに対する検索結果を抽出してユーザに提供する。
【0003】
このような検索結果を提供する技術の一例として、特許文献1(公開日2004年9月16日)には、検索語に対する検索結果リストを検索エンジンで生成する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】韓国公開特許第10-2004-0079604号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
マルチモーダル(multimodal)入力を同時に理解し、ユーザの意図に適した検索結果を提供できるようにする。
【課題を解決するための手段】
【0006】
コンピュータ装置で実行されるマルチモーダル検索方法であって、前記コンピュータ装置は、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記マルチモーダル検索方法は、前記少なくとも1つのプロセッサにより、マルチモーダル埋め込み空間に対してユーザクエリによる属性間のベクトル演算を実行する段階、および前記少なくとも1つのプロセッサにより、前記ベクトル演算によって取得した埋め込みベクトルを基準にして前記ユーザクエリに対応する検索結果を提供する段階を含む、マルチモーダル検索方法を提供する。
【0007】
一側面によると、前記実行段階は、前記マルチモーダル埋め込み空間の非線形的な誤差を考慮した補正関数を利用して前記ベクトル演算を実行してよい。
【0008】
他の側面によると、前記実行する段階は、前記マルチモーダル埋め込み空間上の各属性ベクトルを利用して前記マルチモーダル埋め込み空間の非線形的な誤差を考慮した補正関数を推定する段階、および前記補正関数を利用した近似計算によって前記ユーザクエリに含まれる属性間のベクトル演算を実行する段階を含んでよい。
【0009】
また他の側面によると、前記マルチモーダル埋め込み空間は、非線形性を有するデルタ空間(delta space)と線形表現が可能な仮想のベクトル空間に分解可能なベクトル空間として定義されてよい。
【0010】
また他の側面によると、前記実行する段階は、前記マルチモーダル埋め込み空間を線形表現が可能なベクトル空間に変換する段階、および前記ベクトル空間で前記ユーザクエリに含まれる属性間のベクトル演算を実行する段階を含んでよい。
【0011】
また他の側面によると、前記提供する段階は、前記ベクトル空間を前記マルチモーダル埋め込み空間に復元し、前記マルチモーダル埋め込み空間上で、前記ベクトル演算によって取得した埋め込みベクトルと一定の距離以内のベクトルを有する少なくとも1つの商品を前記検索結果として提供してよい。
【0012】
また他の側面によると、前記実行する段階は、前記ユーザクエリとして入力された少なくとも1つのイメージと少なくとも1つのテキストに対応するベクトル演算を実行してよい。
【0013】
また他の側面によると、前記実行する段階は、前記ユーザクエリに含まれる属性のうちの特定の属性に該当するベクトルと反対方向ベクトルとの組み合わせによって前記特定の属性を除くベクトル演算を実行してよい。
【0014】
また他の側面によると、前記実行する段階は、前記ユーザクエリに含まれる属性のうちの特定の属性に対応するベクトルに対するスカラー積によって前記特定の属性の強度を調節するベクトル演算を実行してよい。
【0015】
さらに他の側面によると、前記実行する段階は、同じ座標系を使用するテキストベクトル空間とイメージベクトル空間の間でクロスモーダル特徴ベクトル操作(cross-modal feature vector manipulation)を実行する段階を含んでよい。
【0016】
前記マルチモーダル検索方法をコンピュータに実行させるためのコンピュータプログラムを提供する。
【0017】
コンピュータ装置であって、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、マルチモーダル埋め込み空間に対してユーザクエリによる属性間のベクトル演算を実行する過程、および前記ベクトル演算によって取得した埋め込みベクトルを基準にして前記ユーザクエリに対応する検索結果を提供する過程を処理する、コンピュータ装置を提供する。
【発明の効果】
【0018】
本発明の実施形態によると、イメージとテキストを組み合わせたマルチモーダル入力を同時に理解することでユーザの意図により適した商品を見つけ出すことができ、検索品質を高めることができる。
【図面の簡単な説明】
【0019】
【
図1】本発明の一実施形態における、ネットワーク環境の一例を示した図である。
【
図2】本発明の一実施形態における、コンピュータ装置の一例を示したブロック図である。
【
図3】本発明の一実施形態における、コンピュータ装置が実行することができる商品検索方法の一例を示したフローチャートである。
【
図4】本発明の一実施形態における、マルチモーダルベクトル空間を説明するための例示図である。
【
図5】本発明の一実施形態における、ベクトル演算の限界を説明するための例示図である。
【
図6】本発明の一実施形態における、ベクトル演算が可能な仮想のベクトル空間を説明するための例示図である。
【
図7】本発明の一実施形態における、誤差補正によるベクトル演算結果を説明するための例示図である。
【
図8】本発明の一実施形態における、属性を除くベクトル演算を説明するための例示図である。
【
図9】本発明の一実施形態における、属性の強度を調節するベクトル演算を説明するための例示図である。
【
図10】本発明の一実施形態における、ベクトルのもつれ(vector entanglement)に基づくベクトル演算を説明するための例示図である。
【
図11】本発明の一実施形態における、ベクトルのもつれ(vector entanglement)に基づくベクトル演算を説明するための例示図である。
【
図12】本発明の一実施形態における、テキスト基盤のクエリの組み合わせの一例を示した図である。
【
図13】本発明の一実施形態における、イメージとテキストのクエリの組み合わせの一例を示した図である。
【
図14】本発明の一実施形態における、検索画面の一例を示した図である。
【
図15】本発明の一実施形態における、検索画面の一例を示した図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態について、添付の図面を参照しながら詳しく説明する。
【0021】
本発明の実施形態は、ユーザの意図に適した検索結果を提供する技術に関する。
【0022】
また、本発明の実施形態は、イメージとテキストを組み合わせて、ユーザが所望する属性の商品を効率的に検索できるようにする技術に関する。
【0023】
また、本発明の実施形態は、商品に対するマルチモーダル埋め込み(embedding)を線形表現が可能な仮想空間に変形(transform)し、ベクトル演算によって検索結果を見つけ出せるようにする技術に関する。
【0024】
また、本発明の実施形態は、ベクトル演算が可能な仮想空間を使用して属性を自由に加えたり除いたりして、多様な組み合わせの検索を提供できるようにする技術に関する。
【0025】
本明細書で具体的に開示される事項を含む実施形態は、商品に対するマルチモーダル埋め込みを線形的に表現した仮想空間を利用して商品の属性を自由に加えたり除いたりするベクトル演算を実行することにより、ユーザの意図に適した商品を迅速かつ容易に検索することができる。
【0026】
本発明の実施形態に係る商品検索システムは、少なくとも1つのコンピュータ装置によって実現されてよく、本発明の実施形態に係る商品検索方法は、商品検索システムに含まれる少なくとも1つのコンピュータ装置によって実行されてよい。このとき、コンピュータ装置には、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されたコンピュータプログラムの制御にしたがって本発明の実施形態に係る商品検索方法を実行してよい。上述のコンピュータプログラムは、コンピュータ装置と結合して商品検索方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。
【0027】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような
図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が
図1のように限定されることはない。また、
図1のネットワーク環境は、本実施形態に適用可能な環境のうちの一例を説明したものに過ぎず、本実施形態に適用可能な環境が
図1のネットワーク環境に限定されることはない。
【0028】
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、
図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
【0029】
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0030】
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、商品検索サービスなど)を提供するシステムであってよい。
【0031】
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、
図2に示したコンピュータ装置200によって実現されてよい。
【0032】
このようなコンピュータ装置200は、
図2に示すように、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
【0033】
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【0034】
通信インタフェース230は、ネットワーク170を介してコンピュータ装置200が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
【0035】
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマウスなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置で構成されてもよい。
【0036】
また、他の実施形態において、コンピュータ装置200は、
図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、データベースなどのような他の構成要素をさらに含んでもよい。
【0037】
以下では、マルチモーダルフィーチャに基づいた検索結果を提供する方法および装置の具体的な実施形態について説明する。
【0038】
図3は、本発明の一実施形態における、コンピュータ装置が実行することができる商品検索方法の一例を示したフローチャートである。
【0039】
本実施形態に係る商品検索方法は、上述したコンピュータ装置200によって実行されてよい。この場合、コンピュータ装置200のプロセッサ220は、メモリ210に含まれるオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が
図3の商品検索方法に含まれる段階310~330を実行するようにコンピュータ装置200を制御してよい。
【0040】
図3を参照すると、段階310で、プロセッサ220は、商品に対するマルチモーダル埋め込みがマッピングされたベクトル空間(以下、「マルチモーダルベクトル空間」とする)を、線形表現が可能なベクトル空間(以下、「VAV(virtual attribute vector)空間」とする)に変換してよい。
【0041】
図4に示すように、マルチモーダルベクトル空間400は、同じ商品のイメージとテキストを同じベクトル空間にマッピングする。マルチモーダルベクトル空間400は、同一の座標系を有する互いに異なる2つのベクトル空間、すなわち、テキストベクトル空間410とイメージベクトル空間420に分解される。
【0042】
一般的に、ディープラーニングモデルは非線形性(non-linearity)を内在しているため、ベクトル空間上の各属性のベクトル和によって見つけ出された商品が、文字列を合わせて生成されたベクトルによって見つけ出された商品と異なる場合がある。例えば、
図5に示すように、「エアマックス97」を示す特徴ベクトルと「水色」を示す特徴ベクトルの和が「水色エアマックス97」に該当する特徴ベクトルとは異なることから、単なるベクトルの和によってユーザが所望する商品を見つけ出すことはできない。
【0043】
一方、一部のディープラーニングモデルでは、特徴ベクトルの大きさが常に一定になるように(例えば、大きさが常に1になるように)正規化(normalize)を必要とする場合がある。本明細書では、説明の便宜上、正規化を行ったこととして示しているが、正規化が必ずしも必要ではない。
【0044】
本実施形態では、マルチモーダルベクトル空間400を、
図6に示すように、異方性(anisotropic)と非線形性を有するデルタ空間(delta space)610と線形表現が可能なVAV空間620に分解してよく、さらに、分解されたデルタ空間610とVAV空間620を再結合してマルチモーダルベクトル空間400として復元してよい。
【0045】
マルチモーダル学習によって学習されたテキストエンコーダ(text encoder)f(x)は、与えられたテキストxをマルチモーダルベクトル空間400にマッピングする関数に該当する。
【0046】
商品の属性をマルチモーダルベクトル空間400にマッピングするときに、線形的に表現可能であれば、[f(エアマックス97水色)=f(エアマックス97)+f(水色)]のように各属性の和で表現することが可能である。
【0047】
しかし、ディープラーニングで扱うベクトルは、非線形な高次元のマルチモーダル空間上のベクトルであるため、各ベクトルの線形の組み合わせによって完全に表現することができない。すなわち、f(エアマックス97水色)≠f(エアマックス97)+f(水色)となる。
【0048】
マルチモーダル埋め込みを任意の空間に変換させる場合、線形的な表現が可能となる。本実施形態では、任意の空間をVAV空間620として定義する。
【0049】
マルチモーダルベクトル空間400上のベクトルは、線形表現が可能なVAV空間620上のベクトルと、そうでないデルタ空間610上のベクトルで表現することができる。
【0050】
【0051】
本発明では、デルタ(δ)を定数エプシロン(epsilon)(ε)に近似可能なVAV空間620を定義してよい。
【0052】
【0053】
したがって、エプシロン(ε)による誤差を補正することにより、埋め込みベクトルを線的に直接に近似して表現することができる。
【0054】
【0055】
再び
図3を参照すると、段階320で、プロセッサ220は、属性間の線形計算が可能なVAV空間620を利用して、ユーザクエリによる属性間のベクトル演算を実行してよい。
【0056】
任意の属性を示すテキストXをマルチモーダルベクトル空間400にマッピングする関数をFとするとき、テキストXの埋め込みをF(X)と表現する。
【0057】
埋め込み空間上のベクトル和が有効であると仮定すると、2つの属性AとBの間にF(A+B)=F(A)+F(B)の関係が成立しなければならないが、非線形性が内在されたベクトル空間ではベクトル和が成立しない[F(A+B)≠F(A)+F(B)]。埋め込み空間上のベクトル和が有効でないため、ベクトル差も成立しない[F(A+B)-F(A)≠F(B)]。
【0058】
本実施形態では、埋め込み空間上のベクトル演算を成立させるための補正関数(Δ)を適用する。
【0059】
F(A+B)=F(A)+F(B)+Δ(θ)
F(A+B)-F(A)=F(B)+Δ(θ)
【0060】
ここで、任意の属性に対するベクトル演算の正解を(ε)と定義する場合、次のような式が成り立つようなる。
【0061】
εA+B=F(A)+F(B)+Δ(θ)
【0062】
ε(A+B)-A=F(A+B)-F(A)+Δ(θ)
【0063】
例えば、特定の属性AとBに該当する補正関数(Δ)は、次のように推定することができる。
【0064】
Δ(θ)=F(A+B)-(F(A)+F(B))
【0065】
ここで、多様な属性ベクトル演算値でのΔ(θ)を算出することができ、平均値を利用してΔ(θ)を近似する
を求めることができ、これを利用してベクトル演算を近似処理することができる。
【0066】
【0067】
【0068】
プロセッサ220は、線形表現が可能なVAV空間620でベクトル演算を実行するが、このとき、補正関数(Δ)を利用した近似計算によって属性間の線形的なベクトル演算を実行することが可能となる。
【0069】
属性間のベクトル演算に対して誤差補正による線形計算が可能であるため、例えば、
図7に示すように、「エアマックス97」を示す特徴ベクトルと「水色」を示す特徴ベクトルの和は、誤差補正によって「水色エアマックス97」に該当する特徴ベクトルに近似するようになる。
【0070】
段階330で、プロセッサ220は、線形的なベクトル演算のためのVAV空間620をマルチモーダルベクトル空間400に復元し、VAV空間620でのベクトル演算によって取得した埋め込みベクトルに基づいてユーザクエリに対応する検索結果を提供してよい。ベクトル演算が可能なVAV空間620では、ベクトル和を用いて複数の属性を結合することもできるし、ベクトル差を用いて特定の属性を除くこともできる。プロセッサ220は、マルチモーダルベクトル空間400上の商品のうち、VAV空間620でのベクトル演算によって取得した埋め込みベクトルと一定の距離以内のベクトルを有する少なくとも1つの商品を検索結果として提供してよい。したがって、本実施形態では、多数の属性に対する埋め込み空間上のベクトル演算(ベクトル和および/またはベクトル差)だけで、ユーザが所望する属性の商品を迅速かつ簡単に検索することができる。
【0071】
図8は、本発明の一実施形態における、属性を除くベクトル演算を説明するための例示図である。
【0072】
図8を参照すると、プロセッサ220は、商品「半袖で、Aラインで、紫色のティアードスタイルのゆったりワンピース」から特定の属性「紫色」を除去しようとする場合、VAV空間620で、この商品を示すベクトル801に属性「紫色」を示すベクトル802の反対方向ベクトル803を合算するベクトル演算によって、属性「紫色」が除かれた商品「半袖で、Aラインで、ティアードスタイルのゆったりワンピース」に該当するベクトル804を取得してよい。ベクトル演算の後、VAV空間620をマルチモーダルベクトル空間400に復元することにより、特徴ベクトル操作(feature vector manipulation)を行ったときと同じ効果を得ることができる。
【0073】
図9は、本発明の一実施形態における、属性の強度を調節するベクトル演算を説明するための例示図である。
【0074】
1つのベクトルは複数の成分に分解されてよい。例えば、スカラー積を利用して特定の属性の強度を調節してよい。すなわち、特定の属性のベクトルに数を掛けるベクトル演算も可能である。
【0075】
図9を参照すると、プロセッサ220は、VAV空間620で、属性「エアマックス97」を示すベクトル901と属性「水色」を示すベクトル902の組み合わせによって「水色エアマックス97」に該当するベクトル903を取得してよい。「空色エアマックス97」よりも濃い空色を検索しようとするユーザの意図が認識された場合、VAV空間620で、属性「空色」を示すベクトル902に対するスカラー積により、属性「空色」の強度が調節された「空色×2 エアマックス97」に該当するベクトル904を取得することができる。
【0076】
図10および
図11は、本発明の一実施形態における、ベクトルのもつれ(vector entanglement)に基づいたベクトル演算を説明するための例示図である。
【0077】
図4を参照しながら説明したように、マルチモーダルベクトル空間400は、テキストベクトル空間410とイメージベクトル空間420に分解されてよい。VAV空間620も同様に、
図10に示すように、テキストVAV空間621とイメージVAV空間622に区分されてよい。テキストVAV空間621とイメージVAV空間622は同じ座標の空間系を使用するため、クロスモーダル特徴ベクトル操作(Cross-modal feature vector manipulation)が可能となる。テキストVAV空間621上の「空色エアマックス97」に該当するテキストベクトルとイメージVAV空間622上の「空色エアマックス97」に該当するイメージベクトルは、同じ座標であってよい。
【0078】
図11を参照すると、プロセッサ220は、クロスモーダル特徴ベクトル操作によって、テキストVAV空間621とイメージVAV空間622の間で属性を変更してよい。一例として、プロセッサ220は、イメージVAV空間622上の特定のイメージベクトルに対してテキストVAV空間621上にマッチングされたテキストベクトルを操作してイメージ属性を変更してよい。例えば、商品「半袖で、Aラインで、紫色のティアードスタイルのゆったりワンピース」において、属性「紫色」の代わりに属性「薄緑色」が含まれる商品を探索しようとするユーザの意図が認識された場合、テキストVAV空間621で、属性間のベクトル演算によって「半袖で、Aラインで、薄緑色のティアードスタイルのゆったりワンピース」に該当するテキストベクトルを探索し、イメージVAV空間622上にマッチングされた「半袖で、Aラインで、薄緑色のティアードスタイルのゆったりワンピース」のイメージベクトルを探索してよい。
【0079】
このように、商品に対するマルチモーダル埋め込みを、VAV空間620上の仮想属性ベクトルとデルタ空間610上の異方性と非線形性を有するベクトルとして定義することで、マルチモーダルベクトル空間400上で正解を探し出すことができる。VAV空間620を用いて線形的なベクトル演算が可能であるため、迅速な検索はもちろん、モデルの変化に一貫性をもって簡単に対応することができる。このとき、デルタ(δ)が小さくなるように目的関数を定義することで、高い性能と強靭なモデルを生成することができる。
【0080】
プロセッサ220は、自然言語表現をクエリとして利用して、ユーザが所望する商品を検索してよい。このとき、テキストによって特性の属性を加えたり除いたりする属性変換による検索を提供してよい。
【0081】
例えば、
図12に示すように、クエリ「オールドスクールレインボーハイトップ」に対応する商品はもちろん、クエリ「オールドスクールレインボーハイトップ」から属性「レインボー」を除いたクエリに対応する商品、クエリ「オールドスクールレインボーハイトップ」から属性「レインボー」を除いて属性「レッド」を追加したクエリに対応する商品のように、特定の属性を除いたり追加したりする演算によってユーザが所望する属性の商品を探し出すことができる。
【0082】
さらに、プロセッサ220は、自然語クエリに対する音声入力を支援することもできる。このとき、音声入力基盤の自然語検索によって、検索語修正などによる属性変換によって検索を提供してよい。例えば、ユーザが「白いミッキーがデザインされたスニーカーを探して。あ、「ミッキー」じゃなくて「ドナルド」で」のように所望する属性に対する演算を含む自然語コマンドや「どんなコードを着たらいいと思う?赤以外に」のような特定の命令によって特定の属性を除外する命令を発する場合がある。
【0083】
音声入力に対する処理は、音声入力を認識した後、テキスト検索と同じように自然言語処理を実行したり(例えば、音声入力をテキストに変換した後、ショッピング検索モデルに適用する)、または音声信号自体をマルチモーダル空間に埋め込むことによって(例えば、<音声、商品名テキスト、商品イメージ>のペアをともに学習してマルチモーダル空間に埋め込む)実現が可能となる。
【0084】
また、プロセッサ220は、イメージとテキストで構成されたマルチモーダル入力をクエリとして利用してユーザが所望する商品を検索してもよい。このとき、クエリとして入力されたイメージとテキスト間の相互演算によって検索を提供してよい。
【0085】
例えば、
図13に示すように、クエリとして特定のイメージとともに減算演算子を含むテキスト「レオパード柄」が入力された場合、これに該当するイメージフィーチャと属性「レオパード柄」の間のベクトル演算によって取得したフィーチャを基準に、属性「レオパード柄」が除かれた商品を探索してよい。クエリとして特定のイメージとともに減算演算子を含むテキスト「レオパード柄」と加算演算子を含むテキスト「赤」が入力された場合、これに該当するイメージフィーチャと属性「レオパード柄」、属性「赤」の間のベクトル演算によって取得したフィーチャを基準に、属性「レオパード柄」が除かれて属性「赤」が追加された商品を検索してよい。クエリとして特定のイメージとともに減算演算子を含むテキスト「レオパード柄」と加算演算子を含むテキスト「赤」、減算演算子を含むテキスト「星」が入力された場合、これに該当するイメージフィーチャと属性「レオパード柄」、属性「赤」、属性「星」の間のベクトル演算によって取得したフィーチャを基準に、属性「レオパード柄」と「星」が除かれて属性「赤」が追加された商品を検索してよい。
【0086】
図14および
図15は、本発明の一実施形態における、検索画面の一例を示した図である。
【0087】
本実施形態では、クエリに適用するためのイメージを選択した後、テキスト検索語を追加したクエリの組み合わせによって商品を検索することができる。
【0088】
例えば、
図14は、イメージ形式のクエリに対する検索結果を提供するイメージ検索画面1410を示している。イメージ検索画面1410には、検索語を追加するためのマルチモーダル検索レイヤ1420が含まれてよい。イメージ検索画面1410で検索語を追加しようとする場合、マルチモーダル検索レイヤ1420がスライドアップ(slide-up)されて表示されてよい。マルチモーダル検索レイヤ1420上に検索語が入力されると、イメージ検索画面1410に入力されたイメージとの組み合わせによってユーザが所望する属性の商品を検索結果1421として提供してよい。
【0089】
本実施形態では、テキストクエリに対する検索結果からイメージを選択したりテキスト検索語を追加入力したりしたクエリの組み合わせによって商品を検索することができる。
【0090】
例えば、
図15は、テキスト基盤のクエリに対する検索結果を提供する統合検索画面1510を示している。統合検索画面1510には、追加検索に移動するためのフローティングボタン1511が表示されてよい。このとき、フローティングボタン1511が、ユーザ経験を考慮した上で、適切なタイミングで適切な位置に表示されるようにしてよい。例えば、統合検索画面1510に含まれる検索結果のうちの特定のコレクション(例えば、ショッピングコレクション)の最上端領域が画面に表示された時点からこのコレクションの最下端領域が画面に表示される時点まで、統合検索画面1510上にフローティングボタン1511を表示してよい。また、特定の領域(例えば、タイトル、もっと見る領域、付加領域など)を表示する領域を確保した後に、画面の特定位置にフローティングボタン1511を表示してもよい。
【0091】
統合検索画面1510でフローティングボタン1511がタッチされた場合、追加検索のためのマルチモーダル検索レイヤ1520がスライドアップされて表示されてよい。マルチモーダル検索レイヤ1520には、検索結果に含まれるイメージのうちから少なくとも1つのイメージを追加クエリとして選択するためのインタフェース、およびテキスト基盤の検索語を追加入力するためのインタフェースが含まれてよい。マルチモーダル検索レイヤ1520に含まれる検索結果のうちから特定のイメージが選択されたり追加のテキスト検索語が入力される場合、統合検索画面1510に最初に入力された検索語との組み合わせによってユーザが所望する属性の商品を追加検索結果として提供してよい。
【0092】
このように、本発明の実施形態によると、イメージとテキストを組み合わせたマルチモーダル入力を同時に理解することで、ユーザの意図に適した商品を探し出すことができ、検索品質を高めることができる。特に、本発明の実施形態によると、商品に対するマルチモーダル埋め込みを線形表現が可能な仮想空間に変形し、ベクトル演算によって迅速かつ容易に所望の検索結果を見つけ出すことができる。さらに、本発明の実施形態によると、ベクトル演算が可能な仮想空間を使用して属性を自由に加えたり除いたりする多様な組み合わせの検索を提供することにより、ユーザの意図を正確に反映することができる。
【0093】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者であれば、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0094】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【0095】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。このとき、媒体は、コンピュータによって実行可能なプログラムを継続して記録するものであってもよいし、実行またはダウンロードのために一時的に記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続させる媒体はもちろん、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令が記録されるように構成されたものが挙げられる。また、他の媒体の例として、アプリケーションを流通するアプリストアや、その他の多様なソフトウェアを供給したり流通したりするサイト、サーバなどで管理する記録媒体や格納媒体も含まれる。
【0096】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0097】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付の特許請求の範囲に属する。
【符号の説明】
【0098】
200:コンピュータ装置
210:メモリ
220:プロセッサ
230:通信インタフェース
240:入力/出力インタフェース
250:入力/出力装置
170:ネットワーク