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

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

▶ ヤフー株式会社の特許一覧

特開2024-180085情報処理装置、情報処理方法及び情報処理プログラム
<>
  • 特開-情報処理装置、情報処理方法及び情報処理プログラム 図1
  • 特開-情報処理装置、情報処理方法及び情報処理プログラム 図2
  • 特開-情報処理装置、情報処理方法及び情報処理プログラム 図3
  • 特開-情報処理装置、情報処理方法及び情報処理プログラム 図4
  • 特開-情報処理装置、情報処理方法及び情報処理プログラム 図5
  • 特開-情報処理装置、情報処理方法及び情報処理プログラム 図6
  • 特開-情報処理装置、情報処理方法及び情報処理プログラム 図7
  • 特開-情報処理装置、情報処理方法及び情報処理プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024180085
(43)【公開日】2024-12-26
(54)【発明の名称】情報処理装置、情報処理方法及び情報処理プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241219BHJP
   G06Q 30/0601 20230101ALI20241219BHJP
【FI】
G06N20/00
G06Q30/0601
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023099526
(22)【出願日】2023-06-16
(71)【出願人】
【識別番号】500257300
【氏名又は名称】LINEヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】脇山 宗也
【テーマコード(参考)】
5L030
5L049
【Fターム(参考)】
5L030BB47
5L049BB47
(57)【要約】
【課題】オンラインショッピングモールの商品検索の分野において類似製品検索を行うモデルと間違い探しを行うモデルを統合する。
【解決手段】本願に係る情報処理装置は、類似製品検索用の学習データと製品間違い探し用の学習データとを取得する取得部と、類似製品検索用の学習データと製品間違い探し用の学習データとを用いて、類似製品検索用のタスクと製品間違い探し用のタスクのマルチタスク学習を行う統合学習部133とを備えることを特徴とする。
【選択図】図6
【特許請求の範囲】
【請求項1】
類似製品検索用の学習データと製品間違い探し用の学習データとを取得する取得部と、
前記類似製品検索用の学習データと前記製品間違い探し用の学習データとを用いて、類似製品検索用のタスクと製品間違い探し用のタスクのマルチタスク学習を行う統合学習部と
を備えることを特徴とする情報処理装置。
【請求項2】
前記統合学習部は、類似製品検索用の学習データと製品間違い探し用の学習データとを同一のモデルに入力し、類似製品検索用のタスクの学習と製品間違い探し用のタスクの学習とを並行して行う
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記統合学習部は、類似製品検索用の学習データをモデルに入力した際に類似製品検索用のタスクの学習を行い、製品間違い探し用の学習データを同一の前記モデルに入力した際に製品間違い探し用のタスクの学習を行う
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記統合学習部は、類似製品検索用の学習データをモデルに入力した際に類似製品検索用のタスクの学習を行った後、前記モデルのパラメータを流用して、製品間違い探し用の学習データを前記パラメータが適用されたモデルに入力した際に製品間違い探し用のタスクの学習を行う
ことを特徴とする請求項1に記載の情報処理装置。
【請求項5】
前記統合学習部は、類似製品検索用の学習データをモデルに入力した際に類似製品検索用のタスクの学習を行い、前記モデルに製品間違い探し用のタスクを追加し、前記モデルのパラメータを固定して製品間違い探し用の追加学習を行う
ことを特徴とする請求項1に記載の情報処理装置。
【請求項6】
前記統合学習部は、類似製品検索用の学習では、製品マスタと商品データのテキストをBERTのモデルに入力し、製品をクラスとしたマルチクラス分類を行うタスクの学習を行う
ことを特徴とする請求項1に記載の情報処理装置。
【請求項7】
前記統合学習部は、製品間違い探し用の学習では、商品データのテキストをBERTのモデルに入力し、同一製品の二値分類を行うタスクの学習を行う
ことを特徴とする請求項1に記載の情報処理装置。
【請求項8】
前記統合学習部は、さらに商品の容量・本数を分類するタスクを追加してマルチタスク学習を行う
ことを特徴とする請求項1に記載の情報処理装置。
【請求項9】
前記統合学習部は、さらに商品のブランドを分類するタスクを追加してマルチタスク学習を行う
ことを特徴とする請求項1に記載の情報処理装置。
【請求項10】
情報処理装置が実行する情報処理方法であって、
類似製品検索用の学習データと製品間違い探し用の学習データとを取得する取得工程と、
前記類似製品検索用の学習データと前記製品間違い探し用の学習データとを用いて、類似製品検索用のタスクと製品間違い探し用のタスクのマルチタスク学習を行う統合学習工程と
を含むことを特徴とする情報処理方法。
【請求項11】
類似製品検索用の学習データと製品間違い探し用の学習データとを取得する取得手順と、
前記類似製品検索用の学習データと前記製品間違い探し用の学習データとを用いて、類似製品検索用のタスクと製品間違い探し用のタスクのマルチタスク学習を行う統合学習手順と
をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【0002】
従来、マルチタスク学習ネットワーク及びマルチタスク学習ネットワークに基づく方法を提供する技術が開示されている(例えば特許文献1)。例えば、この技術では、タスクネットワークは複数のサブタスクネットワークを含み、複数のサブタスクネットワークは同じ入力について対応する特徴ベクトルを生成し、合併ネットワークは対応する特徴ベクトルに対してつなぎ合わせを行い、つなぎ合わせ後の特徴ベクトルに対して最適化処理を行って最終出力を得る。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022-121385号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記の従来技術には、改善の余地がある。例えば、上記の従来技術では、複数のサブタスクネットワークが特徴ベクトルに対してつなぎ合わせを行い、つなぎ合わせ後の特徴ベクトルに対して最適化処理を行って最終出力を得ているものの、異なるタスクを行うモデルを統合する点については改善の余地がある。例えば、オンラインショッピングモールの商品検索の分野において類似製品検索を行うモデルと間違い探しを行うモデルを統合することが望まれている。
【0005】
本願は、上記に鑑みてなされたものであって、オンラインショッピングモールの商品検索の分野において類似製品検索を行うモデルと間違い探しを行うモデルを統合することを目的とする。
【課題を解決するための手段】
【0006】
本願に係る情報処理装置は、類似製品検索用の学習データと製品間違い探し用の学習データとを取得する取得部と、前記類似製品検索用の学習データと前記製品間違い探し用の学習データとを用いて、類似製品検索用のタスクと製品間違い探し用のタスクのマルチタスク学習を行う統合学習部とを備えることを特徴とする。
【発明の効果】
【0007】
実施形態の一態様によれば、オンラインショッピングモールの商品検索の分野において類似製品検索を行うモデルと間違い探しを行うモデルを統合することができる。
【図面の簡単な説明】
【0008】
図1図1は、実施形態に係る情報処理システムの構成例を示す図である。
図2図2は、現在の学習方法の概要を示す説明図である。
図3図3は、マルチタスク学習による類似製品検索と間違い探しのモデル統合の概要を示す説明図である。
図4図4は、ベースとなるBERTを共有する方法の概要を示す説明図である。
図5図5は、実施形態に係る端末装置の構成例を示す図である。
図6図6は、実施形態に係るサーバ装置の構成例を示す図である。
図7図7は、実施形態に係る処理手順を示すフローチャートである。
図8図8は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0009】
以下に、本願に係る情報処理装置、情報処理方法及び情報処理プログラムを実施するための形態(以下、「実施形態」と記載する)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。また、以下の実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0010】
〔1.情報処理システムの構成例〕
まず、図1を用いて、実施形態に係るサーバ装置100が含まれる情報処理システム1の構成について説明する。図1は、実施形態に係る情報処理システム1の構成例を示す図である。図1に示すように、実施形態に係る情報処理システム1は、端末装置10とサーバ装置100とを含む。これらの各種装置は、ネットワークNを介して、有線又は無線により互いに通信可能に接続される。これにより、端末装置10は、サーバ装置100と連携可能である。ネットワークNは、例えば、LAN(Local Area Network)や、インターネット等のWAN(Wide Area Network)である。
【0011】
端末装置10は、利用者U(ユーザ)によって使用される情報処理装置である。例えば、端末装置10は、スマートフォン(スマホ)やタブレット端末等のスマートデバイス、フィーチャーフォン(ガラケー・ガラホ)等の携帯電話、PC(Personal Computer)、PDA(Personal Digital Assistant)、通信機能を備えたゲーム機やAV機器、情報家電・デジタル家電、カーナビゲーションシステム、スマートウォッチやヘッドマウントディスプレイ、スマートグラス等のウェアラブルデバイス(Wearable Device)等である。また、端末装置10は、IOT(Internet of Things)に対応した住宅・建物、車、家電製品、電子機器等であってもよい。
【0012】
本実施形態では、端末装置10は、利用者Uにより使用されるスマートフォンやタブレット端末等のスマートデバイスであり、LTE(Long Term Evolution)、4G(4th Generation)、5G(5th Generation:第5世代移動通信システム)等の無線通信網を介して任意のサーバ装置と通信を行うことができる携帯端末装置である。また、端末装置10は、液晶ディスプレイ等の画面であって、タッチパネルの機能を有する画面を有し、利用者Uから指やスタイラス等によりタップ操作、スライド操作、スクロール操作等、コンテンツ等の表示データに対する各種の操作を受付ける。なお、画面のうち、コンテンツが表示されている領域上で行われた操作を、コンテンツに対する操作としてもよい。また、端末装置10は、スマートデバイスのみならず、デスクトップPC(Personal Computer)やノートPC等の情報処理装置であってもよい。
【0013】
また、かかる端末装置10は、LTE、4G、5G等の無線通信網や、Bluetooth(登録商標)、無線LAN(Local Area Network)等の近距離無線通信を介してネットワークNに接続し、サーバ装置100と通信することができる。
【0014】
サーバ装置100は、例えばPCやブレードサーバ(blade server)等のコンピュータ、あるいはメインフレーム又はワークステーション等である。なお、サーバ装置100は、クラウドコンピューティングにより実現されてもよい。
【0015】
本実施形態では、サーバ装置100は、各利用者Uの端末装置10と連携し、各利用者Uの端末装置10に対して、各種アプリケーション(以下、アプリ)等に対するAPI(Application Programming Interface)サービス等と、各種データを提供する情報処理装置であり、コンピュータやクラウドシステム等により実現される。
【0016】
また、サーバ装置100は、各利用者Uの端末装置10に対して、オンラインで何らかのWebサービスを提供する情報処理装置であってもよい。例えば、サーバ装置100は、Webサービスとして、インターネット接続、検索サービス、SNS(Social Networking Service)、電子商取引(EC:Electronic Commerce)、電子決済、オンラインゲーム、オンラインバンキング、オンライントレーディング、宿泊・チケット予約、動画・音楽配信、ニュース、地図、ルート検索、経路案内、路線情報、運行情報、天気予報等のサービスを提供してもよい。実際には、サーバ装置100は、上記のようなWebサービスを提供する各種サーバと連携し、Webサービスを仲介してもよいし、Webサービスの処理を担当してもよい。
【0017】
なお、サーバ装置100は、利用者Uに関する利用者情報を取得可能である。例えば、サーバ装置100は、利用者Uの性別、年代、居住地域といった利用者Uの属性に関する情報を取得する。そして、サーバ装置100は、利用者Uを示す識別情報(利用者ID等)とともに利用者Uの属性に関する情報を記憶して管理する。
【0018】
また、サーバ装置100は、利用者Uの端末装置10から、あるいは利用者ID等に基づいて各種サーバ等から、利用者Uの行動を示す各種の履歴情報(ログデータ)を取得する。例えば、サーバ装置100は、利用者Uの位置や日時の履歴である位置履歴を端末装置10から取得する。また、サーバ装置100は、利用者Uが入力した検索クエリの履歴である検索履歴を検索サーバ(検索エンジン)から取得する。また、サーバ装置100は、利用者Uが閲覧したコンテンツの履歴である閲覧履歴をコンテンツサーバから取得する。また、サーバ装置100は、利用者Uの商品購入や決済処理の履歴である購入履歴(決済履歴)を電子商取引サーバや決済処理サーバから取得する。また、サーバ装置100は、利用者Uのマーケットプレイスへの出品の履歴である出品履歴や販売履歴を電子商取引サーバや決済処理サーバから取得してもよい。また、サーバ装置100は、利用者Uの投稿の履歴である投稿履歴を口コミの投稿サービスを提供する投稿サーバやSNSサーバから取得する。なお、上記の各種サーバ等は、サーバ装置100自体であってもよい。すなわち、サーバ装置100が上記の各種サーバ等として機能してもよい。
【0019】
また、図1に示す情報処理システム1に含まれる各装置の数は図示したものに限られない。例えば、図1では、図示の簡略化のため、端末装置10を1台のみ示したが、これはあくまでも例示であって限定されるものではなく、2台以上であってもよい。
【0020】
〔2.BERTのマルチタスク学習方法〕
本実施形態では、サーバ装置100が実施するBERT(Bidirectional Encoder Representations from Transformers)のマルチタスク学習方法について説明する。現在、オンラインショッピングモールの商品検索のコマース領域向けの研究開発において、「類似製品検索」と「間違い探し」の2つのプロダクトがある。2つのプロダクトにはBERTが利用されている。
【0021】
(1)類似製品検索
高次元ベクトルデータにおいて近傍検索を行うNGT(ベクトル近傍検索ソフトウェア)を利用してベクトル検索を行っている。Indexを構築するテキストのEmbedding(単語や文章等をベクトル表現に変換する処理)にBERTを用いている。例えば、商品名・製品名のEmbeddingにはBERTを利用する。Embedding後のベクトルを用いてベクトル検索を行う際には、NGTを利用する。なお、ベクトル検索を行うにあたって、事前にオンラインショッピングモールの製品データをEmbeddingしてIndexを作成しておく。このとき、特定の単語を示す整数のIndexに、その埋め込みである密なベクトルを対応させる。
【0022】
(2)間違い探し
製品と商品のペアが与えられた時、そのペアが同一製品かどうかの判定を行う。テキストを元に同一製品判定を行う際にBERTを用いるが、以下の2種類の方法がある。
【0023】
(A)cos類似度
製品名と商品名をそれぞれEmbeddingしたもののcos類似度(コサイン類似度)を算出し、類似度を元に判定を行う。
【0024】
(B)二値分類
製品名と商品名のセットを入力として同一製品かどうかの二値分類を行う。
【0025】
現在は上記(A)のcos類似度の方が精度が高いが、上記(B)の二値分類の方が精度が高くなる方が直感的だとコメントを貰うことが多い。
【0026】
間違い探しの同一製品判定を二値分類で行うこととした場合、BERTのモデルがEmbedding用と二値分類用で2つ存在することになってしまう。研究開発の人的リソースの観点から、Embedding用のBERTと二値分類用のBERTとを統合したいという要望がある。
【0027】
ここで、学習方法の整理のため、現在の学習方法と、マルチタスク学習によるモデルの統合方法の案について説明する。
【0028】
〔2-1.現在の学習方法〕
図2は、現在の学習方法の概要を示す説明図である。現在の学習方法では、Embedding用の学習と同一製品判定用の学習を個別に行っている。
【0029】
例えば、図2に示すように、類似製品検索向けEmbedding用の学習では、製品マスタと商品データのテキストをBERTのモデルに入力し、製品をクラスとしたマルチクラス分類を行うタスクAの学習を行う。このとき、Embedding用の学習データには、製品マスタと、製品に紐づいている商品データとを用いる。
【0030】
また、間違い探し向け同一製品判定用の学習では、商品データのテキストをBERTのモデルに入力し、同一製品の二値分類を行うタスクBの学習を行う。このとき、同一製品判定用の学習データとなる商品データには、製品に紐づいている商品データと、製品に紐づいていない商品データとが含まれる。
【0031】
現在の学習方法では、Embedding用の学習と同一製品判定用の学習とはそれぞれ独立しており、Embedding用の学習と同一製品判定用の学習とで学習データが異なるため、それぞれのBERTのモデルは学習後に異なるパラメータになる。
【0032】
〔2-2.マルチタスク学習によるモデル統合〕
図3は、マルチタスク学習による類似製品検索と間違い探しのモデル統合の概要を示す説明図である。本実施形態では、マルチタスク学習を用いて、類似製品検索・製品間違い探しのBERTのモデル統合、及び精度改善を行う。
【0033】
例えば、図3に示すように、マルチタスク学習による類似製品検索と間違い探しのモデル統合では、類似製品検索向けEmbedding用の学習における製品マスタと商品データのテキストと、間違い探し向け同一製品判定用の学習における商品データのテキストとを同一のBERTのモデルに入力し、製品をクラスとしたマルチクラス分類(タスクA)と同一製品の二値分類(タスクB)のマルチタスク学習を行う。
【0034】
例えば、製品マスタのテキストを事前にモデルに入力しておき、商品データのテキストをモデルに入力した際に、製品をクラスとしたマルチクラス分類(タスクA)と、同一製品の二値分類(タスクB)との学習を並行して行う。
【0035】
あるいは、類似製品検索向けEmbedding用の学習における製品マスタと商品データのテキストを当該BERTのモデルに入力した場合には、製品をクラスとしたマルチクラス分類(タスクA)を行い、間違い探し向け同一製品判定用の学習における商品データのテキストを当該BERTのモデルに入力した場合には、同一製品の二値分類(タスクB)を行う。
【0036】
さらに、Embeddingと同一製品判定の精度を上げるために、BERTのモデルに容量・本数・ブランドなどに注意させるための学習を行うようにしてもよい。例えば、マルチタスク学習で商品の容量・本数を分類するタスクを追加してマルチタスク学習を行うことで、商品の容量・本数を当てる学習を行う。また、マルチタスク学習で商品のブランドを分類するタスクを追加してマルチタスク学習を行うことで、商品のブランドを当てる学習を行う。また、他に学習に使えるデータがあればタスクを追加する。
【0037】
〔2-3.ベースとなるBERTを共有する方法〕
図4は、ベースとなるBERTを共有する方法の概要を示す説明図である。なお、ベースとなるBERTを共有する方法はマルチタスク学習以外のモデル統合のイメージであるが、厳密にはモデル統合ではない。類似製品検索で学習したモデルを間違い探しのベースモデルに利用するだけである。
【0038】
例えば、図4に示すように、類似製品検索向けEmbedding用の学習では、製品マスタと商品データのテキストをBERTのモデルに入力し、製品をクラスとしたマルチクラス分類(タスクA)を行う。
【0039】
なお、マルチタスク学習以外のモデル統合では、類似製品検索向けEmbedding用の学習で得られたパラメータを間違い探し向け同一製品判定用の学習に流用する。すなわち、類似製品検索向けEmbedding用の学習を行ったBERTのモデルのパラメータを、間違い探し向け同一製品判定用の学習を行うBERTのモデルに適用する。
【0040】
そして、間違い探し向け同一製品判定用の学習では、商品データのテキストを、類似製品検索向けEmbedding用の学習で得られたパラメータを流用したBERTのモデルに入力し、同一製品の二値分類(タスクB)を行う。
【0041】
あるいは、類似製品検索用の学習を行ったBERTのモデルを作成した後にBERTのモデルに二値分類層を追加し、BERTのモデルのパラメータを固定して製品間違い探し用の追加学習を行うようにしてもよい。
【0042】
〔2-4.特徴〕
上記のように、本実施形態に係るBERTのマルチタスク学習方法では、オンラインショッピングモールの商品検索の分野において類似製品検索を行うモデルと間違い探しを行うモデルを統合する点を特徴とする。すなわち、類似商品の判断モデルと、商品とデータベースとの紐づけが正しいかを判断するモデルとを統合する。
【0043】
サーバ装置100は、出品された商品について出品者により入力された商品情報に基づいて、当該商品がデータベースに情報が登録された製品のうちどの製品であるかを推定するモデルを学習する。また、サーバ装置100は、学習したモデルを用いて、商品の商品情報と製品の情報とが入力された場合に、商品と製品とが同一であるか否かを判定する。
【0044】
例えば、サーバ装置100は、ベクトル検索するタスクと、紐づけが間違っているかどうかというタスクをマルチタスク学習で学習する。
【0045】
また、商品の容量や本数を当てる学習や、ブランドを当てる学習をさらにタスクとして追加していく。さらに、製品を特定するために有用と考えられるサブのタスクを行わせるとよい。
【0046】
また、サーバ装置100は、タスクAにおいて考慮してほしい問題をタスクBとして抽出して、繰り返し学習させる。タスクは、二値分類でもよいし、マルチクラス分類(多クラス分類)でもよい。
【0047】
本実施形態では、ミニバッチで少しずつ学習しているが、ざっくり全体的にやってもよい。また、製品用のBERTと、商品用のBERTとを別に設定して、文字列を結合するCONCAT(コンカット)関数(CONCATENATE関数)を用いて結合してもよい。
【0048】
〔3.端末装置の構成例〕
次に、図5を用いて、端末装置10の構成について説明する。図5は、端末装置10の構成例を示す図である。図5に示すように、端末装置10は、通信部11と、表示部12と、入力部13と、測位部14と、センサ部20と、制御部30(コントローラ)と、記憶部40とを備える。
【0049】
(通信部11)
通信部11は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、サーバ装置100との間で情報の送受信を行う。例えば、通信部11は、NIC(Network Interface Card)やアンテナ等によって実現される。
【0050】
(表示部12)
表示部12は、位置情報等の各種情報を表示する表示デバイスである。例えば、表示部12は、液晶ディスプレイ(LCD:Liquid Crystal Display)や有機ELディスプレイ(Organic Electro-Luminescent Display)である。また、表示部12は、タッチパネル式のディスプレイであるが、これに限定されるものではない。
【0051】
(入力部13)
入力部13は、利用者Uから各種操作を受け付ける入力デバイスである。例えば、入力部13は、文字や数字等を入力するためのボタン等を有する。なお、入力部13は、入出力ポート(I/O port)やUSB(Universal Serial Bus)ポート等であってもよい。また、表示部12がタッチパネル式のディスプレイである場合、表示部12の一部が入力部13として機能する。また、入力部13は、利用者Uから音声入力を受け付けるマイク等であってもよい。マイクはワイヤレスであってもよい。
【0052】
(測位部14)
測位部14は、GPS(Global Positioning System)の衛星から送出される信号(電波)を受信し、受信した信号に基づいて、自装置である端末装置10の現在位置を示す位置情報(例えば、緯度及び経度)を取得する。すなわち、測位部14は、端末装置10の位置を測位する。なお、GPSは、GNSS(Global Navigation Satellite System)の一例に過ぎない。
【0053】
また、測位部14は、GPS以外にも、種々の手法により位置を測位することができる。例えば、測位部14は、位置補正等のための補助的な測位手段として、下記のように、端末装置10の様々な通信機能を利用して位置を測位してもよい。
【0054】
(Wi-Fi測位)
例えば、測位部14は、端末装置10のWi-Fi(登録商標)通信機能や、各通信会社が備える通信網を利用して、端末装置10の位置を測位する。具体的には、測位部14は、Wi-Fi通信等を行い、付近の基地局やアクセスポイントとの距離を測位することにより、端末装置10の位置を測位する。
【0055】
(ビーコン測位)
また、測位部14は、端末装置10のBluetooth(登録商標)機能を利用して位置を測位してもよい。例えば、測位部14は、Bluetooth(登録商標)機能によって接続されるビーコン(beacon)発信機と接続することにより、端末装置10の位置を測位する。
【0056】
(地磁気測位)
また、測位部14は、予め測定された構造物の地磁気のパターンと、端末装置10が備える地磁気センサとに基づいて、端末装置10の位置を測位する。
【0057】
(RFID測位)
また、例えば、端末装置10が駅改札や店舗等で使用される非接触型ICカードと同等のRFID(Radio Frequency Identification)タグの機能を備えている場合、もしくはRFIDタグを読み取る機能を備えている場合、端末装置10によって決済等が行われた情報とともに、使用された位置が記録される。測位部14は、かかる情報を取得することで、端末装置10の位置を測位してもよい。また、位置は、端末装置10が備える光学式センサや、赤外線センサ等によって測位されてもよい。
【0058】
測位部14は、必要に応じて、上述した測位手段の一つ又は組合せを用いて、端末装置10の位置を測位してもよい。
【0059】
(センサ部20)
センサ部20は、端末装置10に搭載又は接続される各種のセンサを含む。なお、接続は、有線接続、無線接続を問わない。例えば、センサ類は、ウェアラブルデバイスやワイヤレスデバイス等、端末装置10以外の検知装置であってもよい。図5に示す例では、センサ部20は、加速度センサ21と、ジャイロセンサ22と、気圧センサ23と、気温センサ24と、音センサ25と、光センサ26と、磁気センサ27と、画像センサ(カメラ)28とを備える。
【0060】
なお、上記した各センサ21~28は、あくまでも例示であって限定されるものではない。すなわち、センサ部20は、各センサ21~28のうちの一部を備える構成であってもよいし、各センサ21~28に加えてあるいは代えて、湿度センサ等その他のセンサを備えてもよい。
【0061】
加速度センサ21は、例えば、3軸加速度センサであり、端末装置10の移動方向、速度、及び、加速度等の端末装置10の物理的な動きを検知する。ジャイロセンサ22は、端末装置10の角速度等に基づいて3軸方向の傾き等の端末装置10の物理的な動きを検知する。気圧センサ23は、例えば端末装置10の周囲の気圧を検知する。
【0062】
端末装置10は、上記した加速度センサ21やジャイロセンサ22、気圧センサ23等を備えることから、これらの各センサ21~23等を利用した歩行者自律航法(PDR:Pedestrian Dead-Reckoning)等の技術を用いて端末装置10の位置を測位することが可能になる。これにより、GPS等の測位システムでは取得することが困難な屋内での位置情報を取得することが可能になる。
【0063】
例えば、加速度センサ21を利用した歩数計により、歩数や歩くスピード、歩いた距離を算出することができる。また、ジャイロセンサ22を利用して、利用者Uの進行方向や視線の方向、体の傾きを知ることができる。また、気圧センサ23で検知した気圧から、利用者Uの端末装置10が存在する高度やフロアの階数を知ることもできる。
【0064】
気温センサ24は、例えば端末装置10の周囲の気温を検知する。音センサ25は、例えば端末装置10の周囲の音を検知する。光センサ26は、端末装置10の周囲の照度を検知する。磁気センサ27は、例えば端末装置10の周囲の地磁気を検知する。画像センサ28は、端末装置10の周囲の画像を撮像する。
【0065】
上記した気圧センサ23、気温センサ24、音センサ25、光センサ26及び画像センサ28は、それぞれ気圧、気温、音、照度を検知したり、周囲の画像を撮像したりすることで、端末装置10の周囲の環境や状況等を検知することができる。また、端末装置10の周囲の環境や状況等から、端末装置10の位置情報の精度を向上させることが可能になる。
【0066】
(制御部30)
制御部30は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM、入出力ポート等を有するマイクロコンピュータや各種の回路を含む。また、制御部30は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路等のハードウェアで構成されてもよい。制御部30は、送信部31と、受信部32と、処理部33とを有する。
【0067】
(送信部31)
送信部31は、例えば入力部13を用いて利用者Uにより入力された各種情報や、端末装置10に搭載又は接続された各センサ21~28によって検知された各種情報、測位部14によって測位された端末装置10の位置情報等を、通信部11を介してサーバ装置100へ送信することができる。
【0068】
(受信部32)
受信部32は、通信部11を介して、サーバ装置100から提供される各種情報や、サーバ装置100からの各種情報の要求を受信することができる。
【0069】
(処理部33)
処理部33は、表示部12等を含め、端末装置10全体を制御する。例えば、処理部33は、送信部31によって送信される各種情報や、受信部32によって受信されたサーバ装置100からの各種情報を表示部12へ出力して表示させることができる。
【0070】
(記憶部40)
記憶部40は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置によって実現される。かかる記憶部40には、各種プログラムや各種データ等が記憶される。
【0071】
〔4.サーバ装置の構成例〕
次に、図6を用いて、実施形態に係るサーバ装置100の構成について説明する。図6は、実施形態に係るサーバ装置100の構成例を示す図である。図6に示すように、サーバ装置100は、通信部110と、記憶部120と、制御部130とを備える。
【0072】
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。また、通信部110は、ネットワークNと有線又は無線で接続される。
【0073】
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、HDD、SSD、光ディスク等の記憶装置によって実現される。記憶部120は、利用者Uを示す識別情報(利用者ID等)とともに、利用者Uの属性情報や履歴情報(ログデータ)を記憶してもよい。
【0074】
なお、記憶部120は、製品マスタと商品データを記憶してもよい。また、記憶部120は、学習用のデータセットを記憶してもよい。また、記憶部120は、学習済みのBERTのモデルを記憶してもよい。
【0075】
(制御部130)
制御部130は、コントローラ(Controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等によって、サーバ装置100の内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAM等の記憶領域を作業領域として実行されることにより実現される。図6に示す例では、制御部130は、取得部131と、作成部132と、統合学習部133と、推論部134と、提供部135とを有する。
【0076】
(取得部131)
取得部131は、利用者U(ユーザ)により入力された検索クエリを取得する。例えば、取得部131は、利用者Uが検索エンジン等に検索クエリを入力してキーワード検索を行った際に、通信部110を介して、当該検索クエリを取得する。すなわち、取得部131は、通信部110を介して、利用者Uにより検索エンジンやサイト又はアプリの検索窓に入力されたキーワードを取得する。
【0077】
また、取得部131は、通信部110を介して、利用者Uに関する利用者情報を取得する。例えば、取得部131は、利用者Uの端末装置10から、利用者Uを示す識別情報(利用者ID等)や、利用者Uの位置情報、利用者Uの属性情報等を取得する。また、取得部131は、利用者Uのユーザ登録時に、利用者Uを示す識別情報や、利用者Uの属性情報等を取得してもよい。そして、取得部131は、利用者情報を記憶部120に記憶する。
【0078】
また、取得部131は、通信部110を介して、利用者Uの行動を示す各種の履歴情報(ログデータ)を取得する。例えば、取得部131は、利用者Uの端末装置10から、あるいは利用者ID等に基づいて各種サーバ等から、利用者Uの行動を示す各種の履歴情報を取得する。そして、取得部131は、各種の履歴情報を記憶部120に記憶する。
【0079】
また、取得部131は、類似製品検索用の学習データと製品間違い探し用の学習データとを取得する。
【0080】
(作成部132)
作成部132は、元となるデータに基づいて学習用のデータセットを作成してもよい。例えば、作成部132は、製品マスタと商品データから、類似製品検索用の学習データを作成してもよい。また、作成部132は、商品データから、製品間違い探し用の学習データを作成してもよい。なお、作成部132は、取得部131により類似製品検索用の学習データと製品間違い探し用の学習データとが取得された場合には、類似製品検索用の学習データと製品間違い探し用の学習データとを作成しなくてもよい。また、作成部132は、取得部131と一体化していてもよい。例えば、類似製品検索用の学習データと製品間違い探し用の学習データとを作成したことをもって、類似製品検索用の学習データと製品間違い探し用の学習データとを取得したとみなしてもよい。
【0081】
(統合学習部133)
統合学習部133は、類似製品検索用の学習データと製品間違い探し用の学習データとを用いて、類似製品検索用のタスクと製品間違い探し用のタスクのマルチタスク学習を行う。
【0082】
例えば、統合学習部133は、類似製品検索用の学習データと製品間違い探し用の学習データとを同一のモデルに入力し、類似製品検索用のタスクの学習と製品間違い探し用のタスクの学習とを並行して行う。
【0083】
あるいは、統合学習部133は、類似製品検索用の学習データをモデルに入力した際に類似製品検索用のタスクの学習を行い、製品間違い探し用の学習データを同一のモデルに入力した際に製品間違い探し用のタスクの学習を行う。
【0084】
あるいは、統合学習部133は、類似製品検索用の学習データをモデルに入力した際に類似製品検索用のタスクの学習を行った後、モデルのパラメータを流用して、製品間違い探し用の学習データをパラメータが適用されたモデルに入力した際に製品間違い探し用のタスクの学習を行う。
【0085】
あるいは、統合学習部133は、類似製品検索用の学習データをモデルに入力した際に類似製品検索用のタスクの学習を行い、モデルに製品間違い探し用のタスクを追加し、モデルのパラメータを固定して製品間違い探し用の追加学習を行う。
【0086】
なお、統合学習部133は、類似製品検索用の学習では、製品マスタと商品データのテキストをBERTのモデルに入力し、製品をクラスとしたマルチクラス分類を行うタスクの学習を行う。
【0087】
また、統合学習部133は、製品間違い探し用の学習では、商品データのテキストをBERTのモデルに入力し、同一製品の二値分類を行うタスクの学習を行う。
【0088】
また、統合学習部133は、さらに商品の容量・本数を分類するタスクを追加してマルチタスク学習を行う。また、統合学習部133は、さらに商品のブランドを分類するタスクを追加してマルチタスク学習を行う。
【0089】
(推論部134)
推論部134は、類似製品検索用の入力データと学習済みのモデルとを用いて、類似製品検索用のタスクを行う。例えば、推論部134は、商品データのテキストをBERTのモデルに入力し、製品をクラスとしたマルチクラス分類を行う。
【0090】
また、推論部134は、製品間違い探し用の入力データと学習済みのモデルとを用いて、製品間違い探し用のタスクを行う。例えば、推論部134は、商品データのテキストをBERTのモデルに入力し、同一製品の二値分類を行う。
【0091】
さらに、推論部134は、商品データのテキストをBERTのモデルに入力し、商品の容量・本数を当てるタスクを行う。また、推論部134は、商品データのテキストをBERTのモデルに入力し、商品のブランドを当てるタスクを行う。
【0092】
(提供部135)
提供部135は、通信部110を介して、推論部134による推論結果を利用者Uの端末装置10や外部のサーバ装置に提供する。例えば、提供部135は、製品をクラスとしたマルチクラス分類の結果や、同一製品の二値分類の結果を提供する。
【0093】
あるいは、提供部135は、利用者Uの端末装置10からの検索クエリに応じて、通信部110を介して、推論部134による推論結果に基づく検索結果を利用者Uの端末装置10に提供する。
【0094】
〔5.処理手順〕
次に、図7を用いて実施形態に係るサーバ装置100による処理手順について説明する。図7は、実施形態に係る処理手順を示すフローチャートである。なお、以下に示す処理手順は、サーバ装置100の制御部130によって繰り返し実行される。
【0095】
例えば、図7に示すように、サーバ装置100の取得部131は、製品マスタと商品データを取得する(ステップS101)。
【0096】
続いて、サーバ装置100の作成部132は、製品マスタと商品データのテキストから類似製品検索用の学習データを作成し、商品データのテキストから製品間違い探し用の学習データを作成する(ステップS102)。
【0097】
続いて、サーバ装置100の類似製品検索用の学習データと製品間違い探し用の学習データとをBERTのモデルに入力して、類似製品検索用のタスクと製品間違い探し用のタスクのマルチタスク学習を行う(ステップS103)。
【0098】
続いて、サーバ装置100の推論部134は、学習済みのモデルに類似製品検索用の入力データを入力して類似製品検索用のタスクを行い、製品間違い探し用の入力データを入力して製品間違い探し用のタスクを行う(ステップS104)。なお、実際には、推論部134は、同一の入力データから、類似製品検索用のタスクと製品間違い探し用のタスクとを並行して行ってもよい。
【0099】
続いて、サーバ装置100の提供部135は、通信部110を介して、推論部134による各タスクの結果(推論結果)を利用者Uの端末装置10や外部のサーバ装置に提供する(ステップS105)。
【0100】
〔6.変形例〕
上述した端末装置10及びサーバ装置100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、実施形態の変形例について説明する。
【0101】
上記の実施形態において、サーバ装置100が実行している処理の一部又は全部は、実際には、端末装置10が実行してもよい。例えば、スタンドアローン(Stand-alone)で(端末装置10単体で)処理が完結してもよい。この場合、端末装置10に、上記の実施形態におけるサーバ装置100の機能が備わっているものとする。また、上記の実施形態では、端末装置10はサーバ装置100と連携しているため、利用者Uから見れば、サーバ装置100の処理も端末装置10が実行しているように見える。すなわち、他の観点では、端末装置10は、サーバ装置100を備えているともいえる。
【0102】
〔7.効果〕
上述してきたように、本願に係る情報処理装置(サーバ装置100)は、類似製品検索用の学習データと製品間違い探し用の学習データとを取得する取得部131と、類似製品検索用の学習データと製品間違い探し用の学習データとを用いて、類似製品検索用のタスクと製品間違い探し用のタスクのマルチタスク学習を行う統合学習部133とを備えることを特徴とする。
【0103】
例えば、統合学習部133は、類似製品検索用の学習データと製品間違い探し用の学習データとを同一のモデルに入力し、類似製品検索用のタスクの学習と製品間違い探し用のタスクの学習とを並行して行う。
【0104】
あるいは、統合学習部133は、類似製品検索用の学習データをモデルに入力した際に類似製品検索用のタスクの学習を行い、製品間違い探し用の学習データを同一のモデルに入力した際に製品間違い探し用のタスクの学習を行う。
【0105】
あるいは、統合学習部133は、類似製品検索用の学習データをモデルに入力した際に類似製品検索用のタスクの学習を行った後、モデルのパラメータを流用して、製品間違い探し用の学習データをパラメータが適用されたモデルに入力した際に製品間違い探し用のタスクの学習を行う。
【0106】
あるいは、統合学習部133は、類似製品検索用の学習データをモデルに入力した際に類似製品検索用のタスクの学習を行い、モデルに製品間違い探し用のタスクを追加し、モデルのパラメータを固定して製品間違い探し用の追加学習を行う。
【0107】
なお、統合学習部133は、類似製品検索用の学習では、製品マスタと商品データのテキストをBERTのモデルに入力し、製品をクラスとしたマルチクラス分類を行うタスクの学習を行う。
【0108】
また、統合学習部133は、製品間違い探し用の学習では、商品データのテキストをBERTのモデルに入力し、同一製品の二値分類を行うタスクの学習を行う。
【0109】
また、統合学習部133は、さらに商品の容量・本数を分類するタスクを追加してマルチタスク学習を行う。
【0110】
また、統合学習部133は、さらに商品のブランドを分類するタスクを追加してマルチタスク学習を行う。
【0111】
上述した各処理のいずれかもしくは組合せにより、本願に係る情報処理装置は、オンラインショッピングモールの商品検索の分野において類似製品検索を行うモデルと間違い探しを行うモデルを統合することができる。
【0112】
〔8.ハードウェア構成〕
また、上述した実施形態に係る端末装置10やサーバ装置100は、例えば図8に示すような構成のコンピュータ1000によって実現される。以下、サーバ装置100を例に挙げて説明する。図8は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力I/F(Interface)1060、入力I/F1070、ネットワークI/F1080がバス1090により接続された形態を有する。
【0113】
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。演算装置1030は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等により実現される。
【0114】
一次記憶装置1040は、RAM(Random Access Memory)等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等により実現される。二次記憶装置1050は、内蔵ストレージであってもよいし、外付けストレージであってもよい。また、二次記憶装置1050は、USB(Universal Serial Bus)メモリやSD(Secure Digital)メモリカード等の取り外し可能な記憶媒体であってもよい。また、二次記憶装置1050は、クラウドストレージ(オンラインストレージ)やNAS(Network Attached Storage)、ファイルサーバ等であってもよい。
【0115】
出力I/F1060は、ディスプレイ、プロジェクタ、及びプリンタ等といった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインターフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力I/F1070は、マウス、キーボード、キーパッド、ボタン、及びスキャナ等といった各種の入力装置1020から情報を受信するためのインターフェースであり、例えば、USB等により実現される。
【0116】
また、出力I/F1060及び入力I/F1070はそれぞれ出力装置1010及び入力装置1020と無線で接続してもよい。すなわち、出力装置1010及び入力装置1020は、ワイヤレス機器であってもよい。
【0117】
また、出力装置1010及び入力装置1020は、タッチパネルのように一体化していてもよい。この場合、出力I/F1060及び入力I/F1070も、入出力I/Fとして一体化していてもよい。
【0118】
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、又は半導体メモリ等から情報を読み出す装置であってもよい。
【0119】
ネットワークI/F1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
【0120】
演算装置1030は、出力I/F1060や入力I/F1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
【0121】
例えば、コンピュータ1000がサーバ装置100として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部130の機能を実現する。また、コンピュータ1000の演算装置1030は、ネットワークI/F1080を介して他の機器から取得したプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行してもよい。また、コンピュータ1000の演算装置1030は、ネットワークI/F1080を介して他の機器と連携し、プログラムの機能やデータ等を他の機器の他のプログラムから呼び出して利用してもよい。
【0122】
〔9.その他〕
以上、本願の実施形態を説明したが、これら実施形態の内容により本発明が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
【0123】
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0124】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【0125】
例えば、上述したサーバ装置100は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をAPI(Application Programming Interface)やネットワークコンピューティング等で呼び出して実現するなど、構成は柔軟に変更できる。
【0126】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0127】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【0128】
1 情報処理システム
10 端末装置
100 サーバ装置
110 通信部
120 記憶部
130 制御部
131 取得部
132 作成部
133 統合学習部
134 推論部
135 提供部
図1
図2
図3
図4
図5
図6
図7
図8