JP2019164654A - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP2019164654A
JP2019164654A JP2018052694A JP2018052694A JP2019164654A JP 2019164654 A JP2019164654 A JP 2019164654A JP 2018052694 A JP2018052694 A JP 2018052694A JP 2018052694 A JP2018052694 A JP 2018052694A JP 2019164654 A JP2019164654 A JP 2019164654A
Authority
JP
Japan
Prior art keywords
processing
message
query
unit
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018052694A
Other languages
English (en)
Other versions
JP7086661B2 (ja
Inventor
将也 田地
Masaya TAJI
将也 田地
将人 国田
Masato Kunida
将人 国田
培楠 張
Peinan Zhang
培楠 張
良介 深澤
Ryosuke Fukazawa
良介 深澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2018052694A priority Critical patent/JP7086661B2/ja
Publication of JP2019164654A publication Critical patent/JP2019164654A/ja
Application granted granted Critical
Publication of JP7086661B2 publication Critical patent/JP7086661B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】処理の流れをシンプルな構成とし、処理負荷を軽減することができる情報処理装置、情報処理方法、およびプログラムを提供することである。【解決手段】情報処理装置は、メッセージを、キュー構造の記憶部に記憶させる処理予約部と、先に記憶されたメッセージほど優先的に記憶部から読み出し、読み出したメッセージに基づく処理を並列に行う複数の処理実行部と、複数の処理実行部の其々の処理結果を出力する出力部と、を備え、処理予約部は、コンテンツ制作者によって入力されたコンテンツに関するクエリを、メッセージとして記憶部に記憶させ、処理実行部は、記憶部からクエリを読み出した場合、入力されたクエリに基づいてコンテンツ配信対象とするユーザを選択して出力する外部装置に対して、読み出したクエリを入力し、出力部は、外部装置の出力結果を、コンテンツ制作者の端末装置に出力する。【選択図】図3

Description

本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
ニュース記事とユーザとの類似度を求め、その類似度に基づいて、ユーザの趣味嗜好に合ったコンテンツを配信する技術が知られている(例えば、特許文献1参照)。
特開2016−038822号公報
しかしながら、従来の技術では、ニュース記事などのコンテンツとユーザとの類似度
を求める処理が複雑であり、しばしば処理負荷が大きくなってしまう場合があった。
本発明は、上記の課題に鑑みてなされたものであり、処理の流れをシンプルな構成とし、処理負荷を軽減することができる情報処理装置、情報処理方法、およびプログラムを提供することを目的としている。
本発明の一態様は、処理内容を指定するメッセージを、キュー構造の記憶部に記憶させる処理予約部と、前記記憶部に記憶された複数の前記メッセージのうち、先に記憶されたメッセージほど優先的に前記記憶部から読み出し、前記読み出したメッセージに基づく処理を並列に行う複数の処理実行部と、前記複数の処理実行部の其々の処理結果を出力する出力部と、を備え、前記処理予約部は、コンテンツの制作者によって入力された前記コンテンツに関するクエリを、前記メッセージとして前記記憶部に記憶させ、前記処理実行部は、前記記憶部から前記クエリを読み出した場合、入力されたクエリに基づいて、前記コンテンツの配信対象の候補となる複数のユーザの中から前記コンテンツの配信対象とするユーザを選択して出力する外部装置に対して、前記読み出したクエリを入力し、前記出力部は、前記クエリに対する前記外部装置の出力結果を、前記制作者の端末装置に出力する、情報処理装置である。
本発明の一態様によれば、処理の流れをシンプルな構成とし、処理負荷を軽減することができる。
実施形態における情報処理装置100を含む情報処理システム1の一例を示す図である。 コンテンツが配信された端末装置10の画面の一例を示す図である。 実施形態における情報処理装置100の構成の一例を示す図である。 実施形態における情報処理装置100による一連のバッチ処理の流れを示すフローチャートである。 ユーザベクトルの生成処理を説明するための図である。 第1記憶部DB1に格納されたステータスの結果の一例を示す図である。 実施形態における情報処理装置100による一連のオンデマンド処理の流れを示すフローチャートである。 クエリに興味関心を示すユーザの選択処理を説明するための図である。 ユーザの集計結果の一例を示す図である。 実施形態の情報処理装置100のハードウェア構成の一例を示す図である。
以下、本発明を適用した情報処理装置、情報処理方法、およびプログラムを、図面を参照して説明する。
[概要]
情報処理装置は、一以上のプロセッサにより実現される。情報処理装置は、処理内容を指定するメッセージを、キュー構造の記憶部に記憶させ、記憶部に記憶させた複数のメッセージのうち、先に記憶させたメッセージほど優先的に記憶部から読み出し、読み出したメッセージに基づく処理を並列に行う。そして、情報処理装置は、メッセージに基づく処理の処理結果を出力する。
情報処理装置には、コンテンツの制作者によってコンテンツに関するクエリがメッセージとして入力される場合がある。例えば、コンテンツの制作者が、自らが制作したコンテンツに対して興味関心を寄せるユーザを特定するために、コンテンツのことを端的に表現したキーワードをクエリとして情報処理装置に入力することがある。この場合、情報処理装置は、クエリとして入力されたキーワードをキュー構造の記憶部に記憶させる。情報処理装置は、記憶部から読み出したメッセージを基に複数の処理を並列に行っているときに、読み出したメッセージがクエリであった場合、そのクエリを、ある外部装置に入力する。
外部装置は、クエリが入力されると、その入力されたクエリの特徴と、コンテンツの配信対象の候補となる複数のユーザの其々の特徴との類似度を導出し、その類似度に基づいて、複数のユーザの中から、コンテンツの配信対象とするユーザを選択して出力する装置である。例えば、外部装置は、クエリの特徴との類似度が閾値以上となるユーザを、コンテンツの配信対象とするユーザとして選択する。クエリの特徴との類似度が閾値以上となるユーザは、コンテンツの制作者が制作したコンテンツに対して興味関心を示すことが想定されるユーザである。
情報処理装置は、外部装置にクエリを入力して得られた出力結果、すなわちコンテンツの制作者が制作したコンテンツに対して興味関心を示すことが想定されるユーザの集計結果などを、コンテンツの制作者が利用する端末装置に出力する。このように、メッセージのキューシングシステムを利用することで、処理の流れをシンプルな構成とすることができ、装置全体の処理負荷を軽減することができる。
[全体構成]
図1は、実施形態における情報処理装置100を含む情報処理システム1の一例を示す図である。実施形態における情報処理システム1は、例えば、一以上の端末装置10と、サービス提供装置20と、情報処理装置100と、分散処理装置200とを備える。これらの装置は、ネットワークNWを介して接続される。また、これらの装置のうち一部は、他の装置に仮想的な装置として包含されてもよく、例えば、サービス提供装置20や分散処理装置200の機能の一部または全部が、情報処理装置100の機能によって実現される仮想マシンであってもよいし、これとは反対に、情報処理装置100の機能の一部または全部が、サービス提供装置20や分散処理装置200の機能によって実現される仮想マシンであってもよい。
図1に示す各装置は、ネットワークNWを介して種々の情報を送受信する。ネットワークNWは、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、プロバイダ端末、無線通信網、無線基地局、専用回線などを含む。なお、図1に示す各装置の全ての組み合わせが相互に通信可能である必要はなく、ネットワークNWは、一部にローカルなネットワークを含んでもよい。
端末装置10は、例えば、スマートフォンなどの携帯電話、タブレット端末、各種パーソナルコンピュータなどの、入力装置、表示装置、通信装置、記憶装置、および演算装置を備える端末装置である。通信装置は、NIC(Network Interface Card)などのネットワークカード、無線通信モジュールなどを含む。端末装置10では、ウェブブラウザやアプリケーションプログラムなどのUA(User Agent)が起動し、ユーザの入力する内容に応じたリクエストをサービス提供装置20に送信する。また、UAが起動された端末装置10は、サービス提供装置20から取得した情報に基づいて、表示装置に各種画像を表示させる。
サービス提供装置20は、例えば、UAとして起動されたウェブブラウザからのリクエストに応じてウェブページを端末装置10に提供するウェブサーバである。ウェブページは、例えば、インターネット上において商品を販売するショッピングサイトやオークションサイト、フリーマーケットサイト等のウェブサイトを構成するウェブページであってよい。また、サービス提供装置20は、検索サイトやSNS(Social Networking Service)、メールサービスなどの各種サービスを提供するウェブページを端末装置10に提供してもよい。また、サービス提供装置20は、UAとして起動されたアプリケーションからのリクエストに応じてコンテンツを端末装置10に提供することで、上述した各種ウェブサイトと同様のサービスを提供するアプリケーションサーバであってもよい。サービス提供装置20は、「コンテンツ配信部」の一例である。
例えば、サービス提供装置20は、自らが提供するサービスに新たなコンテンツが登録された場合、サービスを利用する複数のユーザのうち、新たに登録されたコンテンツに対して、より興味や関心を示すことが想定されるユーザに、そのコンテンツを配信する。
図2は、コンテンツが配信された端末装置10の画面の一例を示す図である。例えば、サービス提供装置20は、コンテンツの一つとしてニュース記事が新規に入稿された場合、そのニュース記事により興味関心を示しやすいユーザの端末装置10に対して、ニュース記事をプッシュ通知などで配信する(図中R1)。
情報処理装置100は、メッセージキューイングシステムを利用した装置である。メッセージとは、情報処理装置100に含まれる各構成要素(プロセッサが実現する各機能部)が、キュー構造の記憶装置を介して相互に送受信するデータである。情報処理装置100に含まれる各構成要素は、キュー構造の記憶装置を介してメッセージを送受信するため、互いに異なる周期で独立して処理を行うことができる。メッセージには、一方の構成要素から他方の構成要素に処理を依頼するメッセージ(以下、処理依頼メッセージと称する)や、処理の依頼を受けた方の構成要素が、処理を依頼した方の構成要素に対して、処理が完了したことを通知するためのメッセージ(以下、処理完了メッセージと称する)などが含まれる。処理完了メッセージは、「処理完了情報」の一例である。
情報処理装置100は、例えば、予め決められた処理を所定周期(例えば一日)で繰り返すバッチ処理と、所定のユーザの要求に応じて処理を行うオンデマンド処理とを行う。情報処理装置100は、例えば、バッチ処理として、分散処理装置200にユーザベクトルの生成処理を指示する。ユーザベクトルは、例えば、新たに登録されたコンテンツの配信対象の候補となる複数のユーザの其々の特徴を示すベクトルである。
また、情報処理装置100は、例えば、オンデマンド処理として、コンテンツの制作者によって新たに制作されたコンテンツに関するクエリが入力された場合、分散処理装置200に、コンテンツの配信対象の候補となる複数のユーザの中から、新たに制作されたコンテンツに対して興味関心を示すことが想定されるユーザを選択する処理を指示する。クエリは、例えば、一つの単語(ワード)であってもよいし、複数の単語を含む語句(フレーズ)であってもよい。
分散処理装置200は、例えば、Hadoopと呼ばれる分散ファイルシステムを利用して、画像やテキストなどの構造化されていないメタデータを複数のデータに分割し、分割した其々のデータに対して、並列に処理を行う装置である。例えば、分散処理装置200は、情報処理装置100からクエリが入力されると、その入力されたクエリの特徴を示すクエリベクトルを生成し、生成したクエリベクトルと、予め生成しておいた複数のユーザベクトルとの類似度を並列処理によって導出する。分散処理装置200は、複数のユーザベクトルの中から、クエリベクトルとの類似度が閾値以上のユーザベクトルを抽出し、抽出したユーザベクトルの元となったユーザをコンテンツの配信対象とするユーザとして選択し、その結果を情報処理装置100に出力する。
[情報処理装置の構成]
図3は、実施形態における情報処理装置100の構成の一例を示す図である。図示のように、情報処理装置100は、例えば、ジョブ管理部110と、ジョブステータス監視部120と、ジョブ実行部130と、ジョブ実行状況出力部140と、オンデマンド処理予約部150と、ユーザID変換部160と、第1記憶部DB1と、第2記憶部DB2と、第3記憶部DB3とを備える。ジョブ管理部110と、オンデマンド処理予約部150と、ユーザID変換部160とを合わせたものは、「処理予約部」の一例である。また、ジョブ管理部110は、「処理管理部」の一例であり、ジョブ実行部130は、「処理実行部」の一例である。
ジョブ管理部110、ジョブステータス監視部120、ジョブ実行部130、ジョブ実行状況出力部140、オンデマンド処理予約部150、およびユーザID変換部160は、例えば、CPU(Central Processing Unit)などのプロセッサが各種記憶部に格納されたプログラムを実行することにより実現される。また、ジョブ管理部110、ジョブステータス監視部120、ジョブ実行部130、ジョブ実行状況出力部140、オンデマンド処理予約部150、およびユーザID変換部160のうち一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、またはGPU(Graphics Processing Unit)などのハードウェア(回路部;circuitry)により実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
第1記憶部DB1、第2記憶部DB2、および第3記憶部DB3は、例えば、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置により実現される。これらの記憶装置には、ファームウェアやアプリケーションプログラムなどの各種プログラムが格納される。
第1記憶部DB1には、ジョブステータス監視部120の処理結果が記憶される。
第2記憶部DB2には、メッセージが格納されるキュー構造の記憶領域(以下、メッセージキューと称する)が含まれる。メッセージキューに格納されたメッセージは、後述する優先度が設けられていない限り、先に格納されたものから順に読み出される。メッセージキューには、上述した種々のメッセージのうち、少なくとも処理依頼メッセージが格納される。
第3記憶部DB3には、コンテンツの配信対象の候補となる複数のユーザの其々の識別情報(以下、ユーザIDと称する)が予め格納される。ユーザIDは、サービス提供装置20により提供されるサービスを利用するユーザに対して割り当てられるIDであり、ユーザが任意に設定可能である。
ジョブ管理部110は、ジョブステータス監視部120によって監視された処理(ジョブ)の実行状況を参照し、完了せずに途中で停止した処理が存在する場合、その停止した処理をジョブ実行部130に再実行させる。
ジョブステータス監視部120は、後述するジョブ実行部130による処理の実行状況を監視し、その監視結果を第1記憶部DB1に記憶させる。
ジョブ実行部130は、第1ワーカ132(1)から第kワーカ132(k:kは任意の自然数)までの複数のワーカを備える。各ワーカ132は、第2記憶部DB2のメッセージキューに格納された一つ以上の処理依頼メッセージのうち、先に格納された処理依頼メッセージから優先的に読み出し、読み出した処理依頼メッセージによって指定された処理を行う。各ワーカ132は、処理依頼メッセージによって指定された処理が完了した場合、処理が完了したことを示す処理完了メッセージを第2記憶部DB2に格納する。第2記憶部DB2に格納された処理完了メッセージは、上述したジョブステータス監視部120によって参照される。各ワーカ132は、上述したメッセージキューから処理依頼メッセージを読み出し、処理が完了したら処理完了メッセージを第2記憶部DB2に格納する、という一連の処理を所定の周期で繰り返す。以下、ワーカ132が処理を実行している状態を「稼働状態」と称し、ワーカ132が処理を実行していない状態を「待機状態」と称して説明する。
ジョブ実行状況出力部140は、第1記憶部DB1から、ジョブ実行部130の処理の実行状況の結果を示す情報を読み出し、第1記憶部DB1から読み出した情報を、ネットワークNWを介して、コンテンツの制作者が利用する端末装置10に提供(送信)する。例えば、ジョブ実行状況出力部140は、端末装置10で起動されたウェブブラウザから、ジョブ実行部130の処理の実行状況を確認するためのインタフェース(WebUI)を介して、第1記憶部DB1から読み出した情報を端末装置10に提供してよい。
また、ジョブ実行状況出力部140は、第1記憶部DB1から読み出した、ジョブ実行部130の処理の実行状況の結果を示す情報を、ジョブ管理部110に送信する。
オンデマンド処理予約部150は、例えば、クエリを入力するためのWebUIに設けられたクエリ入力窓に対して、単語または語句が入力された場合、その(それらの)単語または語句をクエリとする。例えば、コンテンツの制作者は、自らが制作したコンテンツの内容から、そのコンテンツを端的に表した単語や語句を作り出してクエリ入力窓に入力してもよいし、コンテンツに含まれるテキストから抜粋した単語や語句をクエリ入力窓に入力してもよい。例えば、コンテンツの制作者が、オンリンピックに関するニュース記事を制作し、「○○オリンピック」や「○○五輪」、「フィギュアスケート_金メダル」といったオンリンピックに関連した単語や語句をクエリ入力窓に入力したとする。この場合、オンデマンド処理予約部150は、「○○オリンピック」や「○○五輪」、「フィギュアスケート_金メダル」といった単語や語句をクエリとする。そして、オンデマンド処理予約部150は、クエリとして入力された単語または語句をメッセージ(以下、クエリメッセージと称する)として、メッセージキューに格納する。クエリメッセージは、処理依頼メッセージの一つである。クエリメッセージに基づく処理内容については後述する。
ユーザID変換部160は、分散処理装置200から、コンテンツの配信対象の候補となる複数のユーザのアカウント情報を取得する。アカウント情報には、例えば、ユーザによってユーザIDとして設定されたメールアドレスや、パスワード、生年月日、名前、性別などの個人情報が含まれる。
ユーザID変換部160は、取得したアカウント情報から、メールアドレスを抽出し、抽出したメールアドレスをユーザIDとして第3記憶部DB3に格納すると共に、抽出したユーザIDを暗号化する。そして、ユーザID変換部160は、暗号化したユーザIDによって識別されるユーザのユーザベクトルを生成するように依頼する処理依頼メッセージを第2記憶部DB2のメッセージキューに格納する。暗号化したユーザIDによって識別されるユーザは「特徴の導出対象とする対象ユーザ」の一例である。
[バッチ処理のフローチャート]
以下、実施形態における情報処理装置100による一連のバッチ処理の流れをフローチャートに即して説明する。図4は、実施形態における情報処理装置100による一連のバッチ処理の流れを示すフローチャートである。本フローチャートの処理は、例えば、時間単位、日単位、週単位などの所定の周期で繰り返し行われてよい。
まず、ユーザID変換部160は、暗号化したユーザIDによって識別されるユーザのユーザベクトルを生成するように依頼する処理依頼メッセージを、第2記憶部DB2のメッセージキューに格納する(S100)。この処理依頼メッセージには、暗号化されたユーザIDが含まれる。
次に、情報処理装置100は、第1ワーカ132(1)から第kワーカ132(k)までの複数のワーカの中に、待機状態のワーカ132が存在するか否かを判定し(S102)、待機状態のワーカ132が存在しない場合(全てのワーカ132が稼働状態である場合)、本フローチャートの処理を終了する。
一方、待機状態のワーカ132が存在する場合(全てのワーカ132が稼働状態でない場合)、その待機状態のワーカ132は、メッセージキューから処理依頼メッセージを読み出し、読み出した処理依頼メッセージによって指定された処理を開始する(S104)。
例えば、読み出した処理依頼メッセージが、ユーザベクトルを生成することを依頼する処理依頼メッセージである場合、ワーカ132は、処理依頼メッセージに含まれる暗号化されたユーザIDを分散処理装置200に送信することで、分散処理装置200にユーザベクトルを生成させる。
図5は、ユーザベクトルの生成処理を説明するための図である。例えば、依頼を受けた分散処理装置200は、処理依頼メッセージに含まれる、暗号化されたユーザIDを復号し、その復号したユーザIDに対応付けられたユーザの行動履歴に基づいて、ユーザベクトルを生成する。ユーザの行動履歴には、例えば、ユーザが閲覧したコンテンツに含まれるテキストや、コンテンツ検索時に入力されたクエリのログが含まれる。ユーザの行動履歴は、予め分散処理装置200によって収集されているものとする。
例えば、ユーザが閲覧したコンテンツがニュース記事である場合、分散処理装置200は、ニュース記事のタイトルおよび本文を形態素解析によって複数の単語(形態素)に分割し、分割した各単語をユーザベクトルの要素に決定する。この際、分散処理装置200は、各要素の値を単語の重みとする。例えば、分散処理装置200は、TF(Term Frequency)‐IDF(Inverse Document Frequency)と呼ばれる単語の出現頻度を評価する手法を用いて、分割した各単語(または複数の単語の組み合わせである語句)に対して重みを付与する。TFは、それぞれの単語(形態素)のテキスト(タイトルおよび本文)内での出現頻度を表しており、そのTF値は、対象のテキスト内で出現する回数が多い単語ほど大きくなる。IDFは、ある単語が出現するテキストの頻度を表しており、そのIDF値は、ユーザが閲覧したコンテンツに含まれるテキストでは出現し易く、ユーザが閲覧していない他のコンテンツに含まれるテキストでは出現し難い単語ほど大きくなる。例えば、分散処理装置200は、TF値とIDF値との積を、各単語の重み(以下、第1の重みと称する)とする。
また、分散処理装置200は、ユーザ間でのコンテンツの閲覧傾向の差異を単語の重みに反映させるため、上述した手法でTF値を導出すると共に、対象とするユーザ(処理依頼メッセージに含まれるユーザIDのユーザ)は閲覧回数が多く、他のユーザ(処理依頼メッセージに含まれるユーザIDと異なるユーザIDのユーザ)は閲覧回数が少ないコンテンツに含まれるテキストの単語ほど大きくなる傾向のIDF値(以下、第2のIDF値)を導出する。分散処理装置200は、TF値と第2のIDF値との積を、各単語の第2の重みとする。
そして、分散処理装置200は、第1の重みと第2の重みとに基づいて各要素の値を決定し、それらの複数の要素値をもつ多次元のベクトルをユーザベクトルとして生成する。分散処理装置200は、ユーザベクトルの生成依頼を受ける度に、その処理依頼メッセージに含まれるユーザIDに基づいて、ユーザIDによって識別されるユーザのユーザベクトルを生成する。分散処理装置200は、例えば、ユーザベクトルを生成すると、そのユーザベクトルを内部の記憶装置に記憶させておくと共に、ユーザベクトルの生成が完了したことを示す情報をワーカ132に返す。ワーカ132は、分散処理装置200からユーザベクトルの生成が完了したことを示す情報を受けると、ユーザベクトルを生成することを依頼する処理依頼メッセージに対する処理完了メッセージを第2記憶部DB2に格納する。
図4に戻り、次に、ジョブステータス監視部120は、第2記憶部DB2に処理完了メッセージが格納されたか否かを判定し(S106)、第2記憶部DB2に処理完了メッセージが格納された場合、処理依頼メッセージに基づく処理のステータス(実行状況)を、処理が完了したことを示すステータスにし、そのステータスの結果を、第1記憶部DB1に格納する(S108)。
一方、ジョブステータス監視部120は、第2記憶部DB2に処理完了メッセージが格納されていない場合、処理依頼メッセージをメッセージキューから読み出したワーカ132が処理を開始してから所定時間が経過したか否かを判定し(S110)、処理を開始してから所定時間が経過した場合、処理依頼メッセージに基づく処理のステータスを、処理が完了せずに異常(エラー)が生じたことを示すステータスにし、そのステータスの結果を、第1記憶部DB1に格納する(S112)。これによって、本フローチャートの処理が終了する。
図6は、第1記憶部DB1に格納されたステータスの結果の一例を示す図である。図示の例のように、ジョブステータス監視部120は、処理依頼メッセージを読み出したワーカ132の識別情報であるワーカIDに対して、各処理依頼メッセージの識別情報であるジョブIDと、ワーカ132が処理を開始した日時と、ワーカ132が処理を完了した日時と、ステータスとを対応付けた情報を、ステータスの結果として第1記憶部DB1に格納してよい。図示の例では、ワーカIDが「2」であるワーカ132(2)に依頼したジョブIDが「DDD」の処理が完了していない。この場合、ジョブステータス監視部120は、ワーカ132(2)に依頼した「DDD」の処理のステータスをエラーのステータスにする。
ジョブ実行状況出力部140は、第1記憶部DB1に格納されたステータスの結果を参照し、エラーのステータスが存在する場合、ステータスの結果からエラーのステータスのジョブIDを抽出し、抽出したジョブIDをジョブ管理部110に送信する。なお、ジョブ実行状況出力部140は、第1記憶部DB1に格納されたステータスの結果をそのままジョブ管理部110に送信してもよい。
ジョブ管理部110は、エラーのステータスのジョブIDを参照し、そのジョブIDと同じ処理依頼メッセージ、すなわち処理を再実行させるための処理依頼メッセージを、第2記憶部DB2のメッセージキューに格納する。この際、ジョブ管理部110は、処理依頼メッセージの優先度を最も高くする。優先度とは、メッセージキューに格納された処理依頼メッセージのうち、どの処理依頼メッセージから読み出すのかを順位付けるものである。例えば、オンデマンド処理予約部150やユーザID変換部160によってメッセージキューに格納される処理依頼メッセージには、優先度が設けられておらず、メッセージキューに格納された順序で処理依頼メッセージが読み出される。これに対して、ジョブ管理部110によってメッセージキューに格納される処理依頼メッセージには、最も高い優先度が設けられているため、メッセージキューに既に他の処理依頼メッセージが格納されていても、後に格納された再実行のための処理依頼メッセージが先に読み出される。この結果、待機状態のいずれかのワーカ132は、ステータスがエラーとなった処理を最優先で実行する。
[オンデマンド処理のフローチャート]
以下、実施形態における情報処理装置100による一連のオンデマンド処理の流れをフローチャートに即して説明する。図7は、実施形態における情報処理装置100による一連のオンデマンド処理の流れを示すフローチャートである。
まず、オンデマンド処理予約部150は、例えば、WebUIにクエリが入力されたか否かを判定し(S200)、WebUIにクエリが入力された場合、入力されたクエリを含むクエリメッセージを、第2記憶部DB2のメッセージキューに格納する(S202)。
次に、情報処理装置100は、第1ワーカ132(1)から第kワーカ132(k)までの複数のワーカの中に、待機状態のワーカ132が存在するか否かを判定し(S204)、待機状態のワーカ132が存在しない場合(全てのワーカ132が稼働状態である場合)、本フローチャートの処理を終了する。
一方、待機状態のワーカ132が存在する場合(全てのワーカ132が稼働状態でない場合)、その待機状態のワーカ132は、メッセージキューから処理依頼メッセージを読み出し、読み出した処理依頼メッセージによって指定された処理を開始する(S206)。
例えば、読み出した処理依頼メッセージがクエリメッセージである場合、ワーカ132は、クエリメッセージに含まれるクエリを分散処理装置200に送信することで、分散処理装置200に、コンテンツの配信対象の候補となる複数のユーザの中から、クエリに興味関心を示すユーザを選択させる。WebUIには、コンテンツの制作者が制作したコンテンツに関連する単語や語句がクエリとして入力されるため、クエリに興味関心を示すユーザは、コンテンツの制作者が制作したコンテンツに興味関心を示すユーザでもある。クエリに興味関心を示すユーザは、「コンテンツの配信対象とするユーザ」の一例である。
図8は、クエリに興味関心を示すユーザの選択処理を説明するための図である。例えば、分散処理装置200は、ワーカ132からクエリを取得すると、クエリの特徴を示すクエリベクトルを生成する。例えば、分散処理装置200は、word2vecやGloVeのような分散表現または単語埋め込み表現(Word Embedding(s))と呼ばれる手法を用いて、クエリからクエリベクトルを生成してよい。分散表現または単語埋め込み表現は、単語または語句と、その単語または語句の前後で出現する単語または語句との共起性に基づいて、単語や語句をベクトル化する手法であり、例えば、予め用意された複数の単語や語句を含むコーパスに基づいて、ある文脈においてクエリの前後に出現する単語の出現確率を求め、その出現確率を要素値とする多次元のベクトルを生成する手法である。
例えば、分散処理装置200は、クエリベクトルを生成すると、そのクエリベクトルと、予め生成しておいた複数のユーザベクトルの其々との類似度(例えばコサイン類似度)を導出し、クエリベクトルとの類似度が大きい上位所定数(例えば10個)のユーザベクトルを抽出したり、クエリベクトルとの類似度が閾値以上の全てのユーザベクトルを抽出したりする。そして、分散処理装置200は、抽出したユーザベクトルの元となったユーザIDのユーザを、クエリに興味関心を示すユーザとして選択する。
分散処理装置200は、コンテンツの配信対象の候補となる複数のユーザの中から、クエリに興味関心を示すユーザを選択すると、クエリに興味関心を示すユーザの集計結果(ユーザの選択結果)を示す情報と、ユーザの選択処理が完了したことを示す情報とをワーカ132に返す。なお、分散処理装置200は、クエリに興味関心を示すユーザとして選択したユーザ以外のユーザもユーザの集計結果に含めてよい。ワーカ132は、分散処理装置200から、ユーザの集計結果を示す情報と、ユーザの選択処理が完了したことを示す情報とを受けると、クエリメッセージに対する処理完了メッセージと、ユーザの集計結果を示す情報とを第2記憶部DB2に格納する。
図7に戻り、次に、ジョブステータス監視部120は、第2記憶部DB2に、クエリメッセージに対する処理完了メッセージと、ユーザの集計結果を示す情報とが格納されたか否かを判定し(S208)、第2記憶部DB2に双方が格納された場合、クエリメッセージに基づく処理のステータス(実行状況)を、処理が完了したことを示すステータスにし、そのステータスの結果を、第1記憶部DB1に格納すると共に、ユーザの集計結果を示す情報を、第1記憶部DB1に格納する(S210)。
次に、ジョブ実行状況出力部140は、第1記憶部DB1に格納されたユーザの集計結果を示す情報を、WebUIなどを介してコンテンツの制作者の端末装置10に提供する(S212)。
図9は、ユーザの集計結果の一例を示す図である。例えば、ジョブ実行状況出力部140は、ユーザの集計結果として、クエリに興味関心を示すユーザ、或いはココンテンツに興味関心を示すユーザの数を、「ターゲティング通知対象のユーザ数」として提供する。また、ジョブ実行状況出力部140は、各ユーザのユーザID(暗号化されたユーザID)に対して、そのユーザが利用する端末装置10の識別情報(図中デバイスID)や、端末装置10にインストールされたOS(Operating System)の種類などが対応付けられた情報を、ユーザの集計結果として提供してもよい。また、ジョブ実行状況出力部140は、クエリベクトルとの類似度の大きさに対するユーザの人数の分布を表すグラフなどを、ユーザの集計結果として提供してもよい。このような情報をユーザの集計結果としてコンテンツの制作者に提供するため、コンテンツの制作者は、自らが制作したコンテンツに何人程度のユーザが興味関心を示すのかを知ることができる。この結果、コンテンツの制作者は、制作したコンテンツを改編したり、他のコンテンツに差し替えたりすることができる。
また、ジョブ実行状況出力部140は、第1記憶部DB1に格納されたユーザの集計結果を示す情報を、コンテンツの制作者の端末装置10に提供するのに代えて、或いは加えて、サービス提供装置20に提供してもよい。この場合、サービス提供装置20は、ユーザの集計結果に含まれるユーザ、すなわち、コンテンツの制作者が制作したコンテンツに興味関心を示すことが想定されるユーザの端末装置10に、コンテンツの制作者が制作したコンテンツをプッシュ通知などで配信してよい。
一方、ジョブステータス監視部120は、第2記憶部DB2に、クエリメッセージに対する処理完了メッセージおよびユーザの集計結果を示す情報のいずれか一方または双方が格納されていない場合、クエリメッセージをメッセージキューから読み出したワーカ132が処理を開始してから所定時間が経過したか否かを判定し(S214)、処理を開始してから所定時間が経過した場合、クエリメッセージに基づく処理のステータスを、処理が完了せずに異常(エラー)が生じたことを示すステータスにし、そのステータスの結果を、第1記憶部DB1に格納する(S216)。これによって、本フローチャートの処理が終了する。
以上説明した実施形態によれば、処理依頼メッセージを、メッセージキューに格納するジョブ管理部110、オンデマンド処理予約部150、またはユーザID変換部160と、メッセージキューに格納された処理依頼メッセージのうち、先に格納された処理依頼メッセージほど優先的にメッセージキューから読み出し、読み出した処理依頼メッセージに基づく処理を並列に行う複数のワーカ132と、複数のワーカ132の其々の処理結果を出力するジョブ実行状況出力部140と、を備え、オンデマンド処理予約部150は、コンテンツの制作者によって入力されたコンテンツに関するクエリを、処理依頼メッセージの一つであるクエリメッセージとしてメッセージキューに格納し、複数のワーカ132のうち待機状態のワーカ132は、メッセージキューからクエリメッセージを読み出した場合、クエリメッセージに含まれるクエリを分散処理装置200に入力する。分散処理装置200は、入力されたクエリをクエリベクトルに変換し、そのクエリベクトルと、コンテンツの配信対象の候補となる複数のユーザの其々のユーザベクトルとの類似度に基づいて、複数のユーザの中からコンテンツの配信対象とするユーザを選択し、その結果をワーカ132に出力する。ジョブ実行状況出力部140は、分散処理装置200の出力結果を、コンテンツの制作者の端末装置10に提供する。このようなメッセージのキューシングシステムを利用することで、情報処理装置100の各構成要素は、互いに異なる周期で独立して処理を行うことができるため、処理の流れをシンプルな構成とすることができ、装置全体の処理負荷を軽減することができる。
また、上述した実施形態によれば、複数のワーカ132の中に、メッセージキューから処理依頼メッセージを読み出してから所定時間が経過するまでに処理完了メッセージを出力しないワーカ132が存在する場合、ジョブ管理部110は、そのワーカ132が行った処理を再実行させるための処理依頼メッセージに最も高い優先度を付けてメッセージキューに格納する。これによって、メッセージキューに既に他の処理依頼メッセージが格納されていても、後に格納された再実行のための処理依頼メッセージが先に読み出されるため、途中で止まった処理を最優先で再実行させることができる。この結果、処理の再実行性を高めることができる。
また、上述した実施形態によれば、ユーザIDを予め暗号化した上で、ユーザベクトルの生成処理などの各種処理を行うため、ユーザの個人情報の秘匿性を高めながら、装置全体の処理負荷を軽減することができる。
また、上述した実施形態によれば、メッセージのキューシングシステムを利用するため、構成要素間での同期などを取る必要がなく、情報処理装置100の各構成要素の処理内容を変更したり、新たな構成要素を追加したりすることを容易に行うことができる。この結果、情報処理装置100のモジュール性を向上させることができる。
<ハードウェア構成>
上述した実施形態の情報処理装置100は、例えば、図10に示すようなハードウェア構成により実現される。図10は、実施形態の情報処理装置100のハードウェア構成の一例を示す図である。
情報処理装置100は、NIC100−1、CPU100−2、RAM100−3、ROM100−4、フラッシュメモリやHDDなどの二次記憶装置100−5、およびドライブ装置100−6が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置100−6には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置100−5、またはドライブ装置100−6に装着された可搬型記憶媒体に格納されたプログラムがDMAコントローラ(不図示)などによってRAM100−3に展開され、CPU100−2によって実行されることで、ジョブ管理部110、ジョブステータス監視部120、ジョブ実行部130、ジョブ実行状況出力部140、オンデマンド処理予約部150、およびユーザID変換部160の各構成要素が実現される。これらの構成要素が参照するプログラムは、ネットワークNWを介して他の装置からダウンロードされてもよい。
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
1…情報処理システム、10…端末装置、20…サービス提供装置、100…情報処理装置、110…ジョブ管理部、120…ジョブステータス監視部、130…ジョブ実行部、132…ワーカ、140…ジョブ実行状況出力部、150…オンデマンド処理予約部、160…ユーザID変換部、DB1…第1記憶部、DB2…第2記憶部、DB3…第3記憶部、200…分散処理装置

Claims (9)

  1. 処理内容を指定するメッセージを、キュー構造の記憶部に記憶させる処理予約部と、
    前記記憶部に記憶された複数の前記メッセージのうち、先に記憶されたメッセージほど優先的に前記記憶部から読み出し、前記読み出したメッセージに基づく処理を並列に行う複数の処理実行部と、
    前記複数の処理実行部の其々の処理結果を出力する出力部と、を備え、
    前記処理予約部は、コンテンツの制作者によって入力された前記コンテンツに関するクエリを、前記メッセージとして前記記憶部に記憶させ、
    前記処理実行部は、前記記憶部から前記クエリを読み出した場合、入力されたクエリに基づいて、前記コンテンツの配信対象の候補となる複数のユーザの中から前記コンテンツの配信対象とするユーザを選択して出力する外部装置に対して、前記読み出したクエリを入力し、
    前記出力部は、前記クエリに対する前記外部装置の出力結果を、前記制作者の端末装置に出力する、
    情報処理装置。
  2. 前記外部装置は、入力されたクエリの特徴と、前記コンテンツの配信対象の候補となる複数のユーザの其々の特徴との類似度に基づいて、前記複数のユーザの中から、前記コンテンツの配信対象とするユーザを選択する、
    請求項1に記載の情報処理装置。
  3. 前記複数の処理実行部の其々は、前記読み出したメッセージに基づく処理が完了した場合、処理が完了したことを示す処理完了情報を出力し、
    前記複数の処理実行部の其々によって出力される前記処理完了情報に基づいて、前記複数の処理実行部の其々の処理の実行状況を監視する監視部を更に備える、
    請求項1または2に記載の情報処理装置。
  4. 前記監視部によって処理の実行状況が監視された前記複数の処理実行部の中に、前記記憶部から前記メッセージを読み出してから所定時間が経過するまでに前記処理完了情報を出力しない所定の処理実行部が存在する場合、前記複数の処理実行部のいずれかに、前記所定の処理実行部によって読み出されたメッセージに基づく処理を再実行させる処理管理部を更に備える、
    請求項3に記載の情報処理装置。
  5. 前記処理管理部は、前記所定の処理実行部によって読み出されたメッセージの優先度を最も高くして前記記憶部に再度記憶させることで、前記所定の処理実行部によって読み出されたメッセージに基づく処理を最優先で再実行させる、
    請求項4に記載の情報処理装置。
  6. 前記処理予約部は、更に、前記複数のユーザの中から、前記特徴の導出対象とする対象ユーザを指定するメッセージを前記記憶部に記憶させ、
    前記処理実行部は、前記記憶部から前記対象ユーザを指定するメッセージを読み出した場合、前記対象ユーザの特徴を導出することを前記外部装置に依頼し、
    前記依頼を受けた外部装置は、前記対象ユーザの行動履歴に基づいて、前記対象ユーザの特徴を導出する、
    請求項1から5のうちいずれか1項に記載の情報処理装置。
  7. 前記外部装置によって前記コンテンツの配信対象として選択されたユーザに、前記制作者のコンテンツを配信するコンテンツ配信部を更に備える、
    請求項1から6のうちいずれか1項に記載の情報処理装置。
  8. コンピュータが、
    処理内容を指定するメッセージを、キュー構造の記憶部に記憶させ、
    前記記憶部に記憶させた複数の前記メッセージのうち、先に記憶されたメッセージほど優先的に前記記憶部から読み出し、
    前記読み出したメッセージに基づく処理を並列に行い、
    並列に行った前記読み出したメッセージに基づく処理の処理結果を出力し、
    コンテンツの制作者によって入力された前記コンテンツに関するクエリを、前記メッセージとして前記記憶部に記憶させ、
    前記記憶部から前記クエリを読み出した場合、入力されたクエリに基づいて、前記コンテンツの配信対象の候補となる複数のユーザの中から前記コンテンツの配信対象とするユーザを選択して出力する外部装置に対して、前記読み出したクエリを入力し、
    前記クエリに対する前記外部装置の出力結果を、前記制作者の端末装置に出力する、
    情報処理方法。
  9. コンピュータに、
    処理内容を指定するメッセージを、キュー構造の記憶部に記憶させる処理と、
    前記記憶部に記憶させた複数の前記メッセージのうち、先に記憶されたメッセージほど優先的に前記記憶部から読み出す処理と、
    前記読み出したメッセージに基づく処理を並列に行う処理と、
    並列に行った前記読み出したメッセージに基づく処理の処理結果を出力する処理と、
    コンテンツの制作者によって入力された前記コンテンツに関するクエリを、前記メッセージとして前記記憶部に記憶させる処理と、
    前記記憶部から前記クエリを読み出した場合、入力されたクエリに基づいて、前記コンテンツの配信対象の候補となる複数のユーザの中から前記コンテンツの配信対象とするユーザを選択して出力する外部装置に対して、前記読み出したクエリを入力する処理と、
    前記クエリに対する前記外部装置の出力結果を、前記制作者の端末装置に出力する処理と、
    を実行させるためのプログラム。
JP2018052694A 2018-03-20 2018-03-20 情報処理システム、情報処理方法、およびプログラム Active JP7086661B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018052694A JP7086661B2 (ja) 2018-03-20 2018-03-20 情報処理システム、情報処理方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018052694A JP7086661B2 (ja) 2018-03-20 2018-03-20 情報処理システム、情報処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2019164654A true JP2019164654A (ja) 2019-09-26
JP7086661B2 JP7086661B2 (ja) 2022-06-20

Family

ID=68066200

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018052694A Active JP7086661B2 (ja) 2018-03-20 2018-03-20 情報処理システム、情報処理方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP7086661B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007364A (ja) * 2000-06-22 2002-01-11 Fujitsu Ltd 並列計算機システムのジョブスケジューリングを行うスケジューリング装置
JP2010539594A (ja) * 2007-09-17 2010-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 計算集中的なデータベース・ユーザ定義プログラムを付属の高パフォーマンス並列コンピュータ上で実行するシステムおよび方法
JP2013516008A (ja) * 2009-12-23 2013-05-09 アビニシオ テクノロジー エルエルシー クエリー管理
JP2016038822A (ja) * 2014-08-08 2016-03-22 ヤフー株式会社 抽出装置、抽出方法及び抽出プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007364A (ja) * 2000-06-22 2002-01-11 Fujitsu Ltd 並列計算機システムのジョブスケジューリングを行うスケジューリング装置
JP2010539594A (ja) * 2007-09-17 2010-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 計算集中的なデータベース・ユーザ定義プログラムを付属の高パフォーマンス並列コンピュータ上で実行するシステムおよび方法
JP2013516008A (ja) * 2009-12-23 2013-05-09 アビニシオ テクノロジー エルエルシー クエリー管理
JP2016038822A (ja) * 2014-08-08 2016-03-22 ヤフー株式会社 抽出装置、抽出方法及び抽出プログラム

Also Published As

Publication number Publication date
JP7086661B2 (ja) 2022-06-20

Similar Documents

Publication Publication Date Title
KR101785596B1 (ko) 온라인 소셜 네트워크에서 검색 결과의 블렌딩
US8145660B2 (en) Implementing an expanded search and providing expanded search results
US20170329630A1 (en) Personal digital assistant
US20150106078A1 (en) Contextual analysis engine
US8700621B1 (en) Generating query suggestions from user generated content
US20150106156A1 (en) Input/output interface for contextual analysis engine
US20150106157A1 (en) Text extraction module for contextual analysis engine
US20140278939A1 (en) Advertisement extraction device and advertisement extraction method
US20130212109A1 (en) Methods and apparatus for classifying content
CN102792300A (zh) 基于用户角色的可定制的语义搜索
TW201120665A (en) Systems and methods for providing advanced search result page content
US20130124368A1 (en) Performing deduplication on product information search results
JP2013545189A (ja) マルチステージを使用したカテゴリ情報の決定
WO2016078533A1 (zh) 搜索方法、装置、设备及非易失性计算机存储介质
JP2007141135A (ja) 情報処理装置、検索方法およびプログラム
JP6434954B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2014534542A (ja) ユーザ作成コンテンツの処理方法及び装置
JP2016153972A (ja) 抽出装置、抽出方法及び抽出プログラム
JP5256273B2 (ja) 意図抽出装置、方法及びプログラム
CN107851114A (zh) 自动信息检索
JP5622880B2 (ja) アイテム推薦システム、アイテム推薦方法およびアイテム推薦プログラム
JP2019148962A (ja) 情報処理装置、情報処理方法、およびプログラム
JP7086661B2 (ja) 情報処理システム、情報処理方法、およびプログラム
JP6018541B2 (ja) 推薦ルール生成装置、推薦ルール生成方法および推薦ルール生成プログラム
JP6167029B2 (ja) レコメンド情報生成装置およびレコメンド情報生成方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20191101

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20191108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211216

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220608

R150 Certificate of patent or registration of utility model

Ref document number: 7086661

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350