(58)【調査した分野】(Int.Cl.,DB名)
前記データのカテゴリを分類するための学習モデルとして、前記第1モデルであるRNNモデルと前記第2モデルであるFFNNモデルが1つのモデルとして併合されたRNN−FFNNモデルを利用することを特徴とする、請求項1に記載のコンピュータで実現される方法。
前記FFNNモデルにおいて、前記データの実際のカテゴリを示すベクトル値と前記ワードベクトルと対応するカテゴリを示すベクトル値との差を前記カテゴリ分類エラー情報として前記RNNモデルに伝達すること
を特徴とする、請求項3に記載のコンピュータで実現される方法。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態について、添付の図面を参照しながら詳細に説明する。
【0018】
本実施形態は、複数の因子で表現されるデータを自動で分類する技術に関し、特に、データを構成する各因子別にRNN(Recurrent neural networks)を割り当て、分類のために複数のRNNの出力値を入力値として使用するFFNN(feed forward neural network)を用いた新たな形態のディープラーニングモデルに基づく自動分類器を提供する。
【0019】
本明細書において、「複数の因子で表現されるデータ」とは、テキスト単語あるいは記号のシーケンスを値として有する少なくとも1つ以上の因子で構成されたデータを意味するが、一例として、商品情報や映画、ニュース、ブログ掲示物のようなコンテンツなどが該当する。以下では「複数の因子で表現されるデータ」の代表的な例として商品情報を挙げ、商品情報メタデータから商品のカテゴリを自動で分類する実施形態について具体的に説明する。
【0020】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
【0021】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような
図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が
図1のように限定されることはない。
【0022】
複数の電子機器110、120、130、140は、固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC、ノート型パソコン、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、電子機器1(110)は、無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信してよい。
【0023】
通信方式が限定されることはなく、ネットワーク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は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは層的(hierarchical)ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0024】
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供するコンピュータ装置または複数のコンピュータ装置で実現されてよい。
【0025】
一例として、サーバ160は、ネットワーク170を介して接続した電子機器1(110)にアプリケーションのインストールのためのファイルを提供してよい。この場合、電子機器1(110)は、サーバ160から提供されたファイルを利用してアプリケーションをインストールしてよい。また、電子機器1(110)が含むオペレーティングシステム(Operating System:OS)または少なくとも1つのプログラム(一例として、ブラウザや前記インストールされたアプリケーション)の制御にしたがってサーバ150に接続し、サーバ150が提供するサービスやコンテンツの提供を受けてもよい。例えば、電子機器1(110)がアプリケーションの制御にしたがってネットワーク170を介してサービス要請メッセージをサーバ150に送信すると、サーバ150は、サービス要請メッセージに対応するコードを電子機器1(110)に送信してよく、電子機器1(110)は、アプリケーションの制御にしたがってコードに基づいた画面を構成して表示することにより、ユーザにコンテンツを提供してよい。
【0026】
他の例として、サーバ150は、ショッピングサービスを提供するショッピングサーバシステムで実現されてよい。これにより、サーバ150と関連する他のサーバ160は、サーバ150が提供するショッピングサービスを利用することで、販売される商品のカテゴリを自動で分類する商品カテゴリ分類器の役割を担ってよい。さらに他の例として、サーバ150は、ショッピングサーバシステムであると同時に、商品のカテゴリを自動で分類する商品カテゴリ分類器の役割も共に担うように実現されることも可能である。
【0027】
図2は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
図2では、1つの電子機器に対する例として第1電子機器110の内部構成を、1つのサーバに対する例としてサーバ150の内部構成を説明する。他の電子機器120、130、140やサーバ160も、同一または類似の内部構成を有してよい。
【0028】
第1電子機器110とサーバ150は、メモリ211、221、プロセッサ212、222、通信モジュール213、223、および入力/出力インタフェース214、224を含んでよい。メモリ211、221は、コンピュータで読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永久大容量記憶装置(permanent mass storage device)を含んでよい。また、メモリ211、221には、オペレーティングシステムと、少なくとも1つのプログラムコード(一例として、電気機器1(110)にインストールされ駆動するブラウザや上述したアプリケーションなどのためのコード)が格納されてよい。このようなソフトウェア構成要素は、ドライブメカニズム(drive mechanism)を利用してメモリ211、221とは別のコンピュータで読み取り可能な記録媒体からロードされてよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピードライブ、ディスク、テープ、DVD/CD−ROMドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール213、223を通じてメモリ211、221にロードされてもよい。例えば、少なくとも1つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム(一例として、上述したサーバ160)がネットワーク170を介して提供するファイルによってインストールされるプログラム(一例として、上述したアプリケーション)に基づいてメモリ211、221にロードされてよい。
【0029】
プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ212、222は、メモリ211、221のような記録装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【0030】
通信モジュール213、223は、ネットワーク170を介して電子機器1(110)とサーバ150とが互いに通信するための機能を提供してもよいし、他の電子機器(一例として、電子機器2(120))または他のサーバ(一例として、サーバ160)と通信するための機能を提供してもよい。一例として、電子機器1(110)のプロセッサ212がメモリ211のような記録装置に格納されたプログラムコードにしたがって生成した要求が、通信モジュール213の制御にしたがってネットワーク170を介してサーバ150に伝達されてよい。これとは逆に、サーバ150のプロセッサ222の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール223とネットワーク170を経て電子機器1(110)の通信モジュール213を通じて電子機器1(110)に受信されてもよい。例えば、通信モジュール213を通じて受信されたサーバ150の制御信号や命令などは、プロセッサ212やメモリ211に伝達されてよく、コンテンツやファイルなどは、電子機器1(110)がさらに含むことのできる格納媒体に格納されてよい。
【0031】
入力/出力インタフェース214、224は、入力/出力装置215とのインタフェースのための手段であってよい。例えば、入力装置は、キーボードまたはマウスなどの装置を、出力装置は、アプリケーションの通信セッションを表示するためのディスプレイのような装置を含んでよい。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。より具体的な例として、電子機器1(110)のプロセッサ212は、メモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器2(120)が提供するデータを利用して構成されるサービス画面やコンテンツが、入力/出力インタフェース214を通じてディスプレイに表示されてよい。
【0032】
また、他の実施形態において、電子機器1(110)およびサーバ150は、
図2の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器1(110)は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。
【0033】
図3は、本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示した図であり、
図4は、本発明の一実施形態における、サーバが実行することのできる商品カテゴリ分類方法の例を示したフローチャートである。
図3ではある1つのサーバのプロセッサが含むことのできる構成要素を示しているが、サーバは、
図1と
図2を参照しながら説明したサーバ150、160のうちのいずれか1つに該当してよい。
図3に示すように、サーバのプロセッサ300は、前処理部310、学習処理部320、およびカテゴリ分類部330を備えてよい。このようなプロセッサ300の構成要素は、
図4の商品カテゴリ分類方法が含む段階410〜430を実行するようにサーバを制御してよく、このような制御のために、該当サーバのメモリが含むオペレーティングシステムと少なくとも1つのプログラムのコードを実行するように実現されてよい。
【0034】
先ず、商品のカテゴリを分類する関連技術について、次のように簡単に説明する。
【0035】
(1)言語学習(Word embedding)モデル
−神経網(Neural network)モデルを利用してテキスト単語を多次元実数ベクトルで表現し、単語間の意味/構造の類似性を2つのベクトル間の距離で表現可能にした言語モデル。
【0036】
(2)RNN(Recurrent neural networks)モデル
−神経網の隠れ層(hidden layer)で再帰的な入力が可能なようにモデルを修正することにより、順次的に(sequential)入力されるか因子(feature)の順序(sequence)が入力によって与えられるデータからパターンを効果的に学習することが可能な、時間的側面が考慮された神経網モデル。
【0037】
(3)FFNN(Feedfoward neural networks)モデル
−神経網モデルの初期に提案され、事前学習(pretraining)技法を使用せずにバックプロパゲーション(backpropagation)方法だけで学習が行われる、典型的な多重層神経網モデル。
【0038】
(4)この他にも、ユニグラム(Unigram)、SVM(support vector machine)、KNN(k−th nearest neighbor)を利用して階層的な分類技法でメタ情報から商品を自動分類するモデルなどがある。
【0039】
本発明では、大量の商品を分類するために、商品別に単語あるいは記号値で表現されるメタ情報が与えられるとき、各商品のカテゴリを自動で分類するモデルとしてディープラーニングに基づく方法を適用する。特に、本発明では、上述したモデルのうちの1つ以上のRNNとFFNNを1つのモデルとして併合し、FFNNにおける分類エラー情報がRNNのモデル学習に活用されるようにするE2E(end−to−end)形態の商品カテゴリ分類モデルを提供する。
【0040】
本発明に係る商品カテゴリ分類モデルでは、単語をワードベクトルで表現する言語学習と分離した形態ではなく、RNNとFFNNを1つに併合することにより、1つのモデルで言語学習はもちろん、学習されたワードベクトルから商品のカテゴリ分類を実行できるようにしたE2Eモデルと、このモデルを学習するための新たなアルゴリズムを含む。
【0041】
既存のRNNとFFNNの学習のためには、各モデルのための逆伝播(又はバックプロパゲーション)に基づく学習アルゴリズムが広く用いられているが、本発明で提案する学習アルゴリズムは、FFNNで発生したカテゴリ分類エラー情報をRNNに伝達してRNNの加重値学習に用いることにより、ワードベクトルが単語シーケンス情報を表現するだけでなく、カテゴリをより正確に分類するための必要な情報まで反映することができる。
【0042】
本発明では、シーケンス学習に適したRNNを利用することにより、テキストメタデータ語句(文章)全体の意味を利用するだけでなく、商品名、大分類/中分類情報、ブランド、ショッピングモール、イメージ情報などのような多様な形態の因子に対する別途のRNNを学習することによって性能を高めることができ、新たな単語までも、学習された言語学習方法に基づくベクトル値で容易に表現することができる。
【0043】
段階410で、前処理部310は、それぞれの商品に対して与えられたメタデータの前処理を言語前処理器で実行してよい。一例として、商品カテゴリ分類の場合に、メタデータは、商品名、ショッピングモール情報(IDまたは名称)、ブランド情報(IDまたは名称)、大分類/中分類などのような因子情報を含み、ニュース記事セクション分類の場合には、タイトル、逆順配置されたタイトル単語シーケンス、本文構成文章などのような因子情報を含む。前処理部310は、形態素分析器や索引語抽出器などのような言語前処理器を利用して与えられたメタデータから無意味なテキスト情報をフィルタリングしてよい。
【0044】
段階420で、学習処理部320は、RNNとFFNNが1つのモデルとして併合されたRNN−FFNNモデルを利用してメタデータを構成する各因子の単語を実数ベクトルで表現してよく、実数ベクトルによるカテゴリ別の点数を算出してよい。このとき、学習処理部320は、前処理されたメタデータをRNNの入力とし、RNNで因子それぞれに対し、因子に該当する単語のシーケンス学習によって因子のシーケンス情報が含まれたワードベクトルを表現してよく(421)、この後、RNNの出力をFFNNの入力とし、FFNNでシーケンス情報が含まれたワードベクトルを利用してカテゴリ別の点数を算出してよい(422)。
【0045】
詳細に説明すると、商品のメタデータを構成する各因子の単語は、順にあらかじめ学習された各因子別のRNNの入力によって与えられる。各因子の単語に対して順に入力が完了すると、RNNでは新たな出力実数ベクトル値が生成され、各出力因子ベクトルは1つのベクトルとして接合される。この後、接合された実数ベクトルは、予め学習されたFFNNの入力によって与えられ、FFNNで各カテゴリ別の点数が算出されて出力される。したがって、商品メタ情報の場合には、カテゴリ分類に意味がなかったり必要のないノイズ(例えば、商品と実際には関連がないか関連性の低い単語など)が含まれる場合があるため、このようなメタ情報からカテゴリを正確に分類するために、学習処理部320は、ワードベクトルが単語シーケンス情報を表現するようにRNNを利用してメタ情報に対するシーケンス学習を先に行った後、RNNのシーケンス学習結果をFFNNの入力とし、FFNNでシーケンス情報が含まれたワードベクトルから該当商品のカテゴリを分類することができる。
【0046】
段階430で、カテゴリ分類部330は、商品のメタデータに対してRNN−FFNNモデルに基づいて出力されたカテゴリ別の点数を利用して該当商品のカテゴリを決定して分類してよい。一例として、カテゴリ分類部330は、商品のメタデータに対して出力されたカテゴリ別の点数のうちで最も高い点数のカテゴリを該当商品のカテゴリとして設定してよい。他の例として、ニュースセクション分類では、野球、サッカー、海外野球、海外サッカー、国会/政党、行政、国防/外交などのような詳細セクションに対する点数が算出され、最も高い点数のセクションに設定可能である。
【0047】
図5は、商品のメタデータからカテゴリを自動分類する過程を説明するための例示図である。
【0048】
Step1.商品名、ショッピングモールID、ブランド名、大分類/中分類を因子情報として含むメタデータが与えられる。
【0049】
<例>商品名(1):ヒラヒラなびく[夏ビーチ]スタイルのスタイリッシュワンピース!!!、ショッピングモール(2):ワンツーモール、ブランド名(3):ABAC、大分類/中分類(4):衣類/女性衣類
Step2.Step1で与えられたメタデータの因子情報別に言語前処理器を利用して前処理を実行する。
【0050】
<例>商品名:ヒラヒラ[夏ビーチ]スタイルスタイリッシュワンピース!!!、ショッピングモール:ワンツーモール、ブランド名:ABAC、大分類/中分類:衣類/女性衣類
→1.ヒラヒラ夏ビーチスタイルスタイリッシュワンピース、2.ワンツーモール、3.ABAB、4.衣類女性衣類
Step3.Step2で前処理された各因子別の単語は、順に予め学習された各因子別のRNNの入力として与えられる。また、各因子の単語に対してRNN−FFNNモデルでの順次入力が完了すると、RNNでは各単語に対する実数ベクトル値(u)が生成され、各出力因子ベクトルは1つのベクトルとして接合される。
【0051】
<例>1.ヒラヒラ夏ビーチスタイルスタイリッシュワンピース、2.ワンツーモール、3.ABAB、4.衣類女性衣類
→u(1)={0.1、…、−1.2}/u(2)={−0.3、…、0.4}、/u(3)={0.2、…、0.7}/u(4)={0.4、…、−1.3}
Step4.Step3で接合された実数ベクトル(u)は、予め学習されたFFNNの入力として与えられ、FFNNの出力によって各カテゴリ別の点数(y’’)が算出される。
【0052】
<例>1.ヒラヒラ夏ビーチスタイルスタイリッシュワンピース、2.ワンツーモール、3.ABAB、4.衣類女性衣類
→u(1)={0.1、…、−1.2}/u(2)={−0.3、…、0.4}、/u(3)={0.2、…、0.7}/u(4)={0.4、…、−1.3}→y’’={シューズ=0.01、…、ワンピース=0.76、…、カメラ=0.02}
図6は、
図5の例に対するモデル構造図である。
図6に示すように、メタデータの各因子別の単語は、該当因子のRNN(例えば、商品名−RNN、ブランド−RNN、ショッピングモール−RNN)の入力によって与えられて実数ベクトルで表現され、RNNの出力である各出力因子ベクトルは、FFNNの入力となり、FFNNによってカテゴリ別の点数として定義されてよい。
【0053】
以下、商品カテゴリ分類過程について具体的に説明する。
【0054】
以下の方法は、
図3と
図4を参照しながら説明したプロセッサ300の構成要素によって実行されてよい。
【0055】
プロセッサ300は、与えられた商品メタデータに対し、形態素分析器あるいは索引語抽出器などのような言語前処理器を利用して無意味なテキスト情報をフィルタリングしてよい。一例として、プロセッサ300は、メタデータを構成する各因子別に助詞や助動詞などのような不必要な品詞の単語や特殊記号(例えば、!、?、/など)などを除去し、体言や語根に該当する単語を抽出してよい。
【0056】
プロセッサ300は、商品名、ブランド名、ショッピングモールID、イメージ因子などのような商品メタデータを構成するそれぞれの因子の順次的データ値を学習するための別途のRNN(商品因子−RNN)を割り当ててよい。例えば、プロセッサ300は、メタデータの因子が商品名、ブランド名、ショッピングモールで構成される場合、各因子に対して学習されたRNN、すなわち、商品名−RNN、ブランド名−RNN、ショッピングモール名−RNNを割り当ててよい。
【0057】
商品メタデータに対しては、ハングル(より一般的には、言葉を表現するための表音文字)、言語、記号、固有IDなどを区分せず、すべてをテキスト単語として仮定してモデルに入力され、入力された単語は学習によってn次元実数ベクトルで表現される。
【0058】
商品メタデータがM種類の因子で表現されるとき、m番目のメタデータ因子は、
X(m)={X
(m)1、…、X
(m)n}で表現される。このとき、n値は0よりも大きい任意の定数であり、例えば、100、200、300などの値を設定してよいが、これに限定されることはなく、設定された数字は、RNNの最初の隠れ層(hidden layer)のノード数と同じである。
<例1>
シューズ→[0.12、−0.81、…、0.43]
<例2>
13534→[0.54、…、−1.22]
それぞれの商品因子−RNNは、テキスト単語あるいは記号のシーケンスを学習し、入力シーケンスが終了すると、シーケンス全体の情報を表現する多次元実数ベクトルを出力する。このとき、出力される実数ベクトルの大きさは、入力された単語の実数ベクトルの大きさと必ずしも同じである必要はない。
【0059】
<例>ビーチにぴったりなブーツ→RNN→[−1.34、…、0.22]
商品メタデータがM種類の因子で表現されるとき、商品カテゴリ分類モデルはM個のRNNと1つのFFNNで構成され、それぞれのRNNはRNN
(1)、…、RNN
(M)と定義し、各RNNから出力されるベクトルは
u(1)={u
(1)1、…、u
(1)n}、…、u
(M)={u
(M)1、…、u
(M)n}と定義する。また、出力されるベクトルは、接合によって1つのM×n次元のベクトル
u={
u(1)、…、
u(M)}で表現される。
【0060】
RNNモジュールから生成された出力ベクトルuは、FFNNの入力として与えられ、FFNNの出力層(output layer)は、商品カテゴリ集合に属するカテゴリと同じ数の出力ノードを含む。
【0061】
与えられた商品メタ情報xは、RNN−FFNNモデルによって各カテゴリ別の点数として定義されてよい。商品カテゴリの数をKとすると、商品がk番目のカテゴリであるときの点数はf(y
k|x;θ)と定義されてよく、点数が最も大きいカテゴリが該当商品のカテゴリとして設定されてよい。カテゴリ点数を定義した上述の式において、y
kはk番目のカテゴリ、xはメタデータのワードベクトル、θはモデルパラメータを意味する。
【0062】
カテゴリの点数としては、P(y
k|x)=g(y
k|x)/(Σ
y∈Yg(y
k|x))のように確率が用いられてよいが、これに限定されることはない。上の式において、Yはすべての商品カテゴリ集合であり、関数f(y|x)は、指数(exponential)関数のように最小値が0よりも大きい多様な関数が用いられてよい。
【0063】
学習過程でエラーを定義するために、商品カテゴリは、|Y|次元のベクトルy={y
1、…、y
|y|}で定義される。例えば、Y={ワンピース、シューズ、カメラ}であるとき、カメラという商品のカテゴリベクトルyは、y={0、0、1}のように表現されてよい。このとき、ベクトルの値が0と1に限定されるのではなく、実際のカテゴリ値とその他の値が異なる値で与えられてもよい。また、実際のカテゴリベクトルをy’、モデルによって分類されたカテゴリベクトルをy’’とすると、E=Σ
Nn=1δ(y’、y’’)と定義される。式において、Nは学習に用いられた訓練データの数であり、δ(y’、y’’)は2つのベクトルの差を示す関数であり、学習はエラー値が最小化する方向に進行する。関数としては、クロス−エントロピ(cross−entropy)やユークリッド距離などのような多様な値が用いられてよい。
【0064】
FFNNの出力ノードで計算されたエラー値は、レイヤを経て下に逆伝播されて各RNNの加重値行列を計算するのに用いられ、これによってRNNとFFNNの学習が同時に進むようになる。
【0065】
例えば、Y={ワンピース、シューズ、カメラ}であるとき、与えられた商品がシューズである場合はy’={0、1、0}で表現され、モデルがカテゴリベクトルの値を確率で定義するときにはy’’={0.1、0.7、0.2}と仮定する。また、エラーδ(y’、y’’)=1/2(y’−y’’)
2で定義すると、各カテゴリ別のエラーは{0、005、0.045、0.02}となる。各カテゴリ別のエラーは、一般的に広く使用されるFFNNの逆伝播アルゴリズムによってFFNNの入力層(input layer)まで伝達する。FFNNが10個のノードを含む1個の隠れ層を含むモデルであると仮定するとき、入力層の1番目のノードのエラー情報はδ
1=(Σ
10k=1δ
1w
1k)h’(net
1)となり、上の式において、δ
kはFFNNの入力層の直ぐ上の層の各ノードに伝達されたエラー情報であり、hはRNNの出力層に用いられた活性化(activation)関数であり、h’は活性化関数の微分を意味する。h関数として、シグモイド(sigmoid)やハイパーボリックタンジェント(又は双曲線正接関数)(tanh)のような微分最大値が1と同じであるか1よりも小さい多様な関数が用いられてよい。また、net
1は、1番目の入力ノードとして入力されるRNNの下位層出力値および同じ層の直前時間の出力値を含んだRNNのすべての入力情報を意味する。これにより、FFNNのカテゴリエラー情報がRNNに伝達されるようになる。
【0066】
モデルが2つのRNN(RNN
1、RNN
2)で構成され、各RNNの出力ワードベクトルの大きさが2であると仮定すると、FFNNの入力ノードの個数は2×2=4つとなる。また、FFNNの入力ノードのうち、前の2つはRNN
1の出力ノードに該当し、後ろの2つはRNN
2の出力ノードに該当する。このとき、伝達されたFFNNの入力ノードエラー情報値が{−0.02、0.03、0.05、−0.03}であるとすると、{−0.02、0.03}はRNN
1の各層別の加重値を算出するための時間考慮逆伝播アルゴリズムの出力エラー情報値として用いられ、{0.05、−0.03}はRNN
2の加重値を算出するための出力エラー情報値として用いられる。各RNNの加重値は、出力層ノードに伝達されたエラー値から一般的に広く用いられる時間考慮逆伝播アルゴリズムを利用して学習されてよい。
【0067】
学習の性能向上のために、RNNとFFNNは複数の層で構成されてよく、下の層の出力値は上位層の入力値として与えられ、隣接する層を構成するノードはエッジ形態で連結し、各エッジ別に加重値が付与される。また、入力データは、モデル学習の性能と効率性を考慮し、全体が一度に与えられずに部分集合に分けられて部分集合単位で学習することが可能である。
【0068】
上述したように、本発明では、RNNとFFNNを併合したRNN−FFNNモデルを利用することにより、言語学習とアイテム学習、およびカテゴリ分類を同時に実行するモデルを提供することができる
上述したRNN−FFNN学習モジュールは
図7のとおりであり、RNN−FFNN学習モジュールを利用した商品カテゴリ分類過程は
図8のとおりである。
【0069】
図7は、本発明の一実施形態における、商品カテゴリ分類のためのRNN−FFNN学習モジュールを示した図である。
【0070】
図7を参照すると、商品カテゴリ分類のための学習モデル、RNN−FFNN学習モジュール720は、RNNモデルの学習モジュールであるRNNモジュール721とFFNNモデルの学習モジュールであるFFNNモジュール722とが併合されて構成されてよい。商品のメタデータがN個の因子で表現される場合、RNNモジュール721は、N個の商品因子−RNN(商品因子1RNN、…、商品因子nRNN)モデルを含んでよい。
【0071】
商品カテゴリおよびメタデータDB701から分類対象となる商品のメタデータが与えられるが、このとき、メタデータは、テキスト前処理モジュール710によって無意味なテキスト情報(例えば、助詞、助動詞など)がフィルタリングされた後、前処理されたメタデータテキスト文章/単語DB702に格納および維持されてよい。
【0072】
前処理されたメタデータは、RNNモジュール721の入力によって与えられるが、このとき、メタデータの各因子別の単語は、該当因子の学習RNN(商品因子1RNN、…、商品因子nRNN)に順に入力される。RNNモジュール721ではメタデータの各因子別の単語を実数ベクトルに変換し、各因子別に1つのベクトルとして接合されたワードベクトルを取得する。
【0073】
RNNモジュール721から生成されたワードベクトルは、FFNNモジュール722の入力として与えられる。FFNNモジュール722の出力層は、商品カテゴリおよびメタデータDB701に定義されたカテゴリの数だけの出力ノードを含んでよい。FFNNモジュール722は、メタデータに対して生成されたワードベクトルを各カテゴリ別の点数として定義してよいが、このとき、点数が最も大きいカテゴリが商品のカテゴリとして設定されてよい。
【0074】
特に、FFNNモジュール722で発生したカテゴリエラー情報は、FFNNモジュール722の層(出力層、隠れ層、入力層)を経て逆伝播されてRNNモジュール721の商品因子−RNNモデルに伝達されることにより、RNNモジュール721の加重値学習に用いられてよい。言い換えれば、FFNNモジュール722における分類エラー情報は、RNNモジュール721に伝達され、商品因子−RNNの各層別の加重値を算出するための時間考慮逆伝播アルゴリズムの出力エラー情報値として用いられてよい。
【0075】
図8は、本発明の一実施形態における、RNN−FFNN学習モデルを利用した商品カテゴリ分類過程を示した図である。
図8のカテゴリ分類過程は、
図3と
図4を参照しながら説明したプロセッサ300の構成要素によって実行されてよい。
【0076】
プロセッサ300は、商品メタ情報810が与えられると、形態素分析器あるいは索引語抽出器などのような言語前処理器を利用して無意味なテキスト情報をフィルタリングすることにより、メタデータに対する前処理を実行してよい(801)。
【0077】
プロセッサ300は、RNNとFFNNとが併合されたRNN−FFNNモデル820を利用して前処理されたメタデータを構成する各因子の単語を実数ベクトルで表現してよく、実数ベクトルによるカテゴリ確率(各カテゴリ別の点数)を算出してよい(802)。
【0078】
プロセッサ300は、商品のメタデータに対するRNN−FFNNモデル820の結果、すなわち、カテゴリ別の点数を利用して該当商品に対して少なくとも1つの最終カテゴリ(例えば、点数が最も高いカテゴリ)830を決定し、決定された最終カテゴリ830を該当商品情報にマッピングしてよい(803)。
【0079】
このように、本発明の実施形態によると、ベイジアンネットワークあるいは決定木方式を利用した既存の商品カテゴリ自動分類器の性能限界を克服するために、ディープラーニング技法を利用した新たな方式の商品カテゴリ自動分類器を提供する。これにより、商品カテゴリに対する自動分類性能が向上し、カテゴリ分類のために発生する費用を減少させることができる上に、カテゴリ分類正確度を高めることができ、商品を登録した販売者と商品を検索あるいは購入する購入者の両方の満足度を高めることができる。
【0080】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)および前記OS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0081】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ格納媒体または装置、または伝送される信号波に永久的または一時的に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータで読み取り可能な記録媒体に格納されてよい。
【0082】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な媒体に記録されてよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピーディスク、および磁気テープのような磁気媒体、CD−ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために1つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同じである。
【0083】
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0084】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。