以下に、本願に係る抽出装置、抽出方法、抽出プログラム、及びモデルを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る抽出装置、抽出方法、抽出プログラム、及びモデルが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
(実施形態)
〔1.生成処理〕
まず、図1を用いて、実施形態に係る生成処理の一例について説明する。図1は、実施形態に係る生成処理の一例を示す図である。図1では、抽出装置100が電子商取引サービスにおける管理者GM1により正解情報が付与された商品情報に基づいてモデルの生成を行う場合を示す。なお、ここでいう商品情報とは、所定の商品またはサービス(以下、併せて「商品」とする)に関する情報を意味する。例えば、商品情報は、電子商取引サービスにおいてストア(販売元)が出品した商品に関する情報であってもよい。また、以下では、正解情報が付与された商品情報を「学習データ」ともいう。
例えば、管理者GM1は、電子商取引サービスを提供する提供元であってもよい。例えば、商品情報には、商品の提供元が出品時に入力した情報が含まれる。商品情報には、画像情報(以下、単に「画像」ともいう)と文字情報との2つの種別の情報が含まれる。また、図1の例では、抽出装置100が正解情報として商品の商品名が付与された商品情報に基づいてモデルの生成を行う場合を示す。すなわち、図1の例では、抽出装置100が正解情報として商品の商品名が付与された商品情報に基づいて、その商品情報が示す対象である商品の商品名を抽出するモデルの生成を行う場合を示す。
また、抽出装置100は、生成したモデルを用いて、ある商品が出品された際の商品情報に基づいて、その商品の商品名を抽出する。また、抽出装置100は、抽出した商品の商品名に基づいて、サービスを提供したりするが、この点については図2で説明する。
〔抽出システムの構成〕
まず、図1の説明に先立って、図3に示す抽出システム1について説明する。図3に示すように、抽出システム1は、端末装置10と、販売元装置20と、管理者装置50と、抽出装置100とが含まれる。端末装置10と、販売元装置20と、管理者装置50と、抽出装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。図3は、実施形態に係る抽出システムの構成例を示す図である。なお、図3に示した抽出システム1には、複数台の端末装置10や、複数台の販売元装置20や、複数台の管理者装置50や、複数台の抽出装置100が含まれてもよい。
端末装置10は、ユーザによって利用される情報処理装置である。端末装置10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。図1に示す例においては、端末装置10がユーザの利用するスマートフォンである場合を示す。なお、以下では、端末装置10をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置10と読み替えることもできる。
端末装置10は、ユーザによる操作を受け付ける。また、端末装置10は、ユーザの操作に応じて、抽出装置100に種々の情報を送信する。例えば、端末装置10は、抽出装置100に商品情報を要求する情報等を送信する。また、端末装置10は、抽出装置100から種々の情報を受信する。例えば、端末装置10は、抽出装置100から商品情報を受信する。また、例えば、端末装置10は、抽出装置100から受信した商品情報を表示する。
販売元装置20は、商品を販売する売主によって利用される情報処理装置である。売主は、個人であってもよいし、法人等であってもよい。例えば、販売元装置20は、販売元SA1によって利用される。例えば、販売元SA1は、販売元装置20を用いて、電子商取引サービスにおいて販売する商品を追加したり、在庫の管理や価格の設定を行ったりする。また、販売元装置20は、例えば、スマートフォンや、タブレット型端末や、ノート型PCや、デスクトップPCや、携帯電話機や、PDA等により実現される。なお、以下では、販売元装置20を販売元と表記する場合がある。すなわち、以下では、販売元を販売元装置20と読み替えることもできる。具体的には、図2では、販売元装置20が販売元SA1により利用されるノート型PCである場合を示す。
管理者装置50は、抽出装置100の管理者によって利用される情報処理装置である。管理者装置50は、例えば、スマートフォンや、タブレット型端末や、ノート型PCや、デスクトップPCや、携帯電話機や、PDA等により実現される。なお、以下では、管理者装置50を管理者と表記する場合がある。すなわち、以下では、管理者を管理者装置50と読み替えることもできる。図1に示す管理者GM1は、管理者装置50を操作することにより、抽出装置100の情報を表示したり、抽出装置100に処理を要求したりしてもよい。
例えば、管理者GM1は、管理者装置50を用いて、所定の商品情報に正解情報を付与する。例えば、管理者GM1は、管理者装置50を用いて、学習データとして用いる商品情報に正解情報を付与する。図1の例では、管理者GM1は、電子商取引サービスにおいて用いられる商品名の一覧情報(リスト)に基づいて、商品情報に正解情報を付与する。例えば、商品名の一覧情報は、商品を識別する識別情報と商品の商品名とが対応付けられた一覧情報であってもよい。例えば、商品名の一覧情報は、商品名とJAN(Japan Article Number)コードとが対応付けられた一覧情報であってもよい。
なお、管理者装置50と抽出装置100とは一体であってもよい。この場合、例えば、抽出装置100が有する画面により抽出装置100が有する情報を表示させ、キーボードやマウス等の入力インターフェイス等を用いて抽出装置100に処理の指示等を行ってもよい。
抽出装置100は、文字情報及び画像を含む商品情報に基づいて、商品の特徴を示す特徴情報を抽出する情報処理装置である。例えば、抽出装置100は、文字情報及び画像を含む商品情報に基づいて、商品の特徴を示す特徴情報として、商品の名称(商品名)を抽出する。例えば、抽出装置100は、画像に基づいて、文字情報から商品の商品名を抽出する。図1の例では、抽出装置100は、商品の商品名の抽出に用いられるモデルであって、文字情報及び画像を含む商品情報が入力されたモデルの出力に基づいて、その商品の商品名を抽出する。
また、抽出装置100は、抽出した商品の特徴情報に基づいてサービスを提供する。図2の例では、抽出装置100は、抽出したその商品の商品名を用いて、ユーザが利用する端末装置10に情報提供する。また、抽出システム1においては、抽出装置100が電子商取引サービスを提供する。例えば、抽出システム1においては、複数の販売元が提供する商品を購入可能な電子商取引サービスが抽出装置100により提供される。
例えば、抽出装置100は電子商取引サービスや検索サービス等の種々のサービスを提供してもよい。また、外部の情報処理装置が検索サービスや電子商取引サービスを提供する場合、抽出装置100は検索サービスや電子商取引サービスを提供しなくてもよい。この場合、抽出装置100は、検索サービスや電子商取引サービスを提供する外部の情報処理装置等から各種情報を取得し、取得した各種情報に基づいて抽出処理や外部の情報処理装置への情報提供を行ってもよい。
なお、図1及び図2の例では、電子商取引サービスが複数のストア(販売元)が出品するネットショッピングモールサービス(以下、単に「ネットショッピングモール」とする)である場合を一例に説明する。なお、電子商取引サービスは、ネットショッピングモールに限らず、オークションサービス等の種々のサービスであってもよい。
また、以下では、「商品GD*(*は任意の数値)」と記載した場合、その商品は商品ID「GD*」により識別される商品であることを示す。例えば、「商品GD1」と記載した場合、その商品は商品ID「GD1」により識別される商品である。なお、以下では、「商品GD*(*は任意の数値)」の商品情報を「商品GD*(*は任意の数値)」と表記する場合がある。例えば、以下では、商品GD1を商品GD1の商品情報と読み替えることもできる。
図1の示す例では、管理者GM1は、画像IM101や文字情報CH101等を含む商品情報に対応する商品GD101に対して正解情報を付与する(ステップS11-1)。例えば、文字情報CH101は、商品GD101の商品情報に含まれる商品の説明文であってもよい。例えば、管理者GM1は、商品GD101の商品情報に含まれる画像IM101や文字情報CH101等の内容に基づいて、商品GD101の商品名が「商品名NA」であることを示す正解情報を付与する。具体的には、管理者GM1は、画像IM101を参照しつつ、文字情報CH101に含まれる文字列から、商品GD101の商品名を抽出し、商品GD101の商品情報に対応する正解情報とする。
なお、図1の例では、商品名を「商品名NA」等のように抽象的な記号で表記するが、例えば「商品名NA」は、具体的な商品の名称(文字列)を示す情報であるものとする。例えば「商品名NA」は、企業名と商品を示す文字列との組合せであってもよい。図1の例では、「商品名NA」は、文字列ST1と文字列ST3との組合せである場合を示す。例えば、文字列ST1は、企業名「XXX」であり、文字列ST3は、商品を示す文字列「YYY」であってもよい。例えば、管理者GM1は、商品GD101については、文字列ST1と文字列ST3とを組合せた(並べた)文字列を正解情報とする。
また、管理者GM1は、画像IM102や文字情報CH102等を含む商品情報に対応する商品GD102に対して正解情報を付与する(ステップS11-2)。例えば、文字情報CH102は、商品GD102の商品情報に含まれる商品の説明文であってもよい。例えば、管理者GM1は、商品GD102の商品情報に含まれる画像IM102や文字情報CH102等の内容に基づいて、商品GD102の商品名が「商品名NB」であることを示す正解情報を付与する。具体的には、管理者GM1は、文字情報CH102に含まれる文字列から、商品GD102の商品名を抽出し、商品GD102に対応する正解情報「商品名NB」とする。
また、管理者GM1は、画像IM103や文字情報CH103等を含む商品情報に対応する商品GD103に対して正解情報を付与する(ステップS11-3)。例えば、文字情報CH103は、商品GD103の商品情報に含まれる商品の説明文であってもよい。例えば、管理者GM1は、商品GD103の商品情報に含まれる画像IM103や文字情報CH103等の内容に基づいて、商品GD103の商品名が「商品名NC」であることを示す正解情報を付与する。具体的には、管理者GM1は、文字情報CH103に含まれる文字列から、商品GD103の商品名を抽出し、商品GD103に対応する正解情報「商品名NC」とする。
また、管理者GM1は、画像IM104や文字情報CH104等を含む商品情報に対応する商品GD104に対して正解情報を付与する(ステップS11-4)。例えば、文字情報CH104は、商品GD104の商品情報に含まれる商品の説明文であってもよい。例えば、管理者GM1は、商品GD104の商品情報に含まれる画像IM104や文字情報CH104等の内容に基づいて、商品GD104の商品名が「商品名ND」であることを示す正解情報を付与する。具体的には、管理者GM1は、文字情報CH104に含まれる文字列から、商品GD104の商品名を抽出し、商品GD104に対応する正解情報「商品名ND」とする。
なお、ステップS11-1~S11-4は、処理を説明するためのものであり、ステップS11-1~S11-4のいずれが先に行われてもよく、以下、ステップS11-1~S11-4を区別せずに説明する場合、ステップS11と総称する。例えば、管理者GM1は、ステップS11に示すような正解情報の付与を学習データとして用いる多数の商品情報に対して行う。これにより、抽出システム1においては、商品情報と正解情報(商品名)が対応づけられた学習データLD1が生成される。なお、図1の例では、正解情報の付与を説明するために、管理者GM1が付与する場合を示すが、正解情報の付与は、抽出装置100等により機械的に行われてもよい。また、管理者GM1は、商品情報に商品名を明示する情報が含まれる場合、その情報を正解情報としてもよい。管理者GM1は、販売元が商品を登録する際に商品名を登録する場合、登録された商品名を正解情報としてもよい。
そして、抽出装置100は、ステップS11において正解情報が付与された学習データLD1を取得する(ステップS12)。具体的には、抽出装置100は、ステップS11において正解情報が付与された商品GD101~GD104等の商品情報を取得する。
そして、抽出装置100は、ステップS12で取得した学習データLD1に含まれる商品情報を学習データとして追加する(ステップS13)。具体的には、抽出装置100は、学習データLD1を学習データ記憶部121に追加する。
そして、抽出装置100は、学習データに基づいてモデルを生成する(ステップS14)。例えば、抽出装置100は、学習データ記憶部121中の商品GD101~GD104等の商品情報を学習データ(教師データ)として、学習を行なうことにより、モデルを生成する。以下では、商品GD101の商品情報を学習データとして用いた場合を一例として説明する。
まず、抽出装置100が生成するモデル(学習器)について簡単に説明する。図1の例において、抽出装置100が生成するモデルM1は、複数の部分モデルM11~M13等を含むモデルである。上記のように、「モデルM*(*は任意の数値)」と記載した場合、そのモデルはモデルID「M*」により識別されるモデルであることを示す。例えば、「モデルM1」と記載した場合、そのモデルはモデルID「M1」により識別されるモデルである。また、上記のように、「部分モデルM*(*は任意の数値)」と記載した場合、その部分モデルは部分モデルID「M*」により識別されるモデルであることを示す。例えば、「部分モデルM11」と記載した場合、その部分モデルは部分モデルID「M11」により識別されるモデルである。なお、各部分モデルM11~M13についての詳細は後述する。
図1の例では、抽出装置100は、商品GD101の文字情報CH101を文字列に分割する(ステップS14-1)。例えば、抽出装置100は、形態素解析等の種々の自然言語処理技術の従来技術を適宜用いて、文字情報CH101を文字列に分割する。図1の例では、抽出装置100は、文字情報CH101を複数の文字列ST1~ST4等に分割する。
そして、抽出装置100は、複数の文字列ST1~ST4等をベクトル化する(ステップS14-2)。例えば、抽出装置100は、分散表現等の種々の従来技術を適宜用いて、文字列ST1~ST4等の各々をベクトル化する。例えば、抽出装置100は、w2v(word2vec)等の周知の技術を用いて、文字列ST1~ST4等の各々をベクトル化する。図1の例では、抽出装置100は、文字列ST1~ST4等の各々に対応するベクトルEN1~EN4等を生成する。例えば、抽出装置100は、文字列ST1に対応するベクトルEN1を生成する。例えば、抽出装置100は、分散表現等の技術により、文字列ST1からベクトルEN1を生成する。
そして、図1の例では、抽出装置100は、商品GD101の画像IM101や文字列ST1~ST4等の各々に対応するベクトルEN1~EN4等をモデルM1に入力することにより、モデルM1に文字列ST1~ST4等が商品名であるかを示すスコアを出力させる。例えば、抽出装置100は、商品GD101の画像IM101をベクトル化したデータ(例えばN次元のベクトルデータ(Nは1以上の任意の数値))をモデルM1に入力してもよいし、画像IM101が入力されたモデルM1が画像IM101をベクトル化してもよい。
また、モデルM1は、ステップS14-1に示す文字情報を文字列に分割する処理やステップS14-2に示す各文字列をベクトル化する処理を行ってもよい。この場合、モデルM1は、商品情報に含まれる文字情報と画像情報とが入力された場合、画像情報に基づいて、文字情報の各文字列が商品名であるかを示すスコアを出力してもよい。
ここから、図1に示すモデルM1の構成を説明する。モデルM1は、商品情報のうち、画像情報に対応する情報が入力される入力層を有する部分モデルM11、文字情報に対応する情報が入力される入力層を有する部分モデルM12、及びスコアを出力する層を有する部分モデルM13を含む。
例えば、部分モデルM11は、入力された画像情報(画像)から画像の特徴を示す情報(以下、「画像特徴」ともいう)を抽出する部分モデルである。例えば、部分モデルM11は、画像特徴としてベクトルを出力する。図1の例では、部分モデルM11は、画像情報の局所領域の畳み込みとプーリングとを繰り返す、いわゆる畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)により構成されるものとする。なお、部分モデルM11は、CNNに限らず、GRU(Gated Recurrent Unit)やLSTM(Long Short-Term Memory)を始めとするRNN(Recurrent Neural Network)等といった種々のニューラルネットワークであってもよい。
図1の例では、部分モデルM11は、商品GD101の画像IM101が入力され、画像IM101から画像特徴IFE101を抽出する。例えば、画像IM101から抽出された画像特徴IFE101は、画像IM101の特徴を示す情報である。このように、図1に示す部分モデルM11は、商品GD101の商品情報に含まれる画像IM101から、商品GD101の画像に関する特徴を示す画像特徴IFE101を抽出する。
例えば、部分モデルM11は、入力された情報の次元量を圧縮することで入力された情報が有する特徴を抽出するエンコーダと、エンコーダによって抽出された特徴の次元量を増大させ、エンコーダに入力された情報を復元するデコーダとの組によって実現されてもよい。すなわち、部分モデルM11は、オートエンコーダであってもよい。この場合、部分モデルM11は、エンコーダに入力される情報とデコーダから出力される情報が等しくなるように学習処理が行われてもよい。また、この場合、抽出装置100は、部分モデルM11中のエンコーダにより抽出された特徴を画像特徴として用いてもよい。
また、例えば、部分モデルM12は、文字列(文字情報)に対応するベクトルが入力され、入力されたベクトルから文字情報の特徴を示す情報(以下、「文字特徴」ともいう)を抽出する部分モデルである。例えば、部分モデルM12は、文字特徴としてベクトルを出力する部分モデルである。図1の例では、部分モデルM12は、GRUやLSTMを始めとするRNNにより構成されるものとする。なお、部分モデルM12は、GRUやLSTMを始めとするRNNに限らず、種々の再帰型ニューラルネットワークであってもよい。
ここで、部分モデルM12には、文字情報における順序に基づいて、文字列が順次入力される。これにより、部分モデルM12は、文字情報における順序(語順)に基づいて、各文字列に対応する文字特徴を出力する。
図1の例では、部分モデルM12は、商品GD101の文字情報CH101における順序に基づいて、各文字列ST1~ST4等が入力される。
まず、部分モデルM12は、初期状態SA0において、文字情報CH101における最先(例えば先頭)の文字列ST1が入力される。これにより、部分モデルM12は、文字列ST1が文字情報CH101の最先の文字列である場合の文字列ST1の文字特徴CFE1を出力する。
そして、部分モデルM12は、文字列ST1が入力された後の状態SA1において、文字情報CH101における文字列ST1の次の文字列ST2が入力される。これにより、部分モデルM12は、文字列ST2が文字情報CH101において文字列ST1の次に位置する場合の文字列ST2の文字特徴CFE2を出力する。
そして、部分モデルM12は、文字列ST2が入力された後の状態SA2において、文字情報CH101における文字列ST2の次の文字列ST3が入力される。これにより、部分モデルM12は、文字列ST3が文字情報CH101において文字列ST2の次に位置する場合の文字列ST3の文字特徴CFE3を出力する。
そして、部分モデルM12は、文字列ST3が入力された後の状態SA3において、文字情報CH101における文字列ST3の次の文字列ST4が入力される。これにより、部分モデルM12は、文字列ST4が文字情報CH101において文字列ST3の次に位置する場合の文字列ST4の文字特徴CFE4を出力する。
また、部分モデルM12は、文字列ST4より後の文字列(例えば文字列ST5)等についても同様に処理することにより、文字情報CH101に含まれる各文字列の文字特徴を抽出する。このように、図1に示すモデルM12は、商品情報に含まれる文字情報における順序関係を反映した各文字列の文字特徴を抽出する。これにより、図1の例では、部分モデルM12は、文字情報CH101における順序関係を反映した各文字列ST1~ST4等の文字特徴CFE1~CFE4等を抽出する。なお、上記は一例であり、部分モデルM12は、各文字列に対応する文字特徴が抽出可能であれば、どのような構成のモデルであってもよく、どのような処理により文字特徴を抽出してもよい。
また、例えば、部分モデルM13は、文字特徴が入力されることにより、入力された文字特徴に対応する文字列が商品名であるかを示すスコアを出力する部分モデルである。図1の例では、部分モデルM13は、文字特徴と画像特徴とが連結されたベクトル(以下、「連結ベクトル」ともいう)が入力されることにより、画像特徴に対応する画像の情報を加味して、文字特徴に対応する文字列が商品名であるかを示すスコアを出力する。例えば、文字特徴がX次元であり、画像特徴がY次元である場合、連結ベクトルは、X+Y次元のベクトルであってもよい。例えば、文字特徴が100次元であり、画像特徴が200次元である場合、連結ベクトルは、100次元までが文字特徴であり、101次元から300次元が画像特徴であってもよい。
このように、部分モデルM13は、文字特徴に対応するベクトルに画像特徴に対応するベクトルが連結された連結ベクトルが入力される。これにより、画像特徴に対応する画像の情報を加味して、文字特徴に対応する文字列が商品名であるかを示すスコアを出力する。また、図1の例では、部分モデルM12により出力される文字特徴は文字情報における各文字列の順序関係を反映した情報である。そのため、部分モデルM13は、画像の特徴と文字情報における各文字列の順序関係とを加味して、文字特徴に対応する文字列が商品名であるかを示すスコアを出力することができる。
なお、部分モデルM13は、スコアを出力可能であれば、どのような構成であってもよい。例えば、部分モデルM13は、SVM(Support Vector Machine)、CNNや、GRU、LSTMを始めとするRNN等、所望のスコアを出力可能であればどのような構成であってもよい。また、以下では、部分モデルM13は、文字列の文字特徴と画像の画像特徴との連結ベクトルが入力された場合に、その文字列が商品名であるかの可能性を示すスコアを出力するものとする。例えば、部分モデルM13が出力するスコアが大きい程、その文字列が商品名である可能性が高いことを示すものとする。図1の例では、部分モデルM13は、入力された連結ベクトルに対応する文字列が商品名に該当するかに応じて、「0」~「1」のスコアを出力するものとする。図1の例では、部分モデルM13は、商品名に該当する文字列に対応する連結ベクトルが入力された場合に、「1」に近いスコアを出力するものとする。また、図1の例では、部分モデルM13は、商品名に該当しない文字列に対応する連結ベクトルが入力された場合に、「0」に近いスコアを出力するものとする。
例えば、部分モデルM13は、文字列ST1の文字特徴CFE1と画像IM101の画像特徴IFE101との連結ベクトルが入力されることにより、文字列ST1が商品名であるかを示すスコアSC1を出力する。例えば、文字特徴CFE1がX次元であり、画像特徴IFE101がY次元である場合、連結ベクトルは、X+Y次元のベクトルであってもよい。例えば、文字特徴CFE1が100次元であり、画像特徴IFE101が200次元である場合、連結ベクトルは、100次元までが文字特徴CFE1であり、101次元から300次元が画像特徴IFE101であってもよい。
また、例えば、部分モデルM13は、文字列ST2の文字特徴CFE2と画像IM101の画像特徴IFE101との連結ベクトルが入力されることにより、文字列ST2が商品名であるかを示すスコアSC2を出力する。
例えば、部分モデルM13は、文字列ST3の文字特徴CFE3と画像IM101の画像特徴IFE101との連結ベクトルが入力されることにより、文字列ST3が商品名であるかを示すスコアSC3を出力する。
また、例えば、部分モデルM13は、文字列ST4の文字特徴CFE4と画像IM101の画像特徴IFE101との連結ベクトルが入力されることにより、文字列ST4が商品名であるかを示すスコアSC4を出力する。
また、部分モデルM13は、文字列ST4より後の文字列の文字特徴(例えば文字特徴CFE5)等についても同様に処理することにより、各文字列が商品名であるかを示すスコアを出力する。このように、図1に示すモデルM13は、商品情報に含まれる画像、及び文字情報における順序関係を加味したスコアを出力する。
例えば、抽出装置100は、文字列に対応する連結ベクトルが入力された場合に、部分モデルM13が出力するスコアに基づいて、その文字列が商品名であるかを判定してもよい。例えば、抽出装置100は、文字列に対応する連結ベクトルが入力された部分モデルM13が出力するスコアが所定の閾値(例えば、0.7等)以上である場合、その文字列が商品名であると判定してもよい。
図1の例では、抽出装置100は、学習データLD1を用いて、上記のようなモデルM1を生成する。例えば、抽出装置100は、モデルM1に商品GD101に対応する情報(商品情報)が入力された場合に、正解情報「商品名NA」に含まれる文字列に対応するスコアが大きくなるように、学習処理を行う。例えば、抽出装置100は、モデルM1に商品GD101に対応する情報が入力された場合に、文字列ST1や文字列ST3に対応するスコアが大きくなるように、学習処理を行う。例えば、抽出装置100は、モデルM1に商品GD101に対応する情報が入力された場合に、商品名NAに含まれる文字列ST1や文字列ST3に対応するスコアが所定の閾値より大きくなるように、学習処理を行う。例えば、抽出装置100は、モデルM1に商品GD101に対応する情報が入力された場合に、スコアSC1やスコアSC3が所定の閾値より大きくなるように、学習処理を行う。例えば、抽出装置100は、モデルM1に商品GD101に対応する情報が入力された場合に、スコアSC1やスコアSC3が「1」に近くなるように、学習処理を行う。
例えば、抽出装置100は、モデルM1に商品GD101に対応する情報が入力された場合に、正解情報「商品名NA」に含まれない文字列に対応するスコアが小さくなるように、学習処理を行う。例えば、抽出装置100は、モデルM1に商品GD101に対応する情報が入力された場合に、商品名NAに含まれない文字列ST2や文字列ST4に対応するスコアが小さくなるように、学習処理を行う。例えば、抽出装置100は、モデルM1に商品GD101に対応する情報が入力された場合に、文字列ST2や文字列ST4に対応するスコアが所定の閾値より小さくなるように、学習処理を行う。例えば、抽出装置100は、モデルM1に商品GD101に対応する情報が入力された場合に、スコアSC2やスコアSC4が所定の閾値より小さくなるように、学習処理を行う。例えば、抽出装置100は、モデルM1に商品GD101に対応する情報が入力された場合に、スコアSC2やスコアSC4が「0」に近くなるように、学習処理を行う。
すなわち、抽出装置100は、モデルM1における出力(スコア)と、入力した商品情報に対応する正解情報との誤差が少なくなるようにパラメータ(接続係数)を補正するバックプロパゲーション(誤差逆伝播法)等の処理によりモデルM1を生成する。例えば、抽出装置100は、所定の損失(ロス)関数を最小化するようにバックプロパゲーション等の処理を行うことによりモデルM1を生成する。なお、抽出装置100は、上記のような学習処理を各部分モデルM11~M13の各々について行ってもよい。例えば、抽出装置100は、上記のような学習処理を部分モデルM12について行ってもよい。また、例えば、抽出装置100は、上記のような学習処理を部分モデルM13について行ってもよい。
上述のような処理を繰り返すことで、抽出装置100は、入力された商品情報に対応する商品の商品名をより精度よく抽出可能にするスコアを出力するモデルM1を生成することができる。なお、モデルの学習手法については、上述した手法に限定されるものではなく、任意の公知技術が適用可能である。すなわち、抽出装置100は、学習データに含まれる商品情報が入力された場合に、正解情報に対応するスコアを出力するようにモデルM1を学習可能であれば、どのような手法によりモデルM1の生成を行ってもよい。
上記のような処理により、図1の例では、抽出装置100は、モデル情報記憶部122に示すように、モデルID「M1」により識別されるモデル(モデルM1)を生成する。また、図1中のモデル情報記憶部122に示すモデルM1は、商品名の抽出のために用いられるモデルであり、その具体的なモデルデータが各部分モデルM11~M13等に対応する「各モデルデータMDT11~MDT13等」であることを示す。例えば、抽出装置100は、モデルM1に商品情報を入力することにより、入力した商品情報の文字情報に含まれる文字列のうち、どの文字列が商品名である可能性が高いかを示すスコアを、モデルM1に出力させ、モデルM1が出力するスコアに基づいて、文字情報から商品名を抽出する。
上述したように、抽出装置100は、商品情報と正解情報とが対応付けられた学習データを用いて学習することにより、商品の商品名を適切に抽出可能にするモデルを生成することができる。また、抽出装置100は、商品情報に含まれる画像、及び文字情報における順序関係を反映したモデルを生成することにより、商品の商品名を適切に抽出可能にするモデルを生成することができる。これにより、抽出装置100は、文字情報から商品の特徴情報を適切に抽出するために用いるモデルを生成することができる。したがって、抽出装置100は、上述のように生成したモデルを用いることにより、例えば、電子商取引サービスにおいて表示される商品情報の正確性の向上を可能にすることができる。
(1-1.モデル)
図1の例では、1つのモデルM1を生成する場合を示したが、抽出装置100は、商品の属性等に基づいて複数のモデルを生成してもよい。例えば、抽出装置100は、商品のカテゴリごとにモデルを生成してもよい。例えば、抽出装置100は、商品のカテゴリごとに学習データを用いて、各カテゴリのモデルを生成してもよい。
〔2.抽出処理〕
図2を用いて、実施形態に係る抽出処理の一例について説明する。図2は、実施形態に係る抽出処理の一例を示す図である。図2では、抽出装置100は、販売元が出品を行う際に、出品の商品情報から商品名を抽出し、抽出した商品名を用いたサービスを提供する場合を示す。
まず、抽出装置100は、販売元SA1が利用する販売元装置20から出品に関する情報を取得する(ステップS21)。例えば、販売元SA1は、販売元装置20に表示された電子商取引サービスの販売元用のサイト等において所定の操作を行うことにより、抽出装置100に商品情報を送信する。図2の例では、販売元装置20は、画像IM11及び文字情報CH11を含む商品GD11の商品情報を抽出装置100に送信する。具体的には、販売元装置20は、腕時計のバントである商品GD11の商品情報を抽出装置100に送信する。例えば、販売元装置20は、腕時計のバントが含まれる画像IM11を含む商品情報を抽出装置100に送信する。
販売元装置20から出品に関する情報を取得した抽出装置100は、商品GD11の文字情報CH11を文字列に分割する(ステップS22)。例えば、抽出装置100は、形態素解析等の種々の自然言語処理技術の従来技術を適宜用いて、文字情報CH11を文字列に分割する。図2の例では、抽出装置100は、文字情報CH11を複数の文字列ST11~ST14等に分割する。
そして、抽出装置100は、複数の文字列ST11~ST14等をベクトル化する(ステップS23)。例えば、抽出装置100は、分散表現等の種々の従来技術を適宜用いて、文字列ST11~ST14等の各々をベクトル化する。図2の例では、抽出装置100は、文字列ST11~ST14等の各々に対応するベクトルEN11~EN14等を生成する。例えば、抽出装置100は、文字列ST11に対応するベクトルEN11を生成する。例えば、抽出装置100は、分散表現等の技術により、文字列ST11からベクトルEN11を生成する。
そして、図2の例では、抽出装置100は、商品GD11の画像IM11や文字列ST11~ST14等の各々に対応するベクトルEN11~EN14等をモデルM1に入力する(ステップS24)。これにより、抽出装置100は、モデルM1に文字列ST11~ST14等が商品名であるかを示すスコアを出力させる(ステップS25)。なお、図2の例では、抽出装置100は、モデルM1(部分モデルM13)が出力するスコアが所定の閾値(例えば、0.6等)以上である場合、その文字列が商品名であると判定するものとする。
例えば、抽出装置100が商品GD11の情報(商品情報)を入力することにより、モデルM1は、文字情報の各文字列が商品名であるかを示すスコアを出力する。
例えば、モデルM1は、文字列ST11が商品名であるかを示すスコアSC11を出力する。図2の例では、モデルM1が文字列ST11のスコアSC11として「0.7」を出力したため、抽出装置100は、文字列ST11が商品GD11の商品名であると判定する。
例えば、モデルM1は、文字列ST12が商品名であるかを示すスコアSC12を出力する。図2の例では、モデルM1が文字列ST12のスコアSC12として「0.2」を出力したため、抽出装置100は、文字列ST12が商品GD11の商品名ではないと判定する。
例えば、モデルM1は、文字列ST13が商品名であるかを示すスコアSC13を出力する。図2の例では、モデルM1が文字列ST13のスコアSC13として「0.4」を出力したため、抽出装置100は、文字列ST13が商品GD11の商品名ではないと判定する。
例えば、モデルM1は、文字列ST14が商品名であるかを示すスコアSC14を出力する。図2の例では、モデルM1が文字列ST14のスコアSC14として「0.8」を出力したため、抽出装置100は、文字列ST14が商品GD11の商品名であると判定する。
そして、抽出装置100は、商品GD11の文字情報CH11から商品名を抽出する(ステップS26)。図2の例では、抽出装置100は、商品GD11の文字情報CH11からスコアが閾値「0.6」以上である文字列を商品名として抽出する。具体的には、抽出装置100は、図2中の抽出情報ES11に示すように、商品GD11の文字情報CH11から文字列ST11と文字列ST14とを商品名として抽出する。例えば、抽出装置100は、腕時計バンドである商品GD11の製造元に対応する文字列ST11と、商品GD11の具体的な名称に対応する文字列ST14とを商品名とを商品名して抽出する。
その後、抽出装置100は、ステップS26において抽出した商品名を含む商品GD11の商品情報を登録する(ステップS27)。例えば、抽出装置100は、商品GD11の商品名として、文字列ST11と文字列ST14とを含む「商品名NX」を登録する。図2の例では、抽出装置100は、「商品名NX」を含む商品GD11の商品情報を商品情報記憶部123に登録する。
例えば、抽出装置100は、図2中の商品情報記憶部123に示すように、商品ID「GD11」により識別される商品(商品GD11)の商品名として、「商品名NX」を登録する。また、抽出装置100は、商品GD11の画像として、画像IM11を登録し、商品GD11の文字情報として、文字情報CH11を登録する。
その後、抽出装置100は、抽出した商品名に基づいてサービスを提供する(ステップS28)。図2の例では、抽出装置100は、ユーザU1が利用する端末装置10に商品名「商品名NX」として、商品GD11に関する商品情報を提供する。
上述したように、抽出装置100は、販売元が出品した商品情報から商品名を抽出し、抽出した商品名をユーザに提供するカテゴリに関する情報を販売元に提供することにより、電子商取引サービスを向上させ、ユーザの満足度を高めることができる。
(2-1.抽出情報の利用)
図1及び図2の例においては、ネットショッピングモールにおける場合を例示したが、オークションサービスにおいて個人が出品を行う場合、事業者が行う場合に比べて入力する情報が不足している場合が多い。このような場合であっても、抽出装置100は、種々の用途のモデルを生成し、生成したモデルを用いて取得した出品に関する情報に対して抽出処理を行うことにより、抽出した情報を販売元に提供することが可能となる。これにより、抽出装置100は、文字情報から商品の特徴情報を適切に抽出することができる。
また、オークションサービスに限らず、1つの販売元が商品を販売する形態ではなく、複数の販売元から出品を受け付けるネットショッピングモール等においても同様の課題が生じる。例えば、JANコード等のような商品の識別情報が出品に関する情報に含まれていない場合、どの商品とどの商品が対応するかが不明である場合が多く、商品の販売状況等の管理が難しい。このように、商品の識別情報が出品に関する情報に含まれていない場合であっても、例えば商品名を抽出するモデルを用いることにより、商品に関する情報を抽出し、その情報に基づいて商品の販売状況等を管理することが可能となる。
(2-2.画像内の文字)
図1及び図2の例では、モデルを用いて商品の文字情報から商品名を抽出する場合を示した、抽出装置100は、種々の情報を用いて、商品名を抽出してもよい。例えば、抽出装置100は、画像内に商品名が含まれている場合、その情報を基に商品名を抽出してもよい。例えば、抽出装置100は、商品のパッケージ含まれる画像に商品名が含まれている場合、その情報を基に商品名を抽出してもよい。例えば、抽出装置100は、商品のパッケージ含まれる画像に商品名が含まれている場合、その情報を商品名として抽出してもよい。
〔3.抽出装置の構成〕
次に、図4を用いて、実施形態に係る抽出装置100の構成について説明する。図4は、実施形態に係る抽出装置100の構成例を示す図である。図4に示すように、抽出装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、抽出装置100は、抽出装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークと有線または無線で接続され、管理者装置50との間で情報の送受信を行う。
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図4に示すように、学習データ記憶部121と、モデル情報記憶部122と、商品情報記憶部123とを有する。
(学習データ記憶部121)
実施形態に係る学習データ記憶部121は、学習データに関する各種情報を記憶する。図5は、実施形態に係る学習データ記憶部の一例を示す図である。例えば、学習データ記憶部121は、モデルの生成に用いる教師データを記憶する。図5に示す学習データ記憶部121には、「商品ID」、「正解情報」、「画像」、「文字情報」といった項目が含まれる。
「商品ID」は、商品を識別するための識別情報を示す。例えば、商品ID「GD101」により識別される商品は、図1の例に示した商品GD101に対応する。「正解情報」は、商品IDにより識別される商品の商品名を示す。「画像」は、商品情報に含まれる画像を示す。図5では「画像」に「IM101」といった概念的な情報が格納される例を示したが、実際には、画像情報、または、その格納場所を示すファイルパス名などが格納される。
「文字情報」は、商品情報の文字情報を示す。図5では「文字情報」に「CH101」といった概念的な情報が格納される例を示したが、実際には、商品情報のタイトルや説明文等の商品情報に関する種々の文字情報が格納される。
例えば、図5に示す例において、商品ID「GD101」により識別される商品(商品GD101)の商品情報は、画像IM101や文字情報CH101を含むことを示す。また、例えば、商品GD101の商品名は、名称「商品名NA」である。また、例えば、図5に示す例において、商品ID「GD102」により識別される商品(商品GD102)の商品情報は、画像IM102や文字情報CH102を含むことを示す。例えば、商品GD102の商品名は、名称「商品名NB」である。なお、図5の例では商品名を「商品名NA」や「商品名NB」等の抽象的な符号で図示するが、商品名は、具体的な商品の名称(文字列)であるものとする。
なお、学習データ記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、学習データ記憶部121は、学習データが追加された日時に関する情報を記憶してもよい。また、例えば、学習データ記憶部121は、各学習データがどのような判定処理により追加されたかを示す情報を記憶してもよい。例えば、学習データ記憶部121は、各学習データが管理者の選択により判定されたか等を示す情報を記憶してもよい。
(モデル情報記憶部122)
実施形態に係るモデル情報記憶部122は、モデルに関する情報を記憶する。例えば、モデル情報記憶部122は、生成処理により生成されたモデル情報(モデルデータ)を記憶する。図6は、実施形態に係るモデル情報記憶部の一例を示す図である。図6に示すモデル情報記憶部122は、「モデルID」、「部分モデルID」、「用途」、「モデルデータ」といった項目が含まれる。なお、図6では、モデルM1のみを図示するが、モデルM2、M3等の複数のモデル情報が記憶されてもよい。
「モデルID」は、モデルを識別するための識別情報を示す。例えば、モデルID「M1」により識別されるモデルは、図1の例に示したモデルM1に対応する。「部分モデルID」は、対応するモデルの部分モデルを識別するための識別情報を示す。例えば、部分モデルID「M11」により識別される部分モデルは、図1の例に示した部分モデルM11に対応する。「用途」は、対応する部分モデルの用途を示す。また、「モデルデータ」は、対応する部分モデルのデータを示す。例えば、「モデルデータ」には、各層におけるノードと、各ノードが採用する関数と、ノードの接続関係と、ノード間の接続に対して設定される接続係数とを含む情報が含まれる。
例えば、図6に示す例において、モデルM1には、部分モデルM11~M13等が含まれることを示す。また、例えば、部分モデルID「M11」により識別されるモデル(部分モデルM11)は、用途が「画像特徴抽出」であり、入力された画像情報からの特徴の抽出に用いられることを示す。また、図6に示す例において、部分モデルM11は、CNNであることを示す。
モデルM1(各モデルデータMDT11~MDT13等)は、商品に関する画像情報及び文字情報が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された画像情報及び文字情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、文字情報に含まれる各文字列が商品名であるかどうかを定量化した値に関する情報を出力層から出力するよう、コンピュータを機能させるためのモデルである。
例えば、モデルM1が含む第1要素は、入力層または中間層が有するいずれかのノードに対応する。また、第2要素は、第1要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第1要素の重みは、第1要素と対応するノードから第2要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
なお、モデル情報記憶部122は、上記に限らず、目的に応じて種々のモデル情報を記憶してもよい。
(商品情報記憶部123)
実施形態に係る商品情報記憶部123は、商品に関する各種情報を記憶する。図7に、実施形態に係る商品情報記憶部123の一例を示す。図7に示す商品情報記憶部123は、「商品ID」、「画像」、「文字情報」、「商品名」といった項目を有する。
「商品ID」は、商品を識別するための識別情報を示す。「画像」は、商品情報である商品情報の画像を示す。図7では「画像」に「IM1」といった概念的な情報が格納される例を示したが、実際には、画像情報、または、その格納場所を示すファイルパス名などが格納される。
「文字情報」は、商品IDにより識別される商品の商品情報に含まれる文字情報を示す。「文字情報」には、商品IDにより識別される商品の商品情報に含まれるタイトルや説明文等の種々の文字情報が含まれる。なお、図7に示す商品情報記憶部123では、文字情報を文字情報「CH1」等のように抽象的な記号で示すが、例えば「新品バッグA…」や「送料無料…」等のように、各タイトルは対応する商品の具体的なタイトルであるものとする。「商品名」は、対応する商品の商品名を示す。例えば、「商品名」は、モデルにより抽出された商品名を示す。
例えば、図7に示す例において、商品ID「GD1」により識別される商品(商品GD1)の画像は、画像「IM1」であることを示す。また、商品GD1の文字情報は、文字情報「CH1」であることを示す。また、商品GD1の商品名は、名称「商品名NP」であることを示す。
なお、商品情報記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。商品情報記憶部123は、商品の具体的な名称等を記憶してもよい。
(制御部130)
図4の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、抽出装置100内部の記憶装置に記憶されている各種プログラム(抽出プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。制御部130は、モデル情報記憶部122に記憶されているモデルM1等に従った情報処理により、商品に関する画像情報及び文字情報が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された画像情報及び文字情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、文字情報に含まれる各文字列が商品名であるかどうかを定量化した値に関する情報を出力層から出力する。
図4に示すように、制御部130は、取得部131と、生成部132と、抽出部133と、提供部134とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図4に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。制御部130は、記憶部120に記憶されているモデルM1(各モデルデータMDT11~MDT13等)に従った情報処理により、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された画像情報及び文字情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、文字情報に含まれる各文字列が商品名であるかどうかを定量化した値に関する情報を出力層から出力する。
(取得部131)
取得部131は、各種情報を取得する。例えば、取得部131は、学習データ記憶部121と、モデル情報記憶部122と、商品情報記憶部123等から各種情報を取得する。また、取得部131は、各種情報を外部の情報処理装置から取得してもよい。また、取得部131は、各種情報を管理者装置50や販売元装置20等から取得してもよい。
取得部131は、商品に関する文字情報及び画像情報を取得する。例えば、取得部131は、複数の販売元が提供する商品を購入可能な電子商取引サービスにおける出品に関する情報を取得する。例えば、取得部131は、出品に関する複数の種別の情報を取得する。例えば、取得部131は、出品に関する画像情報及び文字情報を取得する。例えば、取得部131は、出品に関する複数の種別の情報を取得する。例えば、取得部131は、出品に関する画像情報及び文字情報を取得する。
図1の例では、取得部131は、正解情報が付与された学習データLD1を取得する。例えば、取得部131は、正解情報が付与された商品GD101~GD104等の商品情報を取得する。
図2の例では、取得部131は、販売元SA1が利用する販売元装置20から出品に関する情報を取得する。例えば、取得部131は、販売元装置20から画像IM11及び文字情報CH11を含む商品GD11の商品情報を取得する。
(生成部132)
生成部132は、各種情報を生成する。例えば、生成部132は、学習データ記憶部121に記憶された学習データを用いて、モデル情報記憶部122に示すようなモデルを生成する。例えば、生成部132は、取得部131により取得された学習データに基づいて、電子商取引サービスにおける商品の文字情報から商品名を抽出するために用いるモデルを生成する。生成部132は、モデルを生成し、生成したモデルをモデル情報記憶部122に格納する。具体的には、生成部132は、商品に関する画像情報及び文字情報が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された画像情報及び文字情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、文字情報に含まれる各文字列が商品名であるかどうかを定量化した値に関する情報を出力層から出力するモデルを生成する。
図1の例では、生成部132は、複数の文字列ST1~ST4等をベクトル化する。例えば、生成部132は、分散表現等の種々の従来技術を適宜用いて、文字列ST1~ST4等の各々をベクトル化する。例えば、生成部132は、w2v(word2vec)等の周知の技術を用いて、文字列ST1~ST4等の各々をベクトル化する。図1の例では、生成部132は、文字列ST1~ST4等の各々に対応するベクトルEN1~EN4等を生成する。例えば、生成部132は、文字列ST1に対応するベクトルEN1を生成する。例えば、生成部132は、分散表現等の技術により、文字列ST1からベクトルEN1を生成する。
図1の例では、生成部132は、学習データに基づいてモデルを生成する。例えば、生成部132は、学習データ記憶部121中の商品GD101~GD104等の商品情報を学習データ(教師データ)として、学習を行なうことにより、モデルを生成する。
図1の例では、生成部132は、モデルM1に商品GD101に対応する情報が入力された場合に、正解情報「商品名NA」に含まれる文字列に対応するスコアが大きくなるように、学習処理を行う。例えば、生成部132は、モデルM1に商品GD101に対応する情報が入力された場合に、文字列ST1や文字列ST3に対応するスコアが大きくなるように、学習処理を行う。例えば、生成部132は、モデルM1に商品GD101に対応する情報が入力された場合に、商品名NAに含まれる文字列ST1や文字列ST3に対応するスコアが所定の閾値より大きくなるように、学習処理を行う。例えば、生成部132は、モデルM1に商品GD101に対応する情報が入力された場合に、スコアSC1やスコアSC3が所定の閾値より大きくなるように、学習処理を行う。例えば、生成部132は、モデルM1に商品GD101に対応する情報が入力された場合に、スコアSC1やスコアSC3が「1」に近くなるように、学習処理を行う。
例えば、生成部132は、モデルM1に商品GD101に対応する情報が入力された場合に、正解情報「商品名NA」に含まれない文字列に対応するスコアが小さくなるように、学習処理を行う。例えば、生成部132は、モデルM1に商品GD101に対応する情報が入力された場合に、商品名NAに含まれない文字列ST2や文字列ST4に対応するスコアが小さくなるように、学習処理を行う。例えば、生成部132は、モデルM1に商品GD101に対応する情報が入力された場合に、文字列ST2や文字列ST4に対応するスコアが所定の閾値より小さくなるように、学習処理を行う。例えば、生成部132は、モデルM1に商品GD101に対応する情報が入力された場合に、スコアSC2やスコアSC4が所定の閾値より小さくなるように、学習処理を行う。例えば、生成部132は、モデルM1に商品GD101に対応する情報が入力された場合に、スコアSC2やスコアSC4が「0」に近くなるように、学習処理を行う。
例えば、生成部132は、モデルM1における出力(スコア)と、入力した商品情報に対応する正解情報との誤差が少なくなるようにパラメータ(接続係数)を補正するバックプロパゲーション(誤差逆伝播法)等の処理によりモデルM1を生成する。例えば、生成部132は、所定の損失(ロス)関数を最小化するようにバックプロパゲーション等の処理を行うことによりモデルM1を生成する。なお、生成部132は、上記のような学習処理を各部分モデルM11~M13の各々について行ってもよい。例えば、生成部132は、上記のような学習処理を部分モデルM12について行ってもよい。また、例えば、生成部132は、上記のような学習処理を部分モデルM13について行ってもよい。
(抽出部133)
抽出部133は、各種情報を抽出する。抽出部133は、学習データ記憶部121と、モデル情報記憶部122と、商品情報記憶部123等に記憶された情報を用いて種々の情報を抽出する。例えば、抽出部133は、取得部131により取得された各種情報に基づいて、種々の情報を抽出する。
例えば、抽出部133は、取得部131により取得された画像情報に基づいて、文字情報から商品の特徴を示す特徴情報を抽出する。例えば、抽出部133は、文字情報から、商品の特徴に関連する文字列である関連文字列を特徴情報として抽出する。例えば、抽出部133は、文字情報に含まれる複数の文字列のうち、関連文字列を特徴情報として抽出する。例えば、抽出部133は、所定の形態素解析により文字情報が分割された複数の文字列のうち、関連文字列を特徴情報として抽出する。
例えば、抽出部133は、複数のベクトル情報の各々を所定のニューラルネットワークであるモデルに入力することにより出力される複数の出力情報を用いて、関連文字列を特徴情報として抽出する。例えば、抽出部133は、複数のベクトル情報をリカレントニューラルネットワークであるモデルに入力することにより出力される複数の出力情報を用いて、関連文字列を特徴情報として抽出する。
例えば、抽出部133は、複数のベクトル情報を文字情報における順序に基づいてモデルに入力することにより出力される複数の出力情報を用いて、関連文字列を特徴情報として抽出する。例えば、抽出部133は、画像情報をベクトル化した画像ベクトル情報を用いて、文字情報から特徴情報を抽出する。例えば、抽出部133は、画像情報を所定のニューラルネットワークであるモデルによりベクトル化した画像ベクトル情報を用いて、文字情報から特徴情報を抽出する。例えば、抽出部133は、畳み込みニューラルネットワークであるモデルによりベクトル化した画像ベクトル情報を用いて、文字情報から特徴情報を抽出する。例えば、抽出部133は、文字情報から商品の名称を特徴情報として抽出する。
例えば、抽出部133は、商品の文字情報から商品名を抽出するために用いられるモデルであって、出品に関する情報が入力されたモデルの出力に基づいて、商品の特徴情報を抽出する。例えば、抽出部133は、出品に関する複数の種別の情報が入力されたモデルの出力に基づいて、商品の特徴情報を抽出する。例えば、抽出部133は、画像情報及び文字情報が入力されたモデルの出力に基づいて、商品の特徴情報を抽出する。例えば、抽出部133は、所定の情報により生成されたニューラルネットワークを含むモデルを用いて、商品の特徴情報を抽出する。例えば、抽出部133は、畳み込み処理及びプーリング処理を行うニューラルネットワークを含むモデルを用いて、商品の特徴情報を抽出する。
図2の例では、抽出部133は、商品GD11の画像IM11や文字列ST11~ST14等の各々に対応するベクトルEN11~EN14等をモデルM1に入力する。これにより、抽出部133は、モデルM1に文字列ST11~ST14等が商品名であるかを示すスコアを出力させる。図2の例では、抽出部133は、モデルM1(部分モデルM13)が出力するスコアが所定の閾値(例えば、0.6等)以上である場合、その文字列が商品名であると判定する。
例えば、抽出部133は、商品GD11の情報を入力することにより、モデルM1は、文字情報の各文字列が商品名であるかを示すスコアを出力させる。例えば、モデルM1は、文字列ST11が商品名であるかを示すスコアSC11を出力する。図2の例では、モデルM1が文字列ST11のスコアSC11として「0.7」を出力したため、抽出部133は、文字列ST11が商品GD11の商品名であると判定する。
また、例えば、モデルM1は、文字列ST12が商品名であるかを示すスコアSC12を出力する。図2の例では、モデルM1が文字列ST12のスコアSC12として「0.2」を出力したため、抽出部133は、文字列ST12が商品GD11の商品名ではないと判定する。
例えば、モデルM1は、文字列ST13が商品名であるかを示すスコアSC13を出力する。図2の例では、モデルM1が文字列ST13のスコアSC13として「0.4」を出力したため、抽出部133は、文字列ST13が商品GD11の商品名ではないと判定する。
例えば、モデルM1は、文字列ST14が商品名であるかを示すスコアSC14を出力する。図2の例では、モデルM1が文字列ST14のスコアSC14として「0.8」を出力したため、抽出部133は、文字列ST14が商品GD11の商品名であると判定する。
そして、抽出部133は、商品GD11の文字情報CH11から商品名を抽出する。図2の例では、抽出部133は、商品GD11の文字情報CH11からスコアが閾値「0.6」以上である文字列を商品名として抽出する。具体的には、抽出部133は、商品GD11の文字情報CH11から、文字列ST11と文字列ST14とを商品名として抽出する。
例えば、抽出部133は、図2中の商品情報記憶部123に示すように、商品ID「GD11」により識別される商品(商品GD11)の商品名として、「商品名NX」を登録する。また、抽出部133は、商品GD11の画像として、画像IM11を登録し、商品GD11の文字情報として、文字情報CH11を登録する。
例えば、抽出部133は、上述したニューラルネットワーク等、任意の構造を有するモデルを用いて、スコアの算出を行う。具体的には、モデルM1は、画像及び文字情報を含む商品情報(すなわち、上述したスコアの算出に用いられる各要素)が入力された場合に、文字情報に含まれる各文字列が商品名であるかの可能性を定量化した値(すなわち、商品の文字情報に含まれる各文字列のうち、どの文字列が商品名である可能性が高いかを示唆するスコア)を出力するように係数が設定される。抽出部133は、このようなモデルM1を用いて、文字情報に含まれる各文字列が商品名であるかの可能性に関するスコアを算出する。
なお、上記例では、モデルM1が、画像及び文字情報を含む商品情報が入力された場合に、文字情報に含まれる各文字列が商品名であるかの可能性を定量化した値を出力するモデルである例を示した。しかし、実施形態に係るモデル(モデルX)は、モデルM1にデータの入出力を繰り返すことで得られる結果に基づいて生成されるモデルであってもよい。例えば、モデルXは、画像及び文字情報を含む商品情報を入力とし、モデルM1が出力するスコアを出力とするよう学習されたモデル(モデルY)であってもよい。または、モデルM1は、画像及び文字情報を含む商品情報を入力とし、モデルYの出力値を出力とするよう学習されたモデルであってもよい。また、抽出部133がGAN(Generative Adversarial Networks)を用いた抽出処理を行う場合、モデルM1は、GANの一部を構成するモデルであってもよい。
(提供部134)
提供部134は、各種情報を提供する。例えば、提供部134は、管理者装置50や販売元装置20に各種情報を提供する。例えば、提供部134は、抽出部133により抽出された商品の特徴情報に基づくサービスを提供する。
図2の例では、提供部134は、抽出した商品名に基づいてサービスを提供する。例えば、提供部134は、ユーザU1が利用する端末装置10に商品名「商品名NX」として、商品GD11に関する商品情報を提供する。
〔4.生成処理のフロー〕
次に、図8を用いて、実施形態に係る抽出システム1による生成処理の手順について説明する。図8は、実施形態に係る生成処理の一例を示すフローチャートである。
図8に示すように、抽出装置100は、学習データを取得する(ステップS101)。例えば、抽出装置100は、学習データ記憶部121から学習データを取得する。
その後、抽出装置100は、学習データに基づきモデルを生成する(ステップS102)。図1の例では、抽出装置100は、学習データ記憶部121から学習データを用いてモデルM1を生成する。
〔5.抽出処理のフロー〕
次に、図9を用いて、実施形態に係る抽出システム1による生成処理の手順について説明する。図9は、実施形態に係る抽出処理の一例を示すフローチャートである。
図9に示すように、抽出装置100は、販売元から商品情報を取得する(ステップS201)。図2の例では、抽出装置100は、販売元SA1が利用する販売元装置20から画像と文字情報とを含む商品情報を取得する。
また、抽出装置100は、モデルを用いて商品情報から商品名を抽出する(ステップS202)。図2の例では、抽出装置100は、商品情報中の文字情報から商品名を抽出する。
また、抽出装置100は、抽出した商品名に基づいてサービスを提供する(ステップS203)。図2の例では、抽出装置100は、ユーザU1が利用する端末装置10に商品名「商品名NX」として、商品GD11に関する商品情報を提供する。
〔6.判定用モデル〕
上述した例では、図1及び図2の例では、各文字列が商品名であるかを示すスコアを出力するモデルを一例として示したが、モデルは、種々の情報を出力するモデルであってもよい。この点について図10を用いて説明する。図10は、実施形態に係るモデルの一例を示す図である。なお、図1と同様の点については、同一の部位には同一の符号を付し、適宜説明を省略する。
図10に示すモデルM1Aは、部分モデルM13が部分モデルM21に変更されている点で図1及び図2に示すモデルM1と相違する。
例えば、図10に示すモデルM1A(部分モデルM21)は、商品情報に含まれる文字情報と画像情報とが入力された場合、画像情報に基づいて、文字情報の各文字列が商品名の先頭、中間、終端、商品名以外のいずれであるかを示す複数のスコアを出力する。例えば、図10に示すモデルM1A(部分モデルM21)は、ソフトマックス関数等の種々の関数を用いて、各スコアを出力してもよい。
例えば、部分モデルM21は、文字列ST1の文字特徴CFE1と画像IM101の画像特徴IFE101との連結ベクトルが入力されることにより、文字列ST1が商品名の先頭、中間、終端、商品名以外のいずれであるかを示す複数のスコアSC21を出力する。図10の例では、文字列ST1が商品名の先頭である確率に関するスコアがスコアSC21-1であり、中間である確率に関するスコアがスコアSC21-2であり、終端である確率に関するスコアがスコアSC21-3であり、商品名以外である確率に関するスコアがスコアSC21-4である場合を示す。
また、例えば、部分モデルM21は、文字列ST2の文字特徴CFE2と画像IM101の画像特徴IFE101との連結ベクトルが入力されることにより、文字列ST2が商品名の先頭、中間、終端、商品名以外のいずれであるかを示す複数のスコアSC22を出力する。図10の例では、文字列ST2が商品名の先頭である確率に関するスコアがスコアSC22-1であり、中間である確率に関するスコアがスコアSC22-2であり、終端である確率に関するスコアがスコアSC22-3であり、商品名以外である確率に関するスコアがスコアSC22-4である場合を示す。
また、例えば、部分モデルM21は、文字列ST3の文字特徴CFE3と画像IM101の画像特徴IFE101との連結ベクトルが入力されることにより、文字列ST3が商品名の先頭、中間、終端、商品名以外のいずれであるかを示す複数のスコアSC23を出力する。図10の例では、文字列ST3が商品名の先頭である確率に関するスコアがスコアSC23-1であり、中間である確率に関するスコアがスコアSC23-2であり、終端である確率に関するスコアがスコアSC23-3であり、商品名以外である確率に関するスコアがスコアSC23-4である場合を示す。
また、例えば、抽出装置100は、上記のようなスコアを用いて、文字情報から商品名を抽出してもよい。例えば、抽出装置100は、各文字列が商品名の先頭、中間、終端、商品名以外のいずれであるかを示す複数のスコア(確率)に基づいて、文字情報から商品名を抽出してもよい。例えば、抽出装置100は、系列ラベリングの種々の従来技術を適宜用いて文字情報から商品名を抽出してもよい。例えば、抽出装置100は、条件付き確率場、いわゆるCRF(Conditional random field)等の種々の従来技術を適宜用いて文字情報から商品名を抽出してもよい。なお、CRFについては、従来技術であるため説明を省略する。
例えば、抽出装置100は、所定のスコア(尤度)が高い組合せ(経路)を選択することにより、その経路において商品名の先頭、中間、終端のいずれかとされた文字列を商品名として抽出してもよい。例えば、文字列ST1が商品名以外、文字列ST2が商品名先頭、文字列ST3が商品名中間、文字列ST4が商品名以外、文字列ST5が商品名終端となる組合せ(経路)のスコア(尤度)が最も高い場合、抽出装置100は、文字列ST2、文字列ST3、及び文字列ST5を商品名として抽出してもよい。なお、上記は一例であり、抽出装置100は、種々の情報を適宜用いて商品名を抽出してもよい。
このように、抽出装置100は、各文字列が商品名の先頭、中間、終端、商品名以外のいずれであるかの組合せのうち、尤度が高い経路をたどることにより、より適切に文字情報から商品名を抽出することができる。すなわち、抽出装置100は、各文字列が商品名であるか否か、また商品名である場合はどの位置に該当であるかの組合せのうち、より尤もらしい組合せを選択することにより、適切な商品名の抽出が可能となる。
〔7.文字に対応する画像の注目領域〕
また、抽出装置100は、文字列に対応する画像の領域の特徴を用いて、商品名の抽出を行ってもよい。この点について、図11を用いて説明する。図11は、実施形態に係る画像の特徴の一例を示す図である。なお、図1と同様の点については、同一の部位には同一の符号を付し、適宜説明を省略する。
抽出装置100は、画像特徴IFE101から文字特徴CFE1を用いて、文字特徴CFE1に対応する画像における領域の特徴(以下、「注視特徴」ともいう)を抽出する。図11の例では、抽出装置100は、画像特徴IFE101と文字特徴CFE1とをアテンションモデルである部分モデルM31に入力することにより、文字特徴CFE1に対応する画像における領域の注視特徴AFE101を抽出する。なお、アテンションモデルについては、従来技術であるため説明を省略する。このように、抽出装置100は、文字列に応じて、その文字列については画像中のどこに注視すべきかを学習されたアテンションモデルを用いてもよい。
図11の例では、抽出装置100は、文字特徴CFE1に対応する文字列が「黒」である場合、画像特徴IFE101と文字特徴CFE1とをアテンションモデルM31に入力することにより、画像特徴IFE101における「黒」に対応する領域の注視特徴AFE101を抽出する。例えば、抽出装置100は、文字特徴CFE1に対応する文字列が「黒」である場合、画像特徴IFE101と文字特徴CFE1とをアテンションモデルM31に入力することにより、画像中に含まれる「黒」色の領域に対応する注視特徴AFE101を抽出する。
例えば、部分モデルM32は、文字列ST1の文字特徴CFE1と注視特徴AFE101との連結ベクトルが入力されることにより、文字列ST1が商品名であるかを示すスコアSC31を出力する。そして、抽出装置100は、部分モデルM32が出力するスコアSC31に基づいて、文字情報から商品名を抽出する。なお、抽出装置100は、スコアを用いた商品名については、図1や図10と同様の処理であってもよい。
また、例えば、抽出装置100は、文字列が「文字盤」である場合、画像特徴と文字特徴とをアテンションモデルM31に入力することにより、画像特徴における「文字盤」に対応する領域の注視特徴を抽出する。例えば、抽出装置100は、文文字列が「文字盤」である場合、アテンションモデルM31を用いて、画像中に含まれる「文字盤」の領域に対応する注視特徴を抽出する。
このように、抽出装置100は、各文字列に対応する注視特徴を用いることにより、より適切に文字情報から商品名を抽出することができる。すなわち、抽出装置100は、文字列に対応する画像の特定の領域の情報を用いることにより、画像と文字情報の両方の特徴を反映した商品名の抽出が可能となる。
〔8.効果〕
上述してきたように、実施形態に係る抽出装置100は、取得部131と、抽出部133とを有する。取得部131は、商品に関する文字情報及び画像情報を取得する。また、抽出部133は、取得部131により取得された画像情報に基づいて、文字情報から商品の特徴を示す特徴情報を抽出する。
このように、実施形態に係る抽出装置100は、画像情報に基づいて、文字情報から商品の特徴を示す特徴情報を抽出することにより、文字情報から商品の特徴情報を適切に抽出することができる。
また、実施形態に係る抽出装置100において、抽出部133は、文字情報から、商品の特徴に関連する文字列である関連文字列を特徴情報として抽出する。
このように、実施形態に係る抽出装置100は、文字情報から、商品の特徴に関連する文字列である関連文字列を特徴情報として抽出することにより、文字情報から商品の特徴情報を適切に抽出することができる。
また、実施形態に係る抽出装置100において、抽出部133は、文字情報に含まれる複数の文字列のうち、関連文字列を特徴情報として抽出する。
このように、実施形態に係る抽出装置100は、文字情報に含まれる複数の文字列のうち、関連文字列を特徴情報として抽出することにより、文字情報から商品の特徴情報を適切に抽出することができる。
また、実施形態に係る抽出装置100において、抽出部133は、所定の形態素解析により文字情報が分割された複数の文字列のうち、関連文字列を特徴情報として抽出する。
このように、実施形態に係る抽出装置100は、所定の形態素解析により文字情報が分割された複数の文字列のうち、関連文字列を特徴情報として抽出することにより、文字情報から商品の特徴情報を適切に抽出することができる。
また、実施形態に係る抽出装置100において、抽出部133は、複数のベクトル情報の各々を所定のニューラルネットワークであるモデルに入力することにより出力される複数の出力情報を用いて、関連文字列を特徴情報として抽出する。
このように、実施形態に係る抽出装置100は、複数のベクトル情報の各々を所定のニューラルネットワークであるモデルに入力することにより出力される複数の出力情報を用いて、関連文字列を特徴情報として抽出することにより、文字情報から商品の特徴情報を適切に抽出することができる。
また、実施形態に係る抽出装置100において、抽出部133は、複数のベクトル情報をリカレントニューラルネットワークであるモデルに入力することにより出力される複数の出力情報を用いて、関連文字列を特徴情報として抽出する。
このように、実施形態に係る抽出装置100は、複数のベクトル情報をリカレントニューラルネットワークであるモデルに入力することにより出力される複数の出力情報を用いて、関連文字列を特徴情報として抽出することにより、文字情報から商品の特徴情報を適切に抽出することができる。
また、実施形態に係る抽出装置100において、抽出部133は、複数のベクトル情報を文字情報における順序に基づいてモデルに入力することにより出力される複数の出力情報を用いて、関連文字列を特徴情報として抽出する。
このように、実施形態に係る抽出装置100は、複数のベクトル情報を文字情報における順序に基づいてモデルに入力することにより出力される複数の出力情報を用いて、関連文字列を特徴情報として抽出することにより、文字情報から商品の特徴情報を適切に抽出することができる。
また、実施形態に係る抽出装置100において、抽出部133は、画像情報をベクトル化した画像ベクトル情報を用いて、文字情報から特徴情報を抽出する。
このように、実施形態に係る抽出装置100は、画像情報をベクトル化した画像ベクトル情報を用いて、文字情報から特徴情報を抽出することにより、文字情報から商品の特徴情報を適切に抽出することができる。
また、実施形態に係る抽出装置100において、抽出部133は、画像情報を所定のニューラルネットワークであるモデルによりベクトル化した画像ベクトル情報を用いて、文字情報から特徴情報を抽出する。
このように、実施形態に係る抽出装置100は、画像情報を所定のニューラルネットワークであるモデルによりベクトル化した画像ベクトル情報を用いて、文字情報から特徴情報を抽出することにより、文字情報から商品の特徴情報を適切に抽出することができる。
また、実施形態に係る抽出装置100において、抽出部133は、畳み込みニューラルネットワークであるモデルによりベクトル化した画像ベクトル情報を用いて、文字情報から特徴情報を抽出する。
このように、実施形態に係る抽出装置100は、畳み込みニューラルネットワークであるモデルによりベクトル化した画像ベクトル情報を用いて、文字情報から特徴情報を抽出することにより、文字情報から商品の特徴情報を適切に抽出することができる。
また、実施形態に係る抽出装置100において、抽出部133は、文字情報から商品の名称を特徴情報として抽出する。
このように、実施形態に係る抽出装置100は、文字情報から商品の名称を特徴情報として抽出することにより、文字情報から商品の特徴情報を適切に抽出することができる。
また、実施形態に係る抽出装置100は、提供部134を有する。提供部134は、抽出部133により抽出された商品の特徴情報に基づくサービスを提供する。
このように、実施形態に係る抽出装置100は、抽出された商品の特徴情報に基づくサービスを提供することにより、適切にサービスを提供することができる。
〔9.ハードウェア構成〕
上述してきた実施形態に係る抽出装置100は、例えば図12に示すような構成のコンピュータ1000によって実現される。図12は、抽出装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る抽出装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムまたはデータ(例えば、モデルM1(各モデルデータMDT11~MDT13等))を実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムまたはデータ(例えば、モデルM1(各モデルデータMDT11~MDT13等))を記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
以上、本願の実施形態及び変形例のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
〔10.その他〕
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。