以下、本発明の実施形態を図面を参照して説明する。以下の説明において、ユーザと商品との関係を表現する場合、“ユーザ・商品”と表現する。例えば、本発明におけるユーザ・商品マップ推定装置は、推定されるユーザと商品との関係を関連付けて表示する装置であることを示す。
実施形態1.
図1は、本発明によるユーザ・商品マップ推定装置の第一の実施形態の構成例を示すブロック図である。
本実施形態では、ユーザの行動メカニズム、および、単語間の関係性を表わす単語情報からユーザ・商品間の距離関係に制約を与え、ユーザおよび商品の単語空間上での位置を推定する。以下の説明では、ユーザの嗜好に応じた行動メカニズムとして、商品の購買(すなわち、購買メカニズム)を例示する。ただし、ユーザの嗜好に応じた行動は、購買に限られず、例えば、多くの商品の中から一の商品を評価、参照、検索、表示するといった行動も含まれる。
以下の説明では、ユーザのマップ空間上での位置を表わすベクトルをPで示し、商品のマップ空間上での位置を表わすベクトルをQで示す。以下、ベクトルPのことをユーザの隠れ特徴ベクトルと記し、ベクトルQのことを商品の隠れ特徴ベクトルと記すこともある。また、ベクトルPとベクトルQの間の距離をd(P,Q)で表す。この距離dは、例えばユークリッド距離や絶対値などにより算出される。
さらに、本実施形態では、各商品または各ユーザが有する(説明する)単語の意味的な内容を表すベクトルを単語ベクトルと記し、Vで表す。このベクトルは、各単語の意味的な近さにより定義されるベクトルであり、単語情報から推定される。例えば「シェパード」、「ドーベルマン」および「秋田犬」といった、似た文脈で使用される単語間の距離は近く、一方で「シェパード」と「防風林」のような全く別の文脈で使用される単語は遠くなるように設定される。このような単語ベクトルの推定は、Word2vecやfastText,Gloveなど、広く知られた推定技術により実現できる。そして、単語空間上へのマッピングにより、ユーザの隠れ特徴ベクトルおよび商品の隠れ特徴ベクトルに対して自然言語ベースの操作を行えるようになる。
本実施形態では、上述するユーザの隠れ特徴ベクトルPおよび商品の隠れ特徴ベクトルQを推定することを目標とする。
図1を参照すると、本実施形態のユーザ・商品マップ推定装置100は、商品情報入力部10と、単語情報入力部20と、学習データ入力部30と、推定部40と、出力部50と、記憶部60とを備えている。
記憶部60は、後述する推定部40が処理に利用する各種パラメータを記憶する。また、記憶部60は、商品情報入力部10、単語情報入力部20、および、学習データ入力部30が入力として受け付けた情報を記憶してもよい。記憶部60は、例えば、磁気ディスク等により実現される。
商品情報入力部10は、商品が備える特徴(属性)を表わす商品情報の入力を受け付ける。商品情報入力部10は、各商品の属性の入力を直接受け付けてもよいし、商品属性を含む商品情報を受け付けてもよい。商品情報として、例えば、商品に付与された説明文などが挙げられる。商品情報を受け付けた場合、商品情報入力部10は、商品情報から商品属性に関する単語を抽出する。商品属性に関する単語を抽出する方法は任意であり、商品情報入力部10は、例えば、形態素解析により、商品情報から商品属性に関する単語を抽出してもよい。
なお、商品情報入力部10は、商品情報の代わりに、ユーザ情報を入力として受け付けてもよい。ユーザ情報として、例えば、ユーザの職業や興味が挙げられる。ユーザ情報を受け付けた場合、商品情報入力部10は、ユーザ情報からユーザ属性に関する単語を抽出する。商品情報入力部10が、商品情報の代わりに、ユーザ情報を入力として受け付けた場合、以下、商品と記している箇所をユーザ、また、以下ユーザと記している箇所を商品と読み替えることで同じ効果を奏する。この場合、商品情報入力部10は、ユーザ情報入力部ということができる。以下の実施形態でも同様である。
単語情報入力部20は、単語情報の入力を受け付ける。単語情報入力部20は、単語情報として、各単語が示す単語ベクトルの入力を直接受け付けてもよいし、単語を含む文章の集合を受け付けてもよい。単語を含む文章の集合として、例えば、単語の辞書や、商品説明文、レビュー文章や、SNS(Social Networking Service )での投稿などが挙げられる。単語を含む文章の集合を受け付けた場合、単語情報入力部20は、単語を含む文章の集合から各単語の単語ベクトルを推定する。単語情報入力部20は、推定方法に、word2vecやfasttext、gloveなどの単語ベクトル推定技術を用いてもよい。
学習データ入力部30は、後述する推定部40がベクトルPおよびベクトルQの推定に用いる学習データを入力する。学習データは、ユーザと商品との間の関係性を示すデータであり、具体的には、ユーザの嗜好に応じて行動の対象になった商品を表わすデータである。例えば、ユーザの行動として購買行為に着目する場合、学習データとして、ユーザの嗜好により購買に結び付いたデータを示す購買データ(購買履歴)が用いられてもよい。
推定部40は、商品情報と学習データと単語情報とに基づいて、商品情報に対応した各ユーザの隠れ特徴ベクトルPおよび各商品の隠れ特徴ベクトルQを推定する。ここで、本実施形態では、学習データおよび単語情報からユーザ・商品間の距離関係に制約を与え、推定部40は、ユーザおよび商品の単語空間上での位置を推定する。具体的には、推定部40は、例えば、以下の式1に例示する損失関数を最小化(最適化)するP,Qを算出することでベクトルPおよびベクトルQを推定してもよい。
式1において、L(P,Q,Y)は、購買データに基づき、ユーザ・商品間の距離関係により算出される項である。なお、Yは、学習データ(購買データ)を表わす。
L(P,Q,Y)は、例えば、ユーザの隠れ特徴ベクトルPに対して、正例商品の隠れ特徴ベクトルとの距離が、負例商品の隠れ特徴ベクトルとの距離よりも遠いほど大きな値をとるように定義される。なお、正例商品および負例商品について、例えば、ユーザが購入した商品集合を正例商品、購入しなかったその他の商品集合を負例集合と扱ってもよい。
このように、推定部40は、ユーザの隠れ特徴ベクトルPと商品の隠れ特徴ベクトルQとの距離が、学習データYが示すその商品に対するユーザの嗜好を反映した距離になるように推定する。推定部40は、具体的には、以下に例示する式2によりL(P,Q,Y)を算出してもよい。
式2において、Puは、ユーザuの隠れ特徴ベクトル、QiおよびQjは、それぞれ正例商品iおよび負例商品jの隠れ特徴ベクトルを表す。また、Iu
+はユーザuの正例商品の集合、Iu
-は、ユーザuの負例商品の集合を表す。また、式2において、関数hは、引数が正の値の場合に引数と同じ値を返し、引数が負の値の場合には0を返す関数である。また、mは正例と負例の間の距離を調整するハイパーパラメータである。
また、式2において、wu,i,jは各ユーザu、正例商品i、および、負例商品jに対して定義される重みであり、正例商品の隠れ特徴ベクトルとの距離が、負例商品の隠れ特徴ベクトルとの距離よりも遠い場合の項の重さを調整する。例えば、すべての組で同じ値がwu,i,jに定義されてもよいし、より嗜好が強いと推察される正例商品に対して、wu,i,jが大きく定義されてもよい。
このように、推定部40は、学習データに基づくユーザの正例商品または負例商品を、商品に対するユーザの嗜好として用いる。そして、推定部40は、ユーザの隠れ特徴ベクトルと正例商品または負例商品の隠れ特徴ベクトルとの距離によって定義される項を含む損失関数を最小化するように、隠れ特徴ベクトルを推定してもよい。
一方、推定部40は、単語情報が示す関係性が近いほど、商品の隠れ特徴ベクトルとその商品の単語ベクトルとの距離が近くなるように隠れ特徴ベクトルを推定する。式1におけるL(Q,V)は、各商品の隠れ特徴ベクトルQと、各商品の属性と、単語ベクトルVとに基づき、商品の隠れ特徴ベクトルが、その商品が有する属性に結び付いた単語ベクトルの近くにあるほど小さい値をとる。推定部40は、具体的には、以下に例示する式3によりL(Q,V)を算出してもよい。すなわち、推定部40は、単語ベクトルと商品の隠れ特徴ベクトルとの距離によって定義される項を含む損失関数を最小化するように、隠れ特徴ベクトルを推定してもよい。
式3において、iは、商品のインデックス、kは、商品属性のインデックスを表す。また、wikは、商品iが商品属性kを有しているかどうかを表す重みであり、0または1のバイナリ値でもよいし、度合いを表す正の実数でもよい。αは、L(P,Q,Y)とL(Q,V)の寄与の大きさを調整するハイパーパラメータである。
推定部40は、上記に示す式1の損失関数を最小化(最適化)する手法により、ベクトルPおよびベクトルQを算出してもよい。この場合、推定部40は、最急降下法やニュートン法により、損失関数が最大になるPおよびQを算出してもよい。
出力部50は、マップ空間における各ユーザの隠れ特徴ベクトルおよび各商品の隠れ特徴ベクトルを出力する。図2は、出力結果の例を示す説明図である。図2に示す例では、ユーザ、商品および単語が同一の空間上にマップされた例を示す。図2に例示する三角印が、単語ベクトルを示し、領域R1に示す記号が、商品の隠れ特徴ベクトルを示す。また、領域R2に存在する記号が、ユーザの隠れ特徴ベクトルを示す。なお、出力部50は、ユーザによって指定されたユーザ、商品または単語を受け付けて、指定されたユーザ、商品または単語の近傍のユーザ、商品または単語を出力するようにしてもよい。
商品情報入力部10と、単語情報入力部20と、学習データ入力部30と、推定部40と、出力部50とは、プログラム(ユーザ・商品マップ推定プログラム)に従って動作するコンピュータのプロセッサ(例えば、CPU(Central Processing Unit )、GPU(Graphics Processing Unit))によって実現される。
例えば、プログラムは、記憶部60に記憶され、プロセッサは、そのプログラムを読み込み、プログラムに従って、商品情報入力部10、単語情報入力部20、学習データ入力部30、推定部40および出力部50として動作してもよい。また、ユーザ・商品マップ推定装置100の機能がSaaS(Software as a Service )形式で提供されてもよい。
商品情報入力部10と、単語情報入力部20と、学習データ入力部30と、推定部40と、出力部50とは、それぞれが専用のハードウェアで実現されていてもよい。また、各装置の各構成要素の一部又は全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組合せによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
また、ユーザ・商品マップ推定装置100の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本実施形態のユーザ・商品マップ推定装置の動作を説明する。図3は、本実施形態のユーザ・商品マップ推定装置100の動作例を示すフローチャートである。商品情報入力部10は、商品情報を入力する(ステップS11)。単語情報入力部20は、単語情報を入力する(ステップS12)。また、学習データ入力部30は、学習データを入力する(ステップS13)。
推定部40は、商品情報と単語情報と学習データとに基づいて、ユーザの隠れ特徴ベクトルPおよび商品の隠れ特徴ベクトルQを推定する(ステップS14)。損失関数が上記に示す式1で表される場合、推定部40は、損失関数を最小化することでユーザの隠れ特徴ベクトルPおよび商品の隠れ特徴ベクトルQを推定してもよい。そして、推定部40は、推定処理の収束判定を行う(ステップS15)。推定部40は、例えば、損失関数値など、最小化しようとする値の変化量が予め定めた値や割合を下回った場合に、処理が収束したと判定してもよい。収束したと判定された場合(ステップS15におけるYes)、推定部40は、推定処理を終了する。一方、収束したと判定されなかった場合(ステップS15におけるNo)、推定部40は、ステップS14以降の処理を繰り返す。
以上のように、本実施形態では、学習データ入力部30が、学習データを入力し、推定部40が、商品情報と単語情報と学習データとに基づいて、ユーザおよび商品のそれぞれについて隠れ特徴ベクトルを推定する。その際、推定部40が、ユーザの隠れ特徴ベクトルと商品の隠れ特徴ベクトルとの距離が学習データが示すその商品に対するユーザの嗜好を反映した距離になるようにするとともに、単語情報が示す関係性が近いほど、商品の隠れ特徴ベクトルとその商品の特徴を表わす単語ベクトルとの距離が近くなるように隠れ特徴ベクトルを推定する。よって、商品の特徴がその商品を説明する文章上に現れていない場合であっても、その特徴を考慮したユーザと商品との関係を空間上にマップできる。
また、商品情報入力部10(ユーザ情報入力部)が、商品情報の代わりにユーザ情報を入力として受け付けた場合、推定部40が、ユーザ情報と単語情報と学習データとに基づいて、ユーザおよび商品のそれぞれについて隠れ特徴ベクトルを推定する。その際、推定部40が、ユーザの隠れ特徴ベクトルと商品の隠れ特徴ベクトルとの距離が学習データが示すその商品に対するユーザの嗜好を反映した距離になるようにするとともに、ユーザ情報が示す関係性が近いほど、ユーザの隠れ特徴ベクトルとそのユーザの特徴を表わす単語ベクトルとの距離が近くなるように隠れ特徴ベクトルを推定する。よって、ユーザの特徴がそのユーザを説明する文章上に現れていない場合であっても、その特徴を考慮したユーザと商品との関係を空間上にマップできる。
例えば、損失関数が上記に示す式1で表される場合、学習データ入力部30が、学習データの入力を受け付けると、推定部40が、商品情報、単語情報および学習データに基づいて、ユーザの隠れ特徴ベクトルPおよび商品の隠れ特徴ベクトルQを推定する。このとき、学習データに基づくベクトルPとベクトルQとの間の推定により、ユーザの正例商品はそのユーザの近傍に配置される。一方で、ユーザの負例商品はそのユーザから離れた位置に配置される。あるユーザの隠れ特徴ベクトルPに対して、二つの商品の隠れ特徴ベクトルをQ1,Q2と記した場合、距離の三角不等式によりd(P,Q1)+d(P,Q2)≧d(Q1,Q2)が成立する。したがって、正例商品同士は、それぞれ近傍に配置される。これにより、結果として、ユーザ行動を基準とした商品間の類似性がマップ空間上に反映される。
また、本実施形態では、商品の隠れ特徴ベクトルQと、商品情報に基づく単語ベクトルVとを近傍に配置する制限が課される。結果、商品の隠れ特徴ベクトルQは、商品情報に基づく単語ベクトルの近くに配置される。したがって、商品のマップ空間上での位置は、商品が有する単語の意味的な位置を反映する。上述する学習データに基づくQへの制限により、各商品の隠れ特徴ベクトルQは、商品が有する単語ベクトルの単純な平均値ではなく、ユーザ嗜好を反映した位置になっている。
図4は、ユーザ、商品および単語の隠れ特徴ベクトルの関係例を示す説明図である。図4に例示するように、商品情報として「コク」という単語を有するビールA、および、商品情報として「香り」という単語を有するビールBを考える。単語ベクトルにしたがった配置では、ビールAは「コク」の単語ベクトルと同じ位置に、またビールBは「香り」の単語ベクトルと同じ位置にマップされる。ここで、例えば、ビールAを好むユーザの一部が、ビールBも正例商品としていた場合、式2に示す制約は、このユーザおよびビールBの隠れ特徴ベクトルを互いに近づけようとする。
図4に示す例では、各ユーザの正例商品を実線で結び、各商品の有する単語を点線で記している。図4に示す例では、それぞれの線の間に、上記に示す式2および式3による算出結果の引力が働き、正確な商品の隠れ特徴ベクトルの位置が推定されると考えられる。ただし、これに加えて、ユーザの位置は、負例商品からの斥力も加味されて推定される。その結果、推定されるビールBの隠れ特徴ベクトルは、「香り」の単語ベクトルの位置から、「コク」の単語ベクトル方向へずれた点に位置付けられる。したがって、本実施形態によれば、商品が有する隠れた特徴(ここでの例では、ビールBの「コク」)を推定したマップを得ることが可能になる。
また、出力されたユーザの隠れ特徴ベクトルPおよび商品の隠れ特徴ベクトルQは、単語空間上へのマップになっている。したがって、自由に単語ベクトルを付け加えたり差し引いたりすることで、新たな隠れ特徴ベクトルを算出できる。例えば、あるビールに、「レモン風味」を付け加えたり、「ビール」という特徴を差し引いて「紅茶」という特徴を付け加えたりすることが、隠れ特徴ベクトルと単語ベクトル間の演算により算出可能である。
ある商品の隠れ特徴ベクトルQに対して、自然言語ベースでの操作後、得られた隠れ特徴ベクトルの近傍にある商品、ユーザまたは単語を観察することで、操作後の商品の、類似商品またはターゲットになるユーザを知ることができる。例えば、操作後の商品を最も好みそうなユーザは、操作後の隠れ特徴ベクトルに最も近い隠れ特徴ベクトルをもつユーザと考えられる。また、操作後の商品に最も近い商品は、操作後の隠れ特徴ベクトルに最も近い隠れ特徴ベクトルをもつ商品と考えられる。また、操作後の商品に最も近い属性は、操作後の隠れ特徴ベクトルに最も近い隠れ特徴ベクトルを有する単語と考えられる。また、出力部50は、操作後の商品の隠れ特徴ベクトルQから、ある定められた距離内に位置づけられているユーザ、商品または単語を列挙してもよい。
また、同様の操作はユーザに対しても行うことができる。例えば、あるユーザに、「結婚」という特徴を付け加えたり、「学生」という特徴を差し引いて「IT業務」という特徴を付け加えたりすることが、隠れ特徴ベクトルと単語ベクトル間の演算により算出可能である。
用意されている単語空間は、外部データを用いて学習した単語空間を利用している。また、外部データは、巨大なコーパスにより作成され、我々が日常使用するほとんどの単語についても、単語ベクトルが割り当てられていると想定される。そのため、商品またはユーザ全体の集合が属性として有する単語集合以上の柔軟な特徴の足し引きを行うことができる。
よって、本実施形態によれば、商品の文章上で現れていない特徴の効果を推定しつつ、ユーザおよび商品の関係を自然言語ベースでの操作が可能な空間上にマップすることができる。
例えば、本実施形態の学習データとして、ID-POS(Point of sale system)やECサイト、動画視聴サイト、Web回遊ログなどに存在するユーザの行動データや、レビューデータなどを使用することができる。また、単語情報として、単語の辞書や、商品説明文、レビュー文章や、SNSでの投稿などから得られる単語ベクトルを使用することができる。このようなデータを用い、本実施形態のマッピングを行うことで、セグメンテーション、ターゲッティング、ポジショニング、ユーザの近傍商品を利用した推薦などが可能になる。
また、本実施形態によれば、明文化されていない商品属性が推定され、プロモーションや商品開発に利用することができる。また、本実施形態によれば、ある商品を起点に、自然言語ベースでの属性変更を行った際に得られる新商品の、ターゲットユーザや類似商品や連想される単語を出力できる。そのため、新商品開発のターゲット把握やプロモーション施策考案を行うことができる。また、ライフイベントをはじめとするユーザ性質の変化に対しても、ユーザに対する自然言語ベースでの属性変更により、より効果的な商品推薦やプロモーションが可能になる。
実施形態2.
次に、本発明によるユーザ・商品マップ推定装置の第二の実施形態を説明する。第一の実施形態では、ユーザおよび商品の隠れ特徴ベクトルを事前に用意した単語情報をもとに推定した。一方、このように事前に用意された単語の意味的な関係性を表す単語ベクトルが、必ずしもユーザと商品間の関係の上では成り立たない場合がある。
例えば、「辛い」や「甘い」といった言葉は、単語空間上では近い位置に存在する場合が想定される。その理由は、これらの言葉が出てくる文脈が似通っているためである。すなわち、「このカレーは辛い」といった文章は、「このカレーは甘い」のように、「甘い」という単語で置き換え可能であるため、単語ベクトルとして、「甘い」と「辛い」は近傍に存在することが想定される。一方、あるサービスにおいて、甘い味の商品と辛い味の商品それぞれを嗜好するユーザ層が異なっているという状況が想定される。しかし、「甘い」と「辛い」の単語ベクトルの近さが理由となり、第一の実施形態によって得られた甘口の商品の近傍に、辛い味を好むユーザが配置されてしまう可能性がある。
図5は、単語空間が変換されない場合のユーザ、商品および単語の隠れ特徴ベクトルの関係例を示す説明図である。例えば、図5では、「辛い」、「甘い」および「ケーキ」という単語の近傍のユーザおよび商品のマップを例示している。図5に示す例は「辛い」および「甘い」が単語ベクトルとして近傍に配置され、「ケーキ」が遠くに配置されている。また、図5に示す例では「甘い」という属性を有する商品の近傍を円で示している。この場合、「甘い」という属性の近傍のユーザや近傍の商品に「ケーキ」を好むユーザ、「ケーキ」という特徴を有する商品が表れにくくなる。加えて、近傍のユーザや商品に、「辛い」商品を好むユーザや、「辛い」商品が混入してしまう。
そこで、本実施形態では、単語空間をユーザの嗜好に見合うように変形することにより、単語ベクトル間の距離関係を補正できるようにすることを目的とする。
図6は、本発明によるユーザ・商品マップ推定装置の第二の実施形態の構成例を示すブロック図である。本実施形態のユーザ・商品マップ推定装置200は、商品情報入力部10と、単語情報入力部20と、学習データ入力部30と、推定部42と、出力部52と、記憶部60とを備えている。すなわち、本実施形態のユーザ・商品マップ推定装置200は、第一の実施形態のユーザ・商品マップ推定装置100と比較し、推定部40および出力部50の代わりに、推定部42および出力部52を備えている点において異なる。
推定部42は、第一の実施形態の推定部40と同様、商品情報と学習データとに基づいて、商品情報に対応した各ユーザの隠れ特徴ベクトルPおよび各商品の隠れ特徴ベクトルQを推定する。さらに、本実施形態では、推定部42は、入力された単語空間を、あるベクトル空間に射影する関数fを推定する。すなわち、関数fは入力された単語空間の点Vに対して、あるベクトル空間上のある点Wをf(V)=Wのような形で対応付ける関数である。
関数fは任意であり、関数fを、あるパラメータθによって決まる関数としてもよい。
図7は、関数fにより単語空間を変換する例を示す説明図である。変換前の単語空間では、「辛い」と「甘い」が単語ベクトルとして近傍に配置され、「ケーキ」が遠くに配置されている。図7に示す例では、関数fが、「甘い」と「ケーキ」が変換後の単語ベクトルとして近傍に配置し、「辛い」を「甘い」および「ケーキ」の遠くに配置する変換として定義されていることを示す。
推定部42は、商品情報と学習データと単語情報とに基づいて、商品情報に対応した各ユーザの隠れ特徴ベクトルPおよび各商品の隠れ特徴ベクトルQ、並びに、変換fのパラメータθを推定する。推定部42は、第一の実施形態と同様に、学習データおよび単語情報からユーザ・商品間の距離関係に制約を与え、ユーザおよび商品の単語空間上での位置を推定する。具体的には、推定部42は、以下の式4に例示する損失関数を最小化(最適化)するP、Q,θ算出することでベクトルP、ベクトルQ,およびパラメータθを推定してもよい。
式4において、L(P,Q,Y)は、第一の実施形態と同様、購買データに基づき、ユーザ・商品間の距離関係により算出される項である。また、L(P,Q,Y)は、第一の実施形態と同様、正例商品の隠れ特徴ベクトルとの距離が、負例商品の隠れ特徴ベクトルとの距離よりも遠いほど大きな値をとるように定義されてもよい。具体的には、L(P,Q,Y)が、上述する式2のように定義されてもよい。
L(Q,V,θ)は、各商品の隠れ特徴ベクトルQ、各商品の属性、単語ベクトル並びに関数fおよび関数fのパラメータθに基づき、商品の隠れ特徴ベクトルQと、その商品が有する属性に結び付いた単語ベクトルを関数fにより変換して得られるベクトルとが、近くにあるほど小さい値をとる。すなわち、推定部42は、関数fにより単語ベクトルVを変換したベクトルと、商品の隠れ特徴ベクトルQとの距離によって定義される項を含む損失関数を最小化するように、隠れ特徴ベクトルを推定してもよい。推定部42は、具体的には、以下に例示する式5によりL(Q,V,θ)を算出してもよい。
i、k、wik、およびαの内容は、上述する式3と同様と同様である。関数fの具体例として、例えば、アフィン変換が挙げられる。関数fをアフィン変換としたとき、f(Vk,θ)は行列Aとベクトルbにより、VA+bのように表現される。この場合、パラメータθは、行列Aの各要素およびベクトルbの各要素である。
推定部42は、上記に示す式4の損失関数を最小化(最適化)する手法により、ベクトルPおよびベクトルQ並びにパラメータθを算出してもよい。すなわち、推定部42は、関数fにより単語ベクトルVを変換したベクトルと、商品の隠れ特徴ベクトルQとの距離によって定義される項を含む損失関数を最小化するように、隠れ特徴ベクトルおよび関数fのパラメータθを推定してもよい。この場合、推定部42は、最急降下法やニュートン法により、損失関数が最大になるPおよびQを算出してもよい。
出力部52は、各ユーザの隠れ特徴ベクトルおよび各商品の隠れ特徴ベクトル並びに関数fにより変換された単語ベクトルを出力する。また、出力部52は、関数fのパラメータを出力してもよい。図8は、出力結果の例を示す説明図である。図8に示す例では、ユーザ、商品および単語が同一の空間上にマップされた例を示す。なお、出力部52は、ユーザによって指定されたユーザ、商品または単語を受け付けて、指定されたユーザ、商品または単語の近傍のユーザ、商品または単語を出力するようにしてもよい。
商品情報入力部10と、単語情報入力部20と、学習データ入力部30と、推定部42と、出力部52とは、プログラム(ユーザ・商品マップ推定プログラム)に従って動作するコンピュータのプロセッサによって実現される。
次に、本実施形態のユーザ・商品マップ推定装置の動作を説明する。図9は、本実施形態のユーザ・商品マップ推定装置200の動作例を示すフローチャートである。商品情報、単語情報および学習データを入力するステップS11からステップS13までの処理は、図3に例示する処理と同様である。
推定部42は、商品情報と単語情報と学習データとに基づいて、ユーザの隠れ特徴ベクトルPおよび商品の隠れ特徴ベクトルQ並びに単語空間を変換する関数fのパラメータθを推定する(ステップS24)。損失関数が上記に示す式4で表される場合、推定部42は、損失関数を最小化(最適化)することでユーザの隠れ特徴ベクトルPおよび商品の隠れ特徴ベクトルQを推定してもよい。
以降、ステップS25において、図2におけるステップS15と同様に、推定部42は、収束判定を行う。すなわち、収束したと判定された場合(ステップS25におけるYes)、推定部42は、推定処理を終了する。一方、収束したと判定されなかった場合(ステップS25におけるNo)、推定部42は、ステップS24以降の処理を繰り返す。
以上のように、本実施形態では、推定部42が、関数fにより単語ベクトルを変換したベクトルと、商品の隠れ特徴ベクトルQとの距離によって定義される項を含む損失関数を最小化するように、隠れ特徴ベクトル(および関数fのパラメータθ)を推定する。よって、第一の実施形態の効果に加え、単語空間をユーザの嗜好に見合うように変形できる。
すなわち、本実施形態では、推定部42が、商品情報と単語情報と学習データと単語情報に基づいて、ユーザの隠れ特徴ベクトルPおよび商品の隠れ特徴ベクトルQ並びに単語空間を変換する関数fのパラメータθを推定する。
このとき、第一の実施形態と同様に、学習データに基づくベクトルPとベクトルQとの間の推定により、ユーザの正例商品はそのユーザの近傍に配置される。一方で、ユーザの負例商品はそのユーザから離れた位置に配置される。結果として、ユーザ行動を基準とした商品間の類似性がマップ空間上に反映される。
また、本実施形態では、商品の隠れ特徴ベクトルQと、商品情報に基づく単語ベクトルVとを近傍に配置する制限が課される。結果、商品の隠れ特徴ベクトルQは、商品情報に基づく単語ベクトルの近くに配置される。したがって、商品のマップ空間上での位置は、商品が有する単語の意味的な位置を反映する。上述する学習データに基づくQへの制限により、各商品の隠れ特徴ベクトルQは、商品が有する単語ベクトルの単純な平均値ではなく、ユーザ嗜好を反映した位置になっている。
さらに、本実施形態では、関数fによって、入力された単語ベクトルが、ユーザの嗜好に合うように補正される。図10は、単語空間が変換された場合のユーザ、商品および単語の隠れ特徴ベクトルの関係例を示す説明図である。図10では、「辛い」、「甘い」および「ケーキ」という単語の近傍のユーザおよび商品のマップが、本実施形態による処理でどのように補正されるかを例示している。変換前のマップでは、「辛い」および「甘い」が単語ベクトルとして近傍に配置され、「ケーキ」が、「辛い」および「甘い」の単語ベクトルから離れた点に配置されている。この場合、「甘い」という属性の近傍のユーザや近傍の商品に「ケーキ」を好むユーザ、「ケーキ」という特徴を有する商品が表れにくくなる。加えて、近傍のユーザや商品に、「辛い」商品を好むユーザや、「辛い」商品が混入してしまう。
一方、本実施形態によれば、関数fにより、「甘い」および「ケーキ」という単語が変換後の単語ベクトルとして近傍に配置され、「甘い」または「ケーキ」から、「辛い」のベクトルは遠くに配置される。その結果、この場合、「甘い」という属性の近傍のユーザや近傍の商品に「ケーキ」を好むユーザ、「ケーキ」という特徴を有する商品が表れるようになる。また、加えて、「甘い」という属性のベクトルの近傍のユーザや商品として、「辛い」商品を好むユーザや、「辛い」商品が混入しにくくなる。
本実施形態において、出力されたユーザおよび商品の隠れ特徴ベクトルは、関数fにより変換された単語空間上へのマップになっている。もともとの単語ベクトルは、関数fにより、変換後の単語空間のベクトルが対応付けられている。したがって、本実施形態においても、自由に単語ベクトルを付け加えたり差し引いたりすることにより、新たな隠れ特徴ベクトルを算出できる。具体的には、ある単語ベクトルをマップ空間上のあるベクトルに付け加える場合、その単語ベクトルに対し関数fで変換して得られたベクトルを、マップ空間上のベクトルに付け加えればよい。
よって、第一の実施形態の効果に加え、ユーザの嗜好により補正された単語空間が、操作可能なマップ空間として得られる。また、その空間中でユーザおよび商品のマップを得ることが可能になる。
実施形態3.
次に、本発明によるユーザ・商品マップ推定装置の第三の実施形態を説明する。第一の実施形態および第二の実施形態では、ユーザの隠れ特徴ベクトルおよび商品の隠れ特徴ベクトルが出力された。出力されたユーザおよび商品の隠れ特徴ベクトルは、単語空間上へのマップになっている。したがって、自由に単語ベクトルを付け加えたり差し引いたりすることで、新たな隠れ特徴ベクトルを算出できる。例えば、あるビールに、「レモン風味」という特徴を付け加えたり、「ビール」特徴を差し引いて「紅茶」という特徴を付け加えたりすることが、隠れ特徴ベクトルと単語ベクトル間の演算により算出可能である。しかし、このような計算と結果の観察は、装置のユーザにとっては必ずしも直観的な操作ではない。
そこで、本実施形態では、出力された隠れ特徴ベクトルに操作を施すことで、より直観的に結果の観察をできるようにすることを目的とする。
図11は、本発明によるユーザ・商品マップ推定装置の第三の実施形態の構成例を示すブロック図である。本実施形態のユーザ・商品マップ推定装置300は、商品情報入力部10と、単語情報入力部20と、学習データ入力部30と、推定部42と、出力部52と、記憶部60と、出力操作部70を備えている。すなわち、本実施形態のユーザ・商品マップ推定装置300は、第二の実施形態のユーザ・商品マップ推定装置200と比較し、出力操作部70を備えている点において異なる。
なお、推定部42および出力部52が、それぞれ第一の実施形態における推定部40および出力部50により実現されてもよい。
出力操作部70は、隠れ特徴ベクトルを出力する対象の商品またはユーザの情報を受け付ける。出力操作部70は、例えば、ユーザIDや名前をユーザの情報として受け付けてもよい。出力操作部70は、受け付けた入力に基づいて、対応する商品またはユーザの隠れ特徴ベクトルを出力する。
また、出力操作部70は、単語空間上で定義されているいずれかの単語および演算の入力を受け付ける。出力操作部70は、加算や減算などのベクトル間の演算を受け付けてもよいし、その加算や減算の度合いを示す数値を受け付けてもよい。出力操作部70は、上述する商品またはユーザの情報により特定された隠れ特徴ベクトルと、入力された演算の対象とする単語の隠れ特徴ベクトルと、入力された演算により、新たな隠れ特徴ベクトルを算出する。
例えば、商品名に「商品A」、演算に「-」(減算)、単語に「カフェイン」が入力されたとする。この場合、出力操作部70は、「商品A」の隠れ特徴ベクトルから、「カフェイン」の隠れ特徴ベクトルを減算する演算を行う。そして、出力操作部70は、上述する演算後の隠れ特徴ベクトルと、マップ空間上に配置されているユーザ、商品または単語の隠れ特徴ベクトルとの距離を計算し、より近い隠れ特徴ベクトルを有するユーザ、商品または単語を特定する。出力操作部70は、この計算処理を、すべてのユーザ、商品および単語について行ってもよいし、あらかじめユーザによって与えられた範囲(例えばユーザのみ、商品のみ、特定のカテゴリの商品のみ、など)を対象に行ってもよい。
出力操作部70は、特定されたユーザ、商品または単語の隠れ特徴ベクトルをユーザが視認しやすい態様で出力する。出力操作部70は、例えば、上述する演算後の隠れ特徴ベクトルからの距離が近い順に、商品名や商品イメージを並べて表示してもよい。他にも、出力操作部70は、例えば、マップ空間上で得られた隠れ特徴ベクトルの点およびその近傍にあると判定されたユーザ、商品または単語を、主成分分析やtSNEといった手法によって低次元に射影されたマップ空間上に強調して表示してもよい。
商品情報入力部10と、単語情報入力部20と、学習データ入力部30と、推定部42と、出力部52と、出力操作部70とは、プログラム(ユーザ・商品マップ推定プログラム)に従って動作するコンピュータのプロセッサによって実現される。
次に、本実施形態のユーザ・商品マップ推定装置の動作を説明する。図12は、本実施形態のユーザ・商品マップ推定装置300の動作例を示すフローチャートである。各種情報の入力並びに隠れ特徴ベクトルおよび関数fのパラメータθを推定するステップS11からステップS25までの処理は、図9に例示する処理と同様である。
出力操作部70は、商品またはユーザの情報、並びに、単語空間上で定義されているいずれかの単語および演算の入力を受け付ける(ステップS36)。出力操作部70は、入力された商品またはユーザの情報から特定された隠れ特徴ベクトルと、入力された単語に割り当てられた隠れ特徴ベクトルと、入力された演算により、新たな隠れ特徴ベクトルを算出する(ステップS37)。そして、出力操作部70は、マップ空間上に配置されているユーザ、商品または単語の隠れ特徴ベクトルと算出された隠れ特徴ベクトルとの距離を算出する(ステップS38)。
出力操作部70は、上述する距離の計算に基づき、近傍のユーザ、商品または単語の隠れ特徴ベクトルをユーザに視認しやすい態様で出力する(ステップS39)。
以上のように、本実施形態では、出力操作部70が、隠れ特徴ベクトルを出力する対象の商品またはユーザの情報、並びに、演算の対象とする単語および演算の入力を受け付け、商品またはユーザの隠れ特徴ベクトルに対して、受け付けた単語の隠れ特徴ベクトルに関する演算を行った結果を出力する。
すなわち、本実施形態では、出力操作部70が、ユーザ入力に基づいて、ある商品またはユーザに対する、自然言語ベースで操作した結果の出力を行う。よって、第一の実施形態および第二の実施形態の効果に加え、本実施形態では、出力された隠れ特徴ベクトルに自然言語ベースでの操作を施すことで、より直観的に結果の観察ができる。
次に、本発明の概要を説明する。図13は、本発明によるユーザ・商品マップ推定装置の概要を示すブロック図である。本発明によるユーザ・商品マップ推定装置80(例えば、ユーザ・商品マップ推定装置100)は、ユーザの嗜好に応じて行動の対象になった商品を表わす学習データ(例えば、購買データ)を入力する入力部81(例えば、学習データ入力部30)と、商品が備える特徴を表わす商品情報と、単語間の関係性を表す単語情報と、学習データとに基づいて、マップ空間上の位置を表わす隠れ特徴ベクトルを、ユーザおよび商品のそれぞれについて推定する推定部82(例えば、推定部40、推定部42)とを備えている。
推定部82は、ユーザの隠れ特徴ベクトル(例えば、隠れ特徴ベクトルP)と商品の隠れ特徴ベクトル(例えば、隠れ特徴ベクトルQ)との距離が学習データが示すその商品に対するユーザの嗜好を反映した距離になるようにするとともに、単語情報が示す関係性が近いほど、商品の隠れ特徴ベクトルと商品情報が表わすその商品の特徴を示す単語に基づいて推定される単語ベクトルとの距離が近くなるように(例えば、式1を用いて)隠れ特徴ベクトルを推定する。
そのような構成により、商品の特徴がその商品を説明する文章上に現れていない場合であっても、その特徴を考慮したユーザと商品との関係を空間上にマップできる。
具体的には、推定部82は、単語ベクトルと商品の隠れ特徴ベクトルとの距離によって定義される項(例えば、上述する式3)を含む損失関数(例えば、上述する式1)を最小化するように、隠れ特徴ベクトルを推定してもよい。
また、推定部82は、学習データに基づくユーザの正例商品または負例商品を、商品に対するユーザの嗜好として用いて、ユーザの隠れ特徴ベクトルと正例商品または負例商品の隠れ特徴ベクトルとの距離によって定義される項(例えば、上述する式2)を含む損失関数(例えば、上述する式1)を最小化するように、隠れ特徴ベクトルを推定してもよい。
また、推定部82は、変換関数(例えば、関数f)により単語ベクトルを変換したベクトルと、商品の隠れ特徴ベクトルとの距離によって定義される項を含む損失関数(例えば、上述する式4)を最小化するように、隠れ特徴ベクトルを推定してもよい。
また、推定部82は、変換関数により単語ベクトルを変換したベクトルと、商品の隠れ特徴ベクトルとの距離によって定義される項を含む損失関数を最小化するように、隠れ特徴ベクトルおよび変換関数のパラメータ(例えば、パラメータθ)を推定してもよい。
また、ユーザ・商品マップ推定装置80は、変換関数のパラメータを出力する出力部(例えば、出力部52)を備えていてもよい。
また、ユーザ・商品マップ推定装置80は、マップ空間における各ユーザの隠れ特徴ベクトルおよび各商品の隠れ特徴ベクトルを出力する出力部(例えば、出力部50)を備えていてもよい。
また、ユーザ・商品マップ推定装置80は、隠れ特徴ベクトルを出力する対象の商品またはユーザの情報、並びに、演算の対象とする単語および演算の入力を受け付け、商品またはユーザの隠れ特徴ベクトルに対して、受け付けた単語の隠れ特徴ベクトルに関する演算を行った結果を出力する出力操作部(例えば、出力操作部70)を備えていてもよい。
具体的には、出力操作部は、演算の結果得られたベクトルの近傍に配置されたユーザ、商品または単語を出力してもよい。
また、推定部82は、商品が有する特徴を操作可能なマップ空間上の位置を表わす隠れ特徴ベクトルを、ユーザおよび商品のそれぞれについて推定してもよい。
また、本発明によるユーザ・商品マップ推定装置80が、商品情報の代わりに、または、商品情報とともに、ユーザ情報を用いて隠れ特徴ベクトルを推定してもよい。この場合、入力部81(例えば、学習データ入力部30)は、ユーザの嗜好に応じて行動の対象になった商品を表わす学習データ(例えば、購買データ)を入力し、推定部82(例えば、推定部40、推定部42)は、ユーザが備える特徴を表わすユーザ情報と、単語間の関係性を表す単語情報と、学習データとに基づいて、マップ空間上の位置を表わす隠れ特徴ベクトルを、ユーザおよび商品のそれぞれについて推定する。
そして、推定部82は、ユーザの隠れ特徴ベクトル(例えば、隠れ特徴ベクトルP)と商品の隠れ特徴ベクトル(例えば、隠れ特徴ベクトルQ)との距離が学習データが示すその商品に対するユーザの嗜好を反映した距離になるようにするとともに、ユーザ情報が示す関係性が近いほど、ユーザの隠れ特徴ベクトルとユーザ情報が表わすそのユーザの特徴を示す単語に基づいて推定される単語ベクトルとの距離が近くなるように(例えば、式1を用いて)隠れ特徴ベクトルを推定する。
そのような構成により、ユーザの特徴がそのユーザを説明する文章上に現れていない場合であっても、その特徴を考慮したユーザと商品との関係を空間上にマップできる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)ユーザの嗜好に応じて行動の対象になった商品を表わす学習データを入力する入力部と、商品が備える特徴を表わす商品情報と、単語間の関係性を表す単語情報と、前記学習データとに基づいて、マップ空間上の位置を表わす隠れ特徴ベクトルを、ユーザおよび商品のそれぞれについて推定する推定部とを備え、前記推定部は、ユーザの前記隠れ特徴ベクトルと商品の前記隠れ特徴ベクトルとの距離が前記学習データが示す当該商品に対するユーザの嗜好を反映した距離になるようにするとともに、前記単語情報が示す関係性が近いほど、商品の前記隠れ特徴ベクトルと前記商品情報が表わす当該商品の特徴を示す単語に基づいて推定される単語ベクトルとの距離が近くなるように前記隠れ特徴ベクトルを推定することを特徴とするユーザ・商品マップ推定装置。
(付記2)推定部は、単語ベクトルと商品の隠れ特徴ベクトルとの距離によって定義される項を含む損失関数を最小化するように、隠れ特徴ベクトルを推定する付記1記載のユーザ・商品マップ推定装置。
(付記3)推定部は、学習データに基づくユーザの正例商品または負例商品を、商品に対するユーザの嗜好として用いて、ユーザの隠れ特徴ベクトルと前記正例商品または前記負例商品の隠れ特徴ベクトルとの距離によって定義される項を含む損失関数を最小化するように、隠れ特徴ベクトルを推定する付記1または付記2記載のユーザ・商品マップ推定装置。
(付記4)推定部は、変換関数により単語ベクトルを変換したベクトルと、商品の隠れ特徴ベクトルとの距離によって定義される項を含む損失関数を最小化するように、隠れ特徴ベクトルを推定する付記1から付記3のうちのいずれか1つに記載のユーザ・商品マップ推定装置。
(付記5)推定部は、変換関数により単語ベクトルを変換したベクトルと、商品の隠れ特徴ベクトルとの距離によって定義される項を含む損失関数を最小化するように、隠れ特徴ベクトルおよび前記変換関数のパラメータを推定する付記1から付記4のうちのいずれか1つに記載のユーザ・商品マップ推定装置。
(付記6)変換関数のパラメータを出力する出力部を備えた付記5記載のユーザ・商品マップ推定装置。
(付記7)マップ空間における各ユーザの隠れ特徴ベクトルおよび各商品の隠れ特徴ベクトルを出力する出力部を備えた付記1から付記6のうちのいずれか1つに記載のユーザ・商品マップ推定装置。
(付記8)隠れ特徴ベクトルを出力する対象の商品またはユーザの情報、並びに、演算の対象とする単語および演算の入力を受け付け、前記商品またはユーザの隠れ特徴ベクトルに対して、受け付けた単語の隠れ特徴ベクトルに関する前記演算を行った結果を出力する出力操作部を備えた付記1から付記7のうちのいずれか1つに記載のユーザ・商品マップ推定装置。
(付記9)出力操作部は、演算の結果得られたベクトルの近傍に配置されたユーザ、商品または単語を出力する付記8記載のユーザ・商品マップ推定装置。
(付記10)推定部は、商品が有する特徴を操作可能なマップ空間上の位置を表わす隠れ特徴ベクトルを、ユーザおよび商品のそれぞれについて推定する付記1から付記9のうちのいずれか1つに記載のユーザ・商品マップ推定装置。
(付記11)ユーザの嗜好に応じて行動の対象になった商品を表わす学習データを入力する入力部と、ユーザが備える特徴を表わすユーザ情報と、単語間の関係性を表す単語情報と、前記学習データとに基づいて、マップ空間上の位置を表わす隠れ特徴ベクトルを、ユーザおよび商品のそれぞれについて推定する推定部とを備え、前記推定部は、ユーザの前記隠れ特徴ベクトルと商品の前記隠れ特徴ベクトルとの距離が前記学習データが示す当該商品に対するユーザの嗜好を反映した距離になるようにするとともに、前記単語情報が示す関係性が近いほど、ユーザの前記隠れ特徴ベクトルと前記ユーザ情報が表わす当該ユーザの特徴を示す単語に基づいて推定される単語ベクトルとの距離が近くなるように前記隠れ特徴ベクトルを推定することを特徴とするユーザ・商品マップ推定装置。
(付記12)ユーザの嗜好に応じて行動の対象になった商品を表わす学習データを入力し、商品が備える特徴を表わす商品情報と、単語間の関係性を表す単語情報と、前記学習データとに基づいて、マップ空間上の位置を表わす隠れ特徴ベクトルを、ユーザおよび商品のそれぞれについて推定し、前記推定の際、ユーザの前記隠れ特徴ベクトルと商品の前記隠れ特徴ベクトルとの距離が前記学習データが示す当該商品に対するユーザの嗜好を反映した距離になるようにするとともに、前記単語情報が示す関係性が近いほど、商品の前記隠れ特徴ベクトルと前記商品情報が表わす当該商品の特徴を示す単語に基づいて推定される単語ベクトルとの距離が近くなるように前記隠れ特徴ベクトルを推定することを特徴とするユーザ・商品マップ推定方法。
(付記13)単語ベクトルと商品の隠れ特徴ベクトルとの距離によって定義される項を含む損失関数を最小化するように、隠れ特徴ベクトルを推定する付記12記載のユーザ・商品マップ推定方法。
(付記14)コンピュータに、ユーザの嗜好に応じて行動の対象になった商品を表わす学習データを入力する入力処理、および、商品が備える特徴を表わす商品情報と、単語間の関係性を表す単語情報と、前記学習データとに基づいて、マップ空間上の位置を表わす隠れ特徴ベクトルを、ユーザおよび商品のそれぞれについて推定する推定処理を実行させ、
前記推定処理で、ユーザの前記隠れ特徴ベクトルと商品の前記隠れ特徴ベクトルとの距離が前記学習データが示す当該商品に対するユーザの嗜好を反映した距離になるようにするとともに、前記単語情報が示す関係性が近いほど、商品の前記隠れ特徴ベクトルと前記商品情報が表わす当該商品の特徴を示す単語に基づいて推定される単語ベクトルとの距離が近くなるように前記隠れ特徴ベクトルを推定させるためのユーザ・商品マップ推定プログラム。
(付記15)コンピュータに、推定処理で、単語ベクトルと商品の隠れ特徴ベクトルとの距離によって定義される項を含む損失関数を最小化するように、隠れ特徴ベクトルを推定させる付記14記載のユーザ・商品マップ推定プログラム。