JP7086661B2 - Information processing systems, information processing methods, and programs - Google Patents

Information processing systems, information processing methods, and programs Download PDF

Info

Publication number
JP7086661B2
JP7086661B2 JP2018052694A JP2018052694A JP7086661B2 JP 7086661 B2 JP7086661 B2 JP 7086661B2 JP 2018052694 A JP2018052694 A JP 2018052694A JP 2018052694 A JP2018052694 A JP 2018052694A JP 7086661 B2 JP7086661 B2 JP 7086661B2
Authority
JP
Japan
Prior art keywords
processing
message
content
query
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.)
Active
Application number
JP2018052694A
Other languages
Japanese (ja)
Other versions
JP2019164654A (en
Inventor
将也 田地
将人 国田
培楠 張
良介 深澤
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/en
Publication of JP2019164654A publication Critical patent/JP2019164654A/en
Application granted granted Critical
Publication of JP7086661B2 publication Critical patent/JP7086661B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、情報処理システム、情報処理方法、およびプログラムに関する。 The present invention relates to information processing systems , information processing methods, and programs.

ニュース記事とユーザとの類似度を求め、その類似度に基づいて、ユーザの趣味嗜好に合ったコンテンツを配信する技術が知られている(例えば、特許文献1参照)。 A technique is known in which a degree of similarity between a news article and a user is obtained, and content suitable for the user's hobbies and tastes is distributed based on the degree of similarity (see, for example, Patent Document 1).

特開2016-038822号公報Japanese Unexamined Patent Publication No. 2016-0388222

しかしながら、従来の技術では、ニュース記事などのコンテンツとユーザとの類似度
を求める処理が複雑であり、しばしば処理負荷が大きくなってしまう場合があった。
However, in the conventional technique, the process of obtaining the similarity between the content such as a news article and the user is complicated, and the processing load often becomes large.

本発明は、上記の課題に鑑みてなされたものであり、処理の流れをシンプルな構成とし、処理負荷を軽減することができる情報処理システム、情報処理方法、およびプログラムを提供することを目的としている。 The present invention has been made in view of the above problems, and an object of the present invention is to provide an information processing system , an information processing method, and a program capable of reducing the processing load by making the processing flow simple. There is.

本発明の一態様は、処理内容を指定するメッセージを、キュー構造の記憶部に記憶させる処理予約部と、前記記憶部に記憶された複数の前記メッセージのうち、先に記憶されたメッセージほど優先的に前記記憶部から読み出し、前記読み出したメッセージに基づく処理を並列に行う複数の処理実行部と、前記複数の処理実行部の其々の処理結果を出力する出力部と、を備え、前記処理予約部は、コンテンツの制作者によって入力された前記コンテンツに関するクエリを、前記メッセージとして前記記憶部に記憶させ、前記処理実行部は、前記記憶部から前記クエリを読み出した場合、入力されたクエリに基づいて、前記コンテンツの配信対象の候補となる複数のユーザの中から前記コンテンツの配信対象とするユーザを選択して出力する外部装置に対して、前記読み出したクエリを入力し、前記出力部は、前記クエリに対する前記外部装置の出力結果を、前記制作者の端末装置に出力する、情報処理装置である。 In one aspect of the present invention, a processing reservation unit for storing a message specifying a processing content in a storage unit of a queue structure and a plurality of the messages stored in the storage unit have priority over the previously stored message. A plurality of processing execution units that are read from the storage unit and perform processing based on the read message in parallel, and an output unit that outputs the processing results of each of the plurality of processing execution units are provided. The reservation unit stores the query related to the content input by the creator of the content in the storage unit as the message, and the processing execution unit stores the query in the input query when the query is read from the storage unit. Based on this, the read query is input to the external device that selects and outputs the user to be the distribution target of the content from among the plurality of users who are the candidates for the distribution target of the content, and the output unit receives the read query. , An information processing device that outputs the output result of the external device to the query to the terminal device of the creator.

本発明の一態様によれば、処理の流れをシンプルな構成とし、処理負荷を軽減することができる。 According to one aspect of the present invention, the processing flow can be simplified and the processing load can be reduced.

実施形態における情報処理装置100を含む情報処理システム1の一例を示す図である。It is a figure which shows an example of the information processing system 1 including the information processing apparatus 100 in embodiment. コンテンツが配信された端末装置10の画面の一例を示す図である。It is a figure which shows an example of the screen of the terminal apparatus 10 to which the content was delivered. 実施形態における情報処理装置100の構成の一例を示す図である。It is a figure which shows an example of the structure of the information processing apparatus 100 in an embodiment. 実施形態における情報処理装置100による一連のバッチ処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the series of batch processing by the information processing apparatus 100 in embodiment. ユーザベクトルの生成処理を説明するための図である。It is a figure for demonstrating the generation process of a user vector. 第1記憶部DB1に格納されたステータスの結果の一例を示す図である。It is a figure which shows an example of the result of the status stored in the 1st storage part DB1. 実施形態における情報処理装置100による一連のオンデマンド処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the series of on-demand processing by the information processing apparatus 100 in embodiment. クエリに興味関心を示すユーザの選択処理を説明するための図である。It is a figure for demonstrating the selection process of the user who is interested in a query. ユーザの集計結果の一例を示す図である。It is a figure which shows an example of the aggregation result of the user. 実施形態の情報処理装置100のハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware composition of the information processing apparatus 100 of an embodiment.

以下、本発明を適用した情報処理システム、情報処理方法、およびプログラムを、図面を参照して説明する。 Hereinafter, an information processing system , an information processing method, and a program to which the present invention is applied will be described with reference to the drawings.

[概要]
情報処理装置は、一以上のプロセッサにより実現される。情報処理装置は、処理内容を指定するメッセージを、キュー構造の記憶部に記憶させ、記憶部に記憶させた複数のメッセージのうち、先に記憶させたメッセージほど優先的に記憶部から読み出し、読み出したメッセージに基づく処理を並列に行う。そして、情報処理装置は、メッセージに基づく処理の処理結果を出力する。
[Overview]
The information processing device is realized by one or more processors. The information processing device stores the message specifying the processing content in the storage unit of the queue structure, and among the plurality of messages stored in the storage unit, the message stored earlier is preferentially read from the storage unit and read out. Processes based on the messages are performed in parallel. Then, the information processing apparatus outputs the processing result of the processing based on the message.

情報処理装置には、コンテンツの制作者によってコンテンツに関するクエリがメッセージとして入力される場合がある。例えば、コンテンツの制作者が、自らが制作したコンテンツに対して興味関心を寄せるユーザを特定するために、コンテンツのことを端的に表現したキーワードをクエリとして情報処理装置に入力することがある。この場合、情報処理装置は、クエリとして入力されたキーワードをキュー構造の記憶部に記憶させる。情報処理装置は、記憶部から読み出したメッセージを基に複数の処理を並列に行っているときに、読み出したメッセージがクエリであった場合、そのクエリを、ある外部装置に入力する。 In the information processing device, a query related to the content may be input as a message by the creator of the content. For example, a content creator may input a keyword that simply expresses the content into an information processing device as a query in order to identify a user who is interested in the content created by the content creator. In this case, the information processing apparatus stores the keyword input as a query in the storage unit of the queue structure. When a plurality of processes are performed in parallel based on the message read from the storage unit, the information processing device inputs the query to a certain external device if the read message is a query.

外部装置は、クエリが入力されると、その入力されたクエリの特徴と、コンテンツの配信対象の候補となる複数のユーザの其々の特徴との類似度を導出し、その類似度に基づいて、複数のユーザの中から、コンテンツの配信対象とするユーザを選択して出力する装置である。例えば、外部装置は、クエリの特徴との類似度が閾値以上となるユーザを、コンテンツの配信対象とするユーザとして選択する。クエリの特徴との類似度が閾値以上となるユーザは、コンテンツの制作者が制作したコンテンツに対して興味関心を示すことが想定されるユーザである。 When a query is input, the external device derives the similarity between the characteristics of the entered query and the characteristics of each of the plurality of users who are candidates for content distribution, and based on the similarity. , A device that selects and outputs a user whose content is to be distributed from a plurality of users. For example, the external device selects a user whose similarity with the query feature is equal to or higher than the threshold value as the user to whom the content is to be distributed. A user whose similarity to a query feature is equal to or greater than a threshold value is a user who is expected to be interested in the content created by the creator of the content.

情報処理装置は、外部装置にクエリを入力して得られた出力結果、すなわちコンテンツの制作者が制作したコンテンツに対して興味関心を示すことが想定されるユーザの集計結果などを、コンテンツの制作者が利用する端末装置に出力する。このように、メッセージのキューシングシステムを利用することで、処理の流れをシンプルな構成とすることができ、装置全体の処理負荷を軽減することができる。 The information processing device produces content based on the output results obtained by inputting a query to an external device, that is, the aggregated results of users who are expected to be interested in the content created by the creator of the content. Output to the terminal device used by the person. In this way, by using the message queuing system, the processing flow can be simplified and the processing load of the entire device can be reduced.

[全体構成]
図1は、実施形態における情報処理装置100を含む情報処理システム1の一例を示す図である。実施形態における情報処理システム1は、例えば、一以上の端末装置10と、サービス提供装置20と、情報処理装置100と、分散処理装置200とを備える。これらの装置は、ネットワークNWを介して接続される。また、これらの装置のうち一部は、他の装置に仮想的な装置として包含されてもよく、例えば、サービス提供装置20や分散処理装置200の機能の一部または全部が、情報処理装置100の機能によって実現される仮想マシンであってもよいし、これとは反対に、情報処理装置100の機能の一部または全部が、サービス提供装置20や分散処理装置200の機能によって実現される仮想マシンであってもよい。
[overall structure]
FIG. 1 is a diagram showing an example of an information processing system 1 including an information processing apparatus 100 according to an embodiment. The information processing system 1 in the embodiment includes, for example, one or more terminal devices 10, a service providing device 20, an information processing device 100, and a distributed processing device 200. These devices are connected via the network NW. Further, a part of these devices may be included in another device as a virtual device. For example, a part or all of the functions of the service providing device 20 and the distributed processing device 200 may be included in the information processing device 100. It may be a virtual machine realized by the functions of the above, and conversely, a part or all of the functions of the information processing apparatus 100 may be realized by the functions of the service providing apparatus 20 and the distributed processing apparatus 200. It may be a machine.

図1に示す各装置は、ネットワークNWを介して種々の情報を送受信する。ネットワークNWは、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、プロバイダ端末、無線通信網、無線基地局、専用回線などを含む。なお、図1に示す各装置の全ての組み合わせが相互に通信可能である必要はなく、ネットワークNWは、一部にローカルなネットワークを含んでもよい。 Each device shown in FIG. 1 transmits and receives various information via the network NW. The network NW includes, for example, the Internet, a WAN (Wide Area Network), a LAN (Local Area Network), a provider terminal, a wireless communication network, a wireless base station, a dedicated line, and the like. It should be noted that not all combinations of the devices shown in FIG. 1 need not be able to communicate with each other, and the network NW may include a local network in part.

端末装置10は、例えば、スマートフォンなどの携帯電話、タブレット端末、各種パーソナルコンピュータなどの、入力装置、表示装置、通信装置、記憶装置、および演算装置を備える端末装置である。通信装置は、NIC(Network Interface Card)などのネットワークカード、無線通信モジュールなどを含む。端末装置10では、ウェブブラウザやアプリケーションプログラムなどのUA(User Agent)が起動し、ユーザの入力する内容に応じたリクエストをサービス提供装置20に送信する。また、UAが起動された端末装置10は、サービス提供装置20から取得した情報に基づいて、表示装置に各種画像を表示させる。 The terminal device 10 is a terminal device including an input device, a display device, a communication device, a storage device, and an arithmetic unit, such as a mobile phone such as a smartphone, a tablet terminal, and various personal computers. The communication device includes a network card such as a NIC (Network Interface Card), a wireless communication module, and the like. In the terminal device 10, a UA (User Agent) such as a web browser or an application program is activated, and a request according to the content input by the user is transmitted to the service providing device 20. Further, the terminal device 10 in which the UA is activated causes the display device to display various images based on the information acquired from the service providing device 20.

サービス提供装置20は、例えば、UAとして起動されたウェブブラウザからのリクエストに応じてウェブページを端末装置10に提供するウェブサーバである。ウェブページは、例えば、インターネット上において商品を販売するショッピングサイトやオークションサイト、フリーマーケットサイト等のウェブサイトを構成するウェブページであってよい。また、サービス提供装置20は、検索サイトやSNS(Social Networking Service)、メールサービスなどの各種サービスを提供するウェブページを端末装置10に提供してもよい。また、サービス提供装置20は、UAとして起動されたアプリケーションからのリクエストに応じてコンテンツを端末装置10に提供することで、上述した各種ウェブサイトと同様のサービスを提供するアプリケーションサーバであってもよい。サービス提供装置20は、「コンテンツ配信部」の一例である。 The service providing device 20 is, for example, a web server that provides a web page to the terminal device 10 in response to a request from a web browser activated as a UA. The web page may be, for example, a web page constituting a website such as a shopping site, an auction site, or a free market site that sells products on the Internet. Further, the service providing device 20 may provide the terminal device 10 with a web page that provides various services such as a search site, an SNS (Social Networking Service), and a mail service. Further, the service providing device 20 may be an application server that provides the same services as the various websites described above by providing the content to the terminal device 10 in response to a request from the application started as the UA. .. The service providing device 20 is an example of a “content distribution unit”.

例えば、サービス提供装置20は、自らが提供するサービスに新たなコンテンツが登録された場合、サービスを利用する複数のユーザのうち、新たに登録されたコンテンツに対して、より興味や関心を示すことが想定されるユーザに、そのコンテンツを配信する。 For example, when new content is registered in the service provided by the service providing device 20, the service providing device 20 shows more interest or interest in the newly registered content among a plurality of users who use the service. Deliver the content to the expected users.

図2は、コンテンツが配信された端末装置10の画面の一例を示す図である。例えば、サービス提供装置20は、コンテンツの一つとしてニュース記事が新規に入稿された場合、そのニュース記事により興味関心を示しやすいユーザの端末装置10に対して、ニュース記事をプッシュ通知などで配信する(図中R1)。 FIG. 2 is a diagram showing an example of a screen of the terminal device 10 to which the content is distributed. For example, when a news article is newly submitted as one of the contents, the service providing device 20 distributes the news article to the terminal device 10 of the user who is more likely to be interested in the news article by push notification or the like. (R1 in the figure).

情報処理装置100は、メッセージキューイングシステムを利用した装置である。メッセージとは、情報処理装置100に含まれる各構成要素(プロセッサが実現する各機能部)が、キュー構造の記憶装置を介して相互に送受信するデータである。情報処理装置100に含まれる各構成要素は、キュー構造の記憶装置を介してメッセージを送受信するため、互いに異なる周期で独立して処理を行うことができる。メッセージには、一方の構成要素から他方の構成要素に処理を依頼するメッセージ(以下、処理依頼メッセージと称する)や、処理の依頼を受けた方の構成要素が、処理を依頼した方の構成要素に対して、処理が完了したことを通知するためのメッセージ(以下、処理完了メッセージと称する)などが含まれる。処理完了メッセージは、「処理完了情報」の一例である。 The information processing device 100 is a device that uses a message queuing system. The message is data transmitted and received by each component (each functional unit realized by the processor) included in the information processing apparatus 100 to and from each other via a storage device having a queue structure. Since each component included in the information processing apparatus 100 sends and receives a message via a storage device having a queue structure, it is possible to independently perform processing at different cycles from each other. The message includes a message requesting processing from one component to the other component (hereinafter referred to as a processing request message), and a component of the person who received the processing request is a component of the person who requested the processing. A message for notifying that the processing is completed (hereinafter referred to as a processing completion message) is included. The processing completion message is an example of "processing completion information".

情報処理装置100は、例えば、予め決められた処理を所定周期(例えば一日)で繰り返すバッチ処理と、所定のユーザの要求に応じて処理を行うオンデマンド処理とを行う。情報処理装置100は、例えば、バッチ処理として、分散処理装置200にユーザベクトルの生成処理を指示する。ユーザベクトルは、例えば、新たに登録されたコンテンツの配信対象の候補となる複数のユーザの其々の特徴を示すベクトルである。 The information processing apparatus 100 performs, for example, batch processing in which predetermined processing is repeated in a predetermined cycle (for example, one day) and on-demand processing in which processing is performed in response to a predetermined user's request. The information processing apparatus 100 instructs the distributed processing apparatus 200 to generate a user vector, for example, as a batch process. The user vector is, for example, a vector showing the characteristics of each of a plurality of users who are candidates for distribution of newly registered contents.

また、情報処理装置100は、例えば、オンデマンド処理として、コンテンツの制作者によって新たに制作されたコンテンツに関するクエリが入力された場合、分散処理装置200に、コンテンツの配信対象の候補となる複数のユーザの中から、新たに制作されたコンテンツに対して興味関心を示すことが想定されるユーザを選択する処理を指示する。クエリは、例えば、一つの単語(ワード)であってもよいし、複数の単語を含む語句(フレーズ)であってもよい。 Further, for example, when a query regarding a content newly created by a content creator is input as on-demand processing, the information processing device 100 has a plurality of candidates for content distribution to the distributed processing device 200. Instructs the process of selecting a user who is expected to be interested in the newly created content from the users. The query may be, for example, one word (word) or a phrase (phrase) containing a plurality of words.

分散処理装置200は、例えば、Hadoopと呼ばれる分散ファイルシステムを利用して、画像やテキストなどの構造化されていないメタデータを複数のデータに分割し、分割した其々のデータに対して、並列に処理を行う装置である。例えば、分散処理装置200は、情報処理装置100からクエリが入力されると、その入力されたクエリの特徴を示すクエリベクトルを生成し、生成したクエリベクトルと、予め生成しておいた複数のユーザベクトルとの類似度を並列処理によって導出する。分散処理装置200は、複数のユーザベクトルの中から、クエリベクトルとの類似度が閾値以上のユーザベクトルを抽出し、抽出したユーザベクトルの元となったユーザをコンテンツの配信対象とするユーザとして選択し、その結果を情報処理装置100に出力する。 The distributed processing device 200 uses, for example, a distributed file system called Hadoop to divide unstructured metadata such as images and text into a plurality of data, and parallel to each of the divided data. It is a device that performs processing. For example, when a query is input from the information processing device 100, the distributed processing device 200 generates a query vector indicating the characteristics of the input query, and the generated query vector and a plurality of users generated in advance. Derivation of similarity with the vector by parallel processing. The distributed processing device 200 extracts a user vector whose similarity with the query vector is equal to or higher than the threshold value from a plurality of user vectors, and selects the user who is the source of the extracted user vector as the user to be the content distribution target. Then, the result is output to the information processing apparatus 100.

[情報処理装置の構成]
図3は、実施形態における情報処理装置100の構成の一例を示す図である。図示のように、情報処理装置100は、例えば、ジョブ管理部110と、ジョブステータス監視部120と、ジョブ実行部130と、ジョブ実行状況出力部140と、オンデマンド処理予約部150と、ユーザID変換部160と、第1記憶部DB1と、第2記憶部DB2と、第3記憶部DB3とを備える。ジョブ管理部110と、オンデマンド処理予約部150と、ユーザID変換部160とを合わせたものは、「処理予約部」の一例である。また、ジョブ管理部110は、「処理管理部」の一例であり、ジョブ実行部130は、「処理実行部」の一例である。
[Information processing device configuration]
FIG. 3 is a diagram showing an example of the configuration of the information processing apparatus 100 in the embodiment. As shown in the figure, the information processing apparatus 100 includes, for example, a job management unit 110, a job status monitoring unit 120, a job execution unit 130, a job execution status output unit 140, an on-demand processing reservation unit 150, and a user ID. It includes a conversion unit 160, a first storage unit DB1, a second storage unit DB2, and a third storage unit DB3. The combination of the job management unit 110, the on-demand processing reservation unit 150, and the user ID conversion unit 160 is an example of the "processing reservation unit". Further, the job management unit 110 is an example of the "processing management unit", and the job execution unit 130 is an example of the "processing execution unit".

ジョブ管理部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)により実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。 The job management unit 110, the job status monitoring unit 120, the job execution unit 130, the job execution status output unit 140, the on-demand processing reservation unit 150, and the user ID conversion unit 160 include, for example, a processor such as a CPU (Central Processing Unit). It is realized by executing the programs stored in various storage units. Further, a part or all of the job management unit 110, the job status monitoring unit 120, the job execution unit 130, the job execution status output unit 140, the on-demand processing reservation unit 150, and the user ID conversion unit 160 are LSI (Large Scale). It may be realized by hardware (circuitry) such as Integration), ASIC (Application Specific Integrated Circuit), FPGA (Field-Programmable Gate Array), or GPU (Graphics Processing Unit), or software and hardware. It may be realized by collaboration.

第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)などの記憶装置により実現される。これらの記憶装置には、ファームウェアやアプリケーションプログラムなどの各種プログラムが格納される。 The first storage unit DB1, the second storage unit DB2, and the third storage unit DB3 are, for example, HDD (Hard Disc Drive), flash memory, EEPROM (Electrically Erasable Programmable Read Only Memory), ROM (Read Only Memory), RAM. It is realized by a storage device such as (Random Access Memory). Various programs such as firmware and application programs are stored in these storage devices.

第1記憶部DB1には、ジョブステータス監視部120の処理結果が記憶される。 The processing result of the job status monitoring unit 120 is stored in the first storage unit DB1.

第2記憶部DB2には、メッセージが格納されるキュー構造の記憶領域(以下、メッセージキューと称する)が含まれる。メッセージキューに格納されたメッセージは、後述する優先度が設けられていない限り、先に格納されたものから順に読み出される。メッセージキューには、上述した種々のメッセージのうち、少なくとも処理依頼メッセージが格納される。 The second storage unit DB2 includes a storage area (hereinafter, referred to as a message queue) having a queue structure in which messages are stored. The messages stored in the message queue are read out in order from the one stored first, unless a priority described later is provided. Of the various messages described above, at least the processing request message is stored in the message queue.

第3記憶部DB3には、コンテンツの配信対象の候補となる複数のユーザの其々の識別情報(以下、ユーザIDと称する)が予め格納される。ユーザIDは、サービス提供装置20により提供されるサービスを利用するユーザに対して割り当てられるIDであり、ユーザが任意に設定可能である。 In the third storage unit DB3, identification information (hereinafter, referred to as a user ID) of each of a plurality of users who are candidates for content distribution is stored in advance. The user ID is an ID assigned to a user who uses the service provided by the service providing device 20, and can be arbitrarily set by the user.

ジョブ管理部110は、ジョブステータス監視部120によって監視された処理(ジョブ)の実行状況を参照し、完了せずに途中で停止した処理が存在する場合、その停止した処理をジョブ実行部130に再実行させる。 The job management unit 110 refers to the execution status of the process (job) monitored by the job status monitoring unit 120, and if there is a process that has stopped in the middle without being completed, the stopped process is transmitted to the job execution unit 130. Re-execute.

ジョブステータス監視部120は、後述するジョブ実行部130による処理の実行状況を監視し、その監視結果を第1記憶部DB1に記憶させる。 The job status monitoring unit 120 monitors the execution status of processing by the job execution unit 130, which will be described later, and stores the monitoring result in the first storage unit DB1.

ジョブ実行部130は、第1ワーカ132(1)から第kワーカ132(k:kは任意の自然数)までの複数のワーカを備える。各ワーカ132は、第2記憶部DB2のメッセージキューに格納された一つ以上の処理依頼メッセージのうち、先に格納された処理依頼メッセージから優先的に読み出し、読み出した処理依頼メッセージによって指定された処理を行う。各ワーカ132は、処理依頼メッセージによって指定された処理が完了した場合、処理が完了したことを示す処理完了メッセージを第2記憶部DB2に格納する。第2記憶部DB2に格納された処理完了メッセージは、上述したジョブステータス監視部120によって参照される。各ワーカ132は、上述したメッセージキューから処理依頼メッセージを読み出し、処理が完了したら処理完了メッセージを第2記憶部DB2に格納する、という一連の処理を所定の周期で繰り返す。以下、ワーカ132が処理を実行している状態を「稼働状態」と称し、ワーカ132が処理を実行していない状態を「待機状態」と称して説明する。 The job execution unit 130 includes a plurality of workers from the first worker 132 (1) to the k-th worker 132 (k: k is an arbitrary natural number). Each worker 132 is preferentially read from the previously stored processing request message among one or more processing request messages stored in the message queue of the second storage unit DB2, and is designated by the read processing request message. Perform processing. When the processing specified by the processing request message is completed, each worker 132 stores a processing completion message indicating that the processing is completed in the second storage unit DB2. The processing completion message stored in the second storage unit DB2 is referred to by the job status monitoring unit 120 described above. Each worker 132 repeats a series of processes of reading a processing request message from the above-mentioned message queue and storing the processing completion message in the second storage unit DB 2 when the processing is completed, in a predetermined cycle. Hereinafter, the state in which the worker 132 is executing the process is referred to as an “operating state”, and the state in which the worker 132 is not executing the process is referred to as a “standby state”.

ジョブ実行状況出力部140は、第1記憶部DB1から、ジョブ実行部130の処理の実行状況の結果を示す情報を読み出し、第1記憶部DB1から読み出した情報を、ネットワークNWを介して、コンテンツの制作者が利用する端末装置10に提供(送信)する。例えば、ジョブ実行状況出力部140は、端末装置10で起動されたウェブブラウザから、ジョブ実行部130の処理の実行状況を確認するためのインタフェース(WebUI)を介して、第1記憶部DB1から読み出した情報を端末装置10に提供してよい。 The job execution status output unit 140 reads information indicating the result of the processing execution status of the job execution unit 130 from the first storage unit DB1, and reads the information read from the first storage unit DB1 via the network NW. It is provided (transmitted) to the terminal device 10 used by the creator of the above. For example, the job execution status output unit 140 reads from the first storage unit DB1 from the web browser started by the terminal device 10 via the interface (WebUI) for confirming the processing execution status of the job execution unit 130. Information may be provided to the terminal device 10.

また、ジョブ実行状況出力部140は、第1記憶部DB1から読み出した、ジョブ実行部130の処理の実行状況の結果を示す情報を、ジョブ管理部110に送信する。 Further, the job execution status output unit 140 transmits to the job management unit 110 information indicating the result of the processing execution status of the job execution unit 130, which is read from the first storage unit DB1.

オンデマンド処理予約部150は、例えば、クエリを入力するためのWebUIに設けられたクエリ入力窓に対して、単語または語句が入力された場合、その(それらの)単語または語句をクエリとする。例えば、コンテンツの制作者は、自らが制作したコンテンツの内容から、そのコンテンツを端的に表した単語や語句を作り出してクエリ入力窓に入力してもよいし、コンテンツに含まれるテキストから抜粋した単語や語句をクエリ入力窓に入力してもよい。例えば、コンテンツの制作者が、オンリンピックに関するニュース記事を制作し、「○○オリンピック」や「○○五輪」、「フィギュアスケート_金メダル」といったオンリンピックに関連した単語や語句をクエリ入力窓に入力したとする。この場合、オンデマンド処理予約部150は、「○○オリンピック」や「○○五輪」、「フィギュアスケート_金メダル」といった単語や語句をクエリとする。そして、オンデマンド処理予約部150は、クエリとして入力された単語または語句をメッセージ(以下、クエリメッセージと称する)として、メッセージキューに格納する。クエリメッセージは、処理依頼メッセージの一つである。クエリメッセージに基づく処理内容については後述する。 For example, when a word or a phrase is input to a query input window provided in a Web UI for inputting a query, the on-demand processing reservation unit 150 uses the word or phrase as a query. For example, the creator of the content may create a word or phrase that simply expresses the content from the content of the content created by himself / herself and input it into the query input window, or a word extracted from the text contained in the content. Or words may be entered in the query input window. For example, the creator of the content creates a news article about the online pick, and enters words and phrases related to the online pick such as "○○ Olympics", "○○ Olympics", and "figure skating_gold medal" in the query input window. Suppose you did. In this case, the on-demand processing reservation unit 150 queries for words and phrases such as "○○ Olympics", "○○ Olympics", and "figure skating_gold medal". Then, the on-demand processing reservation unit 150 stores the word or phrase input as a query as a message (hereinafter referred to as a query message) in the message queue. The query message is one of the processing request messages. The processing content based on the query message will be described later.

ユーザID変換部160は、分散処理装置200から、コンテンツの配信対象の候補となる複数のユーザのアカウント情報を取得する。アカウント情報には、例えば、ユーザによってユーザIDとして設定されたメールアドレスや、パスワード、生年月日、名前、性別などの個人情報が含まれる。 The user ID conversion unit 160 acquires account information of a plurality of users who are candidates for content distribution from the distributed processing device 200. The account information includes, for example, an e-mail address set as a user ID by the user, and personal information such as a password, date of birth, name, and gender.

ユーザID変換部160は、取得したアカウント情報から、メールアドレスを抽出し、抽出したメールアドレスをユーザIDとして第3記憶部DB3に格納すると共に、抽出したユーザIDを暗号化する。そして、ユーザID変換部160は、暗号化したユーザIDによって識別されるユーザのユーザベクトルを生成するように依頼する処理依頼メッセージを第2記憶部DB2のメッセージキューに格納する。暗号化したユーザIDによって識別されるユーザは「特徴の導出対象とする対象ユーザ」の一例である。 The user ID conversion unit 160 extracts an e-mail address from the acquired account information, stores the extracted e-mail address as a user ID in the third storage unit DB3, and encrypts the extracted user ID. Then, the user ID conversion unit 160 stores the processing request message requesting the generation of the user vector of the user identified by the encrypted user ID in the message queue of the second storage unit DB2. The user identified by the encrypted user ID is an example of the "target user to be derived from the feature".

[バッチ処理のフローチャート]
以下、実施形態における情報処理装置100による一連のバッチ処理の流れをフローチャートに即して説明する。図4は、実施形態における情報処理装置100による一連のバッチ処理の流れを示すフローチャートである。本フローチャートの処理は、例えば、時間単位、日単位、週単位などの所定の周期で繰り返し行われてよい。
[Flowchart of batch processing]
Hereinafter, the flow of a series of batch processing by the information processing apparatus 100 in the embodiment will be described according to a flowchart. FIG. 4 is a flowchart showing a flow of a series of batch processing by the information processing apparatus 100 in the embodiment. The processing of this flowchart may be repeated in a predetermined cycle such as an hourly unit, a daily unit, or a weekly unit.

まず、ユーザID変換部160は、暗号化したユーザIDによって識別されるユーザのユーザベクトルを生成するように依頼する処理依頼メッセージを、第2記憶部DB2のメッセージキューに格納する(S100)。この処理依頼メッセージには、暗号化されたユーザIDが含まれる。 First, the user ID conversion unit 160 stores the processing request message requesting the generation of the user vector of the user identified by the encrypted user ID in the message queue of the second storage unit DB2 (S100). This processing request message includes an encrypted user ID.

次に、情報処理装置100は、第1ワーカ132(1)から第kワーカ132(k)までの複数のワーカの中に、待機状態のワーカ132が存在するか否かを判定し(S102)、待機状態のワーカ132が存在しない場合(全てのワーカ132が稼働状態である場合)、本フローチャートの処理を終了する。 Next, the information processing apparatus 100 determines whether or not the standby worker 132 exists among the plurality of workers from the first worker 132 (1) to the k-th worker 132 (k) (S102). If there is no worker 132 in the standby state (when all the workers 132 are in the operating state), the processing of this flowchart is terminated.

一方、待機状態のワーカ132が存在する場合(全てのワーカ132が稼働状態でない場合)、その待機状態のワーカ132は、メッセージキューから処理依頼メッセージを読み出し、読み出した処理依頼メッセージによって指定された処理を開始する(S104)。 On the other hand, when the worker 132 in the standby state exists (when all the worker 132s are not in the operating state), the worker 132 in the standby state reads the processing request message from the message queue and the processing specified by the read processing request message. Is started (S104).

例えば、読み出した処理依頼メッセージが、ユーザベクトルを生成することを依頼する処理依頼メッセージである場合、ワーカ132は、処理依頼メッセージに含まれる暗号化されたユーザIDを分散処理装置200に送信することで、分散処理装置200にユーザベクトルを生成させる。 For example, when the read processing request message is a processing request message requesting the generation of a user vector, the worker 132 sends the encrypted user ID included in the processing request message to the distributed processing device 200. Then, the distributed processing apparatus 200 is made to generate a user vector.

図5は、ユーザベクトルの生成処理を説明するための図である。例えば、依頼を受けた分散処理装置200は、処理依頼メッセージに含まれる、暗号化されたユーザIDを復号し、その復号したユーザIDに対応付けられたユーザの行動履歴に基づいて、ユーザベクトルを生成する。ユーザの行動履歴には、例えば、ユーザが閲覧したコンテンツに含まれるテキストや、コンテンツ検索時に入力されたクエリのログが含まれる。ユーザの行動履歴は、予め分散処理装置200によって収集されているものとする。 FIG. 5 is a diagram for explaining a user vector generation process. For example, the distributed processing device 200 that has received the request decodes the encrypted user ID included in the processing request message, and creates a user vector based on the user's action history associated with the decrypted user ID. Generate. The user's behavior history includes, for example, the text included in the content viewed by the user and the log of the query entered at the time of content search. It is assumed that the user's action history has been collected in advance by the distributed processing device 200.

例えば、ユーザが閲覧したコンテンツがニュース記事である場合、分散処理装置200は、ニュース記事のタイトルおよび本文を形態素解析によって複数の単語(形態素)に分割し、分割した各単語をユーザベクトルの要素に決定する。この際、分散処理装置200は、各要素の値を単語の重みとする。例えば、分散処理装置200は、TF(Term Frequency)‐IDF(Inverse Document Frequency)と呼ばれる単語の出現頻度を評価する手法を用いて、分割した各単語(または複数の単語の組み合わせである語句)に対して重みを付与する。TFは、それぞれの単語(形態素)のテキスト(タイトルおよび本文)内での出現頻度を表しており、そのTF値は、対象のテキスト内で出現する回数が多い単語ほど大きくなる。IDFは、ある単語が出現するテキストの頻度を表しており、そのIDF値は、ユーザが閲覧したコンテンツに含まれるテキストでは出現し易く、ユーザが閲覧していない他のコンテンツに含まれるテキストでは出現し難い単語ほど大きくなる。例えば、分散処理装置200は、TF値とIDF値との積を、各単語の重み(以下、第1の重みと称する)とする。 For example, when the content viewed by the user is a news article, the distributed processing device 200 divides the title and body of the news article into a plurality of words (morphemes) by morphological analysis, and each divided word is used as an element of the user vector. decide. At this time, the distributed processing apparatus 200 uses the value of each element as the weight of the word. For example, the distributed processing apparatus 200 uses a method called TF (Term Frequency) -IDF (Inverse Document Frequency) to evaluate the frequency of occurrence of words in each divided word (or a phrase that is a combination of a plurality of words). Weight is given to it. The TF represents the frequency of appearance of each word (morpheme) in the text (title and body), and the TF value increases as the number of times of occurrence in the target text increases. The IDF represents the frequency of the text in which a word appears, and the IDF value tends to appear in the text contained in the content viewed by the user and appears in the text contained in other content not viewed by the user. The harder the word, the bigger it gets. For example, the distributed processing apparatus 200 uses the product of the TF value and the IDF value as the weight of each word (hereinafter referred to as the first weight).

また、分散処理装置200は、ユーザ間でのコンテンツの閲覧傾向の差異を単語の重みに反映させるため、上述した手法でTF値を導出すると共に、対象とするユーザ(処理依頼メッセージに含まれるユーザIDのユーザ)は閲覧回数が多く、他のユーザ(処理依頼メッセージに含まれるユーザIDと異なるユーザIDのユーザ)は閲覧回数が少ないコンテンツに含まれるテキストの単語ほど大きくなる傾向のIDF値(以下、第2のIDF値)を導出する。分散処理装置200は、TF値と第2のIDF値との積を、各単語の第2の重みとする。 Further, the distributed processing device 200 derives the TF value by the above-mentioned method in order to reflect the difference in the viewing tendency of the content among the users in the weight of the word, and the target user (the user included in the processing request message). The IDF value (hereinafter, the IDF value) tends to be larger for other users (users with a user ID different from the user ID included in the processing request message), which are frequently viewed (ID users), and for text words included in the content, which are less frequently viewed. , Second IDF value) is derived. The distributed processing apparatus 200 uses the product of the TF value and the second IDF value as the second weight of each word.

そして、分散処理装置200は、第1の重みと第2の重みとに基づいて各要素の値を決定し、それらの複数の要素値をもつ多次元のベクトルをユーザベクトルとして生成する。分散処理装置200は、ユーザベクトルの生成依頼を受ける度に、その処理依頼メッセージに含まれるユーザIDに基づいて、ユーザIDによって識別されるユーザのユーザベクトルを生成する。分散処理装置200は、例えば、ユーザベクトルを生成すると、そのユーザベクトルを内部の記憶装置に記憶させておくと共に、ユーザベクトルの生成が完了したことを示す情報をワーカ132に返す。ワーカ132は、分散処理装置200からユーザベクトルの生成が完了したことを示す情報を受けると、ユーザベクトルを生成することを依頼する処理依頼メッセージに対する処理完了メッセージを第2記憶部DB2に格納する。 Then, the distributed processing apparatus 200 determines the value of each element based on the first weight and the second weight, and generates a multidimensional vector having the plurality of element values as a user vector. Each time the distributed processing apparatus 200 receives a request for generating a user vector, the distributed processing apparatus 200 generates a user vector of the user identified by the user ID based on the user ID included in the processing request message. For example, when the distributed processing apparatus 200 generates a user vector, the user vector is stored in an internal storage device, and information indicating that the generation of the user vector is completed is returned to the worker 132. Upon receiving the information indicating that the generation of the user vector is completed from the distributed processing device 200, the worker 132 stores the processing completion message for the processing request message requesting the generation of the user vector in the second storage unit DB2.

図4に戻り、次に、ジョブステータス監視部120は、第2記憶部DB2に処理完了メッセージが格納されたか否かを判定し(S106)、第2記憶部DB2に処理完了メッセージが格納された場合、処理依頼メッセージに基づく処理のステータス(実行状況)を、処理が完了したことを示すステータスにし、そのステータスの結果を、第1記憶部DB1に格納する(S108)。 Returning to FIG. 4, the job status monitoring unit 120 then determines whether or not the processing completion message is stored in the second storage unit DB2 (S106), and the processing completion message is stored in the second storage unit DB2. In this case, the status (execution status) of the process based on the process request message is set to the status indicating that the process is completed, and the result of the status is stored in the first storage unit DB1 (S108).

一方、ジョブステータス監視部120は、第2記憶部DB2に処理完了メッセージが格納されていない場合、処理依頼メッセージをメッセージキューから読み出したワーカ132が処理を開始してから所定時間が経過したか否かを判定し(S110)、処理を開始してから所定時間が経過した場合、処理依頼メッセージに基づく処理のステータスを、処理が完了せずに異常(エラー)が生じたことを示すステータスにし、そのステータスの結果を、第1記憶部DB1に格納する(S112)。これによって、本フローチャートの処理が終了する。 On the other hand, when the processing completion message is not stored in the second storage unit DB2, the job status monitoring unit 120 determines whether or not a predetermined time has elapsed since the worker 132 who read the processing request message from the message queue started processing. (S110), and when a predetermined time has elapsed since the processing was started, the status of the processing based on the processing request message is set to the status indicating that an abnormality (error) has occurred without completing the processing. The result of the status is stored in the first storage unit DB1 (S112). This ends the processing of this flowchart.

図6は、第1記憶部DB1に格納されたステータスの結果の一例を示す図である。図示の例のように、ジョブステータス監視部120は、処理依頼メッセージを読み出したワーカ132の識別情報であるワーカIDに対して、各処理依頼メッセージの識別情報であるジョブIDと、ワーカ132が処理を開始した日時と、ワーカ132が処理を完了した日時と、ステータスとを対応付けた情報を、ステータスの結果として第1記憶部DB1に格納してよい。図示の例では、ワーカIDが「2」であるワーカ132(2)に依頼したジョブIDが「DDD」の処理が完了していない。この場合、ジョブステータス監視部120は、ワーカ132(2)に依頼した「DDD」の処理のステータスをエラーのステータスにする。 FIG. 6 is a diagram showing an example of the result of the status stored in the first storage unit DB1. As shown in the illustrated example, the job status monitoring unit 120 processes the job ID, which is the identification information of each processing request message, with respect to the worker ID, which is the identification information of the worker 132 that has read the processing request message. The information in which the date and time when the process was started, the date and time when the worker 132 completed the process, and the status may be stored in the first storage unit DB1 as the result of the status. In the illustrated example, the process of the job ID requested to the worker 132 (2) whose worker ID is “2” is not completed. In this case, the job status monitoring unit 120 sets the status of the processing of "DDD" requested to the worker 132 (2) to the error status.

ジョブ実行状況出力部140は、第1記憶部DB1に格納されたステータスの結果を参照し、エラーのステータスが存在する場合、ステータスの結果からエラーのステータスのジョブIDを抽出し、抽出したジョブIDをジョブ管理部110に送信する。なお、ジョブ実行状況出力部140は、第1記憶部DB1に格納されたステータスの結果をそのままジョブ管理部110に送信してもよい。 The job execution status output unit 140 refers to the status result stored in the first storage unit DB1, and if an error status exists, extracts the job ID of the error status from the status result, and the extracted job ID. To the job management unit 110. The job execution status output unit 140 may transmit the status result stored in the first storage unit DB1 to the job management unit 110 as it is.

ジョブ管理部110は、エラーのステータスのジョブIDを参照し、そのジョブIDと同じ処理依頼メッセージ、すなわち処理を再実行させるための処理依頼メッセージを、第2記憶部DB2のメッセージキューに格納する。この際、ジョブ管理部110は、処理依頼メッセージの優先度を最も高くする。優先度とは、メッセージキューに格納された処理依頼メッセージのうち、どの処理依頼メッセージから読み出すのかを順位付けるものである。例えば、オンデマンド処理予約部150やユーザID変換部160によってメッセージキューに格納される処理依頼メッセージには、優先度が設けられておらず、メッセージキューに格納された順序で処理依頼メッセージが読み出される。これに対して、ジョブ管理部110によってメッセージキューに格納される処理依頼メッセージには、最も高い優先度が設けられているため、メッセージキューに既に他の処理依頼メッセージが格納されていても、後に格納された再実行のための処理依頼メッセージが先に読み出される。この結果、待機状態のいずれかのワーカ132は、ステータスがエラーとなった処理を最優先で実行する。 The job management unit 110 refers to the job ID of the error status, and stores the same processing request message as the job ID, that is, the processing request message for re-executing the processing, in the message queue of the second storage unit DB2. At this time, the job management unit 110 gives the highest priority to the processing request message. The priority is to rank which processing request message is read from among the processing request messages stored in the message queue. For example, the processing request messages stored in the message queue by the on-demand processing reservation unit 150 and the user ID conversion unit 160 have no priority, and the processing request messages are read out in the order stored in the message queue. .. On the other hand, the process request message stored in the message queue by the job management unit 110 has the highest priority, so even if another process request message is already stored in the message queue, it will be later. The stored process request message for re-execution is read first. As a result, any worker 132 in the standby state executes the process whose status is an error with the highest priority.

[オンデマンド処理のフローチャート]
以下、実施形態における情報処理装置100による一連のオンデマンド処理の流れをフローチャートに即して説明する。図7は、実施形態における情報処理装置100による一連のオンデマンド処理の流れを示すフローチャートである。
[Flowchart of on-demand processing]
Hereinafter, the flow of a series of on-demand processing by the information processing apparatus 100 in the embodiment will be described according to a flowchart. FIG. 7 is a flowchart showing a flow of a series of on-demand processing by the information processing apparatus 100 in the embodiment.

まず、オンデマンド処理予約部150は、例えば、WebUIにクエリが入力されたか否かを判定し(S200)、WebUIにクエリが入力された場合、入力されたクエリを含むクエリメッセージを、第2記憶部DB2のメッセージキューに格納する(S202)。 First, the on-demand processing reservation unit 150 determines, for example, whether or not a query has been input to the WebUI (S200), and when a query is input to the WebUI, a second storage of a query message including the input query. It is stored in the message queue of the unit DB2 (S202).

次に、情報処理装置100は、第1ワーカ132(1)から第kワーカ132(k)までの複数のワーカの中に、待機状態のワーカ132が存在するか否かを判定し(S204)、待機状態のワーカ132が存在しない場合(全てのワーカ132が稼働状態である場合)、本フローチャートの処理を終了する。 Next, the information processing apparatus 100 determines whether or not the standby worker 132 exists among the plurality of workers from the first worker 132 (1) to the k-th worker 132 (k) (S204). If there is no worker 132 in the standby state (when all the workers 132 are in the operating state), the processing of this flowchart is terminated.

一方、待機状態のワーカ132が存在する場合(全てのワーカ132が稼働状態でない場合)、その待機状態のワーカ132は、メッセージキューから処理依頼メッセージを読み出し、読み出した処理依頼メッセージによって指定された処理を開始する(S206)。 On the other hand, when the worker 132 in the standby state exists (when all the worker 132s are not in the operating state), the worker 132 in the standby state reads the processing request message from the message queue and the processing specified by the read processing request message. Is started (S206).

例えば、読み出した処理依頼メッセージがクエリメッセージである場合、ワーカ132は、クエリメッセージに含まれるクエリを分散処理装置200に送信することで、分散処理装置200に、コンテンツの配信対象の候補となる複数のユーザの中から、クエリに興味関心を示すユーザを選択させる。WebUIには、コンテンツの制作者が制作したコンテンツに関連する単語や語句がクエリとして入力されるため、クエリに興味関心を示すユーザは、コンテンツの制作者が制作したコンテンツに興味関心を示すユーザでもある。クエリに興味関心を示すユーザは、「コンテンツの配信対象とするユーザ」の一例である。 For example, when the read processing request message is a query message, the worker 132 sends the query included in the query message to the distributed processing device 200, so that the distributed processing device 200 has a plurality of candidates for content distribution. Have users select users who are interested in the query. Since words and phrases related to the content created by the content creator are input to the WebUI as a query, a user who is interested in the query is also a user who is interested in the content created by the content creator. be. A user who is interested in a query is an example of a "user to whom content is delivered".

図8は、クエリに興味関心を示すユーザの選択処理を説明するための図である。例えば、分散処理装置200は、ワーカ132からクエリを取得すると、クエリの特徴を示すクエリベクトルを生成する。例えば、分散処理装置200は、word2vecやGloVeのような分散表現または単語埋め込み表現(Word Embedding(s))と呼ばれる手法を用いて、クエリからクエリベクトルを生成してよい。分散表現または単語埋め込み表現は、単語または語句と、その単語または語句の前後で出現する単語または語句との共起性に基づいて、単語や語句をベクトル化する手法であり、例えば、予め用意された複数の単語や語句を含むコーパスに基づいて、ある文脈においてクエリの前後に出現する単語の出現確率を求め、その出現確率を要素値とする多次元のベクトルを生成する手法である。 FIG. 8 is a diagram for explaining a selection process of a user who is interested in a query. For example, when the distributed processing apparatus 200 acquires a query from the worker 132, it generates a query vector indicating the characteristics of the query. For example, the distributed processing apparatus 200 may generate a query vector from a query by using a method called a distributed expression or a word embedding expression (Word Embedding (s)) such as word2vec or GloVe. A distributed expression or word embedding expression is a method of vectorizing a word or phrase based on the co-occurrence of the word or phrase and the word or phrase that appears before or after the word or phrase, and is prepared in advance, for example. This is a method of finding the appearance probability of words that appear before and after a query in a certain context based on a corpus containing a plurality of words and phrases, and generating a multidimensional vector with the appearance probability as an element value.

例えば、分散処理装置200は、クエリベクトルを生成すると、そのクエリベクトルと、予め生成しておいた複数のユーザベクトルの其々との類似度(例えばコサイン類似度)を導出し、クエリベクトルとの類似度が大きい上位所定数(例えば10個)のユーザベクトルを抽出したり、クエリベクトルとの類似度が閾値以上の全てのユーザベクトルを抽出したりする。そして、分散処理装置200は、抽出したユーザベクトルの元となったユーザIDのユーザを、クエリに興味関心を示すユーザとして選択する。 For example, when the distributed processing device 200 generates a query vector, the distributed processing apparatus 200 derives the similarity (for example, cosine similarity) between the query vector and each of the plurality of user vectors generated in advance, and uses the query vector as a reference. A predetermined number of high-ranking user vectors (for example, 10) having a high degree of similarity are extracted, or all user vectors having a degree of similarity with a query vector equal to or higher than a threshold value are extracted. Then, the distributed processing apparatus 200 selects the user of the user ID that is the source of the extracted user vector as the user who is interested in the query.

分散処理装置200は、コンテンツの配信対象の候補となる複数のユーザの中から、クエリに興味関心を示すユーザを選択すると、クエリに興味関心を示すユーザの集計結果(ユーザの選択結果)を示す情報と、ユーザの選択処理が完了したことを示す情報とをワーカ132に返す。なお、分散処理装置200は、クエリに興味関心を示すユーザとして選択したユーザ以外のユーザもユーザの集計結果に含めてよい。ワーカ132は、分散処理装置200から、ユーザの集計結果を示す情報と、ユーザの選択処理が完了したことを示す情報とを受けると、クエリメッセージに対する処理完了メッセージと、ユーザの集計結果を示す情報とを第2記憶部DB2に格納する。 When the distributed processing device 200 selects a user who is interested in a query from a plurality of users who are candidates for content distribution, the distributed processing device 200 shows an aggregation result (user selection result) of users who are interested in the query. The information and the information indicating that the user's selection process is completed are returned to the worker 132. The distributed processing device 200 may include users other than the users selected as the users who are interested in the query in the aggregation result of the users. When the worker 132 receives the information indicating the user's aggregation result and the information indicating that the user's selection processing is completed from the distributed processing device 200, the worker 132 receives the processing completion message for the query message and the information indicating the user's aggregation result. And are stored in the second storage unit DB2.

図7に戻り、次に、ジョブステータス監視部120は、第2記憶部DB2に、クエリメッセージに対する処理完了メッセージと、ユーザの集計結果を示す情報とが格納されたか否かを判定し(S208)、第2記憶部DB2に双方が格納された場合、クエリメッセージに基づく処理のステータス(実行状況)を、処理が完了したことを示すステータスにし、そのステータスの結果を、第1記憶部DB1に格納すると共に、ユーザの集計結果を示す情報を、第1記憶部DB1に格納する(S210)。 Returning to FIG. 7, the job status monitoring unit 120 then determines whether or not the processing completion message for the query message and the information indicating the user's aggregation result are stored in the second storage unit DB2 (S208). , When both are stored in the second storage unit DB2, the status (execution status) of the process based on the query message is set to the status indicating that the process is completed, and the result of the status is stored in the first storage unit DB1. At the same time, the information indicating the aggregation result of the user is stored in the first storage unit DB1 (S210).

次に、ジョブ実行状況出力部140は、第1記憶部DB1に格納されたユーザの集計結果を示す情報を、WebUIなどを介してコンテンツの制作者の端末装置10に提供する(S212)。 Next, the job execution status output unit 140 provides information indicating the aggregated results of the users stored in the first storage unit DB1 to the terminal device 10 of the content creator via WebUI or the like (S212).

図9は、ユーザの集計結果の一例を示す図である。例えば、ジョブ実行状況出力部140は、ユーザの集計結果として、クエリに興味関心を示すユーザ、或いはココンテンツに興味関心を示すユーザの数を、「ターゲティング通知対象のユーザ数」として提供する。また、ジョブ実行状況出力部140は、各ユーザのユーザID(暗号化されたユーザID)に対して、そのユーザが利用する端末装置10の識別情報(図中デバイスID)や、端末装置10にインストールされたOS(Operating System)の種類などが対応付けられた情報を、ユーザの集計結果として提供してもよい。また、ジョブ実行状況出力部140は、クエリベクトルとの類似度の大きさに対するユーザの人数の分布を表すグラフなどを、ユーザの集計結果として提供してもよい。このような情報をユーザの集計結果としてコンテンツの制作者に提供するため、コンテンツの制作者は、自らが制作したコンテンツに何人程度のユーザが興味関心を示すのかを知ることができる。この結果、コンテンツの制作者は、制作したコンテンツを改編したり、他のコンテンツに差し替えたりすることができる。 FIG. 9 is a diagram showing an example of the aggregated results of users. For example, the job execution status output unit 140 provides the number of users who are interested in the query or the users who are interested in the co-content as the "number of users targeted for targeting notification" as the aggregation result of the users. Further, the job execution status output unit 140 uses the user ID (encrypted user ID) of each user as the identification information (device ID in the figure) of the terminal device 10 used by the user or the terminal device 10. Information associated with the type of installed OS (Operating System) and the like may be provided as an aggregation result of users. Further, the job execution status output unit 140 may provide a graph or the like showing the distribution of the number of users with respect to the magnitude of the degree of similarity with the query vector as the aggregation result of the users. Since such information is provided to the content creator as the aggregated result of the users, the content creator can know how many users are interested in the content produced by the content creator. As a result, the creator of the content can reorganize the created content or replace it with other content.

また、ジョブ実行状況出力部140は、第1記憶部DB1に格納されたユーザの集計結果を示す情報を、コンテンツの制作者の端末装置10に提供するのに代えて、或いは加えて、サービス提供装置20に提供してもよい。この場合、サービス提供装置20は、ユーザの集計結果に含まれるユーザ、すなわち、コンテンツの制作者が制作したコンテンツに興味関心を示すことが想定されるユーザの端末装置10に、コンテンツの制作者が制作したコンテンツをプッシュ通知などで配信してよい。 Further, the job execution status output unit 140 provides services in place of or in addition to providing the information indicating the aggregated results of the users stored in the first storage unit DB1 to the terminal device 10 of the content creator. It may be provided to the device 20. In this case, the service providing device 20 is used by the content creator on the terminal device 10 of the user included in the user's aggregation result, that is, the user who is expected to be interested in the content produced by the content creator. The created content may be delivered by push notification or the like.

一方、ジョブステータス監視部120は、第2記憶部DB2に、クエリメッセージに対する処理完了メッセージおよびユーザの集計結果を示す情報のいずれか一方または双方が格納されていない場合、クエリメッセージをメッセージキューから読み出したワーカ132が処理を開始してから所定時間が経過したか否かを判定し(S214)、処理を開始してから所定時間が経過した場合、クエリメッセージに基づく処理のステータスを、処理が完了せずに異常(エラー)が生じたことを示すステータスにし、そのステータスの結果を、第1記憶部DB1に格納する(S216)。これによって、本フローチャートの処理が終了する。 On the other hand, when the job status monitoring unit 120 does not store either or both of the processing completion message for the query message and the information indicating the user's aggregation result in the second storage unit DB2, the job status monitoring unit 120 reads the query message from the message queue. It is determined whether or not a predetermined time has elapsed since the worker 132 started the process (S214), and if the predetermined time has elapsed since the process started, the status of the process based on the query message is set and the process is completed. Instead, a status indicating that an abnormality (error) has occurred is set, and the result of that status is stored in the first storage unit DB1 (S216). This ends the processing of this flowchart.

以上説明した実施形態によれば、処理依頼メッセージを、メッセージキューに格納するジョブ管理部110、オンデマンド処理予約部150、またはユーザID変換部160と、メッセージキューに格納された処理依頼メッセージのうち、先に格納された処理依頼メッセージほど優先的にメッセージキューから読み出し、読み出した処理依頼メッセージに基づく処理を並列に行う複数のワーカ132と、複数のワーカ132の其々の処理結果を出力するジョブ実行状況出力部140と、を備え、オンデマンド処理予約部150は、コンテンツの制作者によって入力されたコンテンツに関するクエリを、処理依頼メッセージの一つであるクエリメッセージとしてメッセージキューに格納し、複数のワーカ132のうち待機状態のワーカ132は、メッセージキューからクエリメッセージを読み出した場合、クエリメッセージに含まれるクエリを分散処理装置200に入力する。分散処理装置200は、入力されたクエリをクエリベクトルに変換し、そのクエリベクトルと、コンテンツの配信対象の候補となる複数のユーザの其々のユーザベクトルとの類似度に基づいて、複数のユーザの中からコンテンツの配信対象とするユーザを選択し、その結果をワーカ132に出力する。ジョブ実行状況出力部140は、分散処理装置200の出力結果を、コンテンツの制作者の端末装置10に提供する。このようなメッセージのキューシングシステムを利用することで、情報処理装置100の各構成要素は、互いに異なる周期で独立して処理を行うことができるため、処理の流れをシンプルな構成とすることができ、装置全体の処理負荷を軽減することができる。 According to the embodiment described above, among the job management unit 110, the on-demand processing reservation unit 150, or the user ID conversion unit 160 that stores the processing request message in the message queue, and the processing request message stored in the message queue. , A job that preferentially reads the processing request message stored earlier from the message queue, performs processing based on the read processing request message in parallel, and outputs the processing results of each of the multiple worker 132s. The on-demand processing reservation unit 150 includes an execution status output unit 140, and stores a query related to the content input by the creator of the content in the message queue as a query message which is one of the processing request messages, and a plurality of queries are stored in the message queue. When the worker 132 in the standby state among the workers 132 reads the query message from the message queue, the worker 132 in the standby state inputs the query included in the query message to the distributed processing device 200. The distributed processing device 200 converts the input query into a query vector, and the plurality of users are based on the similarity between the query vector and each user vector of the plurality of users who are candidates for content distribution. The user to whom the content is to be distributed is selected from the above, and the result is output to the worker 132. The job execution status output unit 140 provides the output result of the distributed processing device 200 to the terminal device 10 of the content creator. By using such a message queuing system, each component of the information processing apparatus 100 can independently perform processing at different cycles, so that the processing flow can be simplified. It is possible to reduce the processing load of the entire device.

また、上述した実施形態によれば、複数のワーカ132の中に、メッセージキューから処理依頼メッセージを読み出してから所定時間が経過するまでに処理完了メッセージを出力しないワーカ132が存在する場合、ジョブ管理部110は、そのワーカ132が行った処理を再実行させるための処理依頼メッセージに最も高い優先度を付けてメッセージキューに格納する。これによって、メッセージキューに既に他の処理依頼メッセージが格納されていても、後に格納された再実行のための処理依頼メッセージが先に読み出されるため、途中で止まった処理を最優先で再実行させることができる。この結果、処理の再実行性を高めることができる。 Further, according to the above-described embodiment, when there is a worker 132 that does not output a processing completion message within a predetermined time after reading the processing request message from the message queue among the plurality of workers 132, job management is performed. The unit 110 gives the highest priority to the processing request message for re-executing the processing performed by the worker 132, and stores it in the message queue. As a result, even if another processing request message is already stored in the message queue, the processing request message for re-execution stored later is read first, so the processing stopped in the middle is re-executed with the highest priority. be able to. As a result, the re-executability of the process can be improved.

また、上述した実施形態によれば、ユーザIDを予め暗号化した上で、ユーザベクトルの生成処理などの各種処理を行うため、ユーザの個人情報の秘匿性を高めながら、装置全体の処理負荷を軽減することができる。 Further, according to the above-described embodiment, since the user ID is encrypted in advance and various processes such as the user vector generation process are performed, the processing load of the entire device is increased while increasing the confidentiality of the user's personal information. Can be mitigated.

また、上述した実施形態によれば、メッセージのキューシングシステムを利用するため、構成要素間での同期などを取る必要がなく、情報処理装置100の各構成要素の処理内容を変更したり、新たな構成要素を追加したりすることを容易に行うことができる。この結果、情報処理装置100のモジュール性を向上させることができる。 Further, according to the above-described embodiment, since the message queuing system is used, it is not necessary to synchronize the components, and the processing content of each component of the information processing apparatus 100 can be changed or newly. It is possible to easily add various components. As a result, the modularity of the information processing apparatus 100 can be improved.

<ハードウェア構成>
上述した実施形態の情報処理装置100は、例えば、図10に示すようなハードウェア構成により実現される。図10は、実施形態の情報処理装置100のハードウェア構成の一例を示す図である。
<Hardware configuration>
The information processing apparatus 100 of the above-described embodiment is realized by, for example, a hardware configuration as shown in FIG. FIG. 10 is a diagram showing an example of the hardware configuration of the information processing apparatus 100 of the embodiment.

情報処理装置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を介して他の装置からダウンロードされてもよい。 The information processing device 100 includes NIC100-1, CPU100-2, RAM100-3, ROM100-4, a secondary storage device 100-5 such as a flash memory or an HDD, and a drive device 100-6 on an internal bus or a dedicated communication line. It is configured to be interconnected by. A portable storage medium such as an optical disk is mounted on the drive device 100-6. The program stored in the portable storage medium mounted on the secondary storage device 100-5 or the drive device 100-6 is expanded into the RAM 100-3 by a DMA controller (not shown) or the like, and executed by the CPU 100-2. As a result, each component of the job management unit 110, the job status monitoring unit 120, the job execution unit 130, the job execution status output unit 140, the on-demand processing reservation unit 150, and the user ID conversion unit 160 is realized. The programs referenced by these components may be downloaded from other devices via the network NW.

以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。 Although the embodiments for carrying out the present invention have been described above using the embodiments, the present invention is not limited to these embodiments, and various modifications and substitutions are made without departing from the gist of the present invention. Can be added.

1…情報処理システム、10…端末装置、20…サービス提供装置、100…情報処理装置、110…ジョブ管理部、120…ジョブステータス監視部、130…ジョブ実行部、132…ワーカ、140…ジョブ実行状況出力部、150…オンデマンド処理予約部、160…ユーザID変換部、DB1…第1記憶部、DB2…第2記憶部、DB3…第3記憶部、200…分散処理装置 1 ... Information processing system, 10 ... Terminal device, 20 ... Service providing device, 100 ... Information processing device, 110 ... Job management unit, 120 ... Job status monitoring unit, 130 ... Job execution unit, 132 ... Worker, 140 ... Job execution Situation output unit, 150 ... on-demand processing reservation unit, 160 ... user ID conversion unit, DB1 ... first storage unit, DB2 ... second storage unit, DB3 ... third storage unit, 200 ... distributed processing device

Claims (8)

情報処理装置と、前記情報処理装置から入力された情報を分散処理する分散処理装置とを備える情報処理システムであって、
前記情報処理装置は、
処理内容を指定するメッセージを、キュー構造の記憶部に記憶させる処理予約部と、
前記記憶部に記憶された複数の前記メッセージのうち、先に記憶されたメッセージほど優先的に前記記憶部から読み出し、前記読み出したメッセージに基づく処理を並列に行う複数の処理実行部と、
前記複数の処理実行部の其々の処理結果を出力する出力部と、を有し、
前記処理予約部は、コンテンツの制作者によって入力された前記コンテンツに関するクエリを、前記メッセージとして前記記憶部に記憶させ、
前記処理実行部は、前記記憶部から前記クエリを読み出した場合、前記分散処理装置に対して、前記読み出したクエリを入力し、
前記分散処理装置は、前記処理実行部から前記クエリが入力されると、前記入力されたクエリの特徴と、前記コンテンツの配信対象の候補となる複数のユーザの其々の特徴との類似度のうち、前記類似度が閾値以上となるユーザを、前記コンテンツの配信対象とするユーザとして選択し、前記コンテンツの配信対象とするユーザの選択結果を前記情報処理装置に出力し、
前記出力部は、前記クエリに対する前記分散処理装置の出力結果を、前記制作者の端末装置に出力する、
情報処理システム。
An information processing system including an information processing device and a distributed processing device for distributed processing of information input from the information processing device.
The information processing device is
A processing reservation unit that stores a message that specifies the processing content in the storage unit of the queue structure,
Among the plurality of messages stored in the storage unit, a plurality of processing execution units that preferentially read the previously stored message from the storage unit and perform processing based on the read message in parallel.
It has an output unit that outputs the processing results of each of the plurality of processing execution units.
The processing reservation unit stores the query regarding the content input by the creator of the content in the storage unit as the message.
When the query is read from the storage unit, the processing execution unit inputs the read query to the distributed processing device.
When the query is input from the processing execution unit, the distributed processing device has a degree of similarity between the characteristics of the input query and the characteristics of each of the plurality of users who are candidates for distribution of the content. Among them, the user whose similarity is equal to or higher than the threshold is selected as the user to be the distribution target of the content, and the selection result of the user to be the distribution target of the content is output to the information processing apparatus.
The output unit outputs the output result of the distributed processing device to the query to the terminal device of the creator.
Information processing system.
前記複数の処理実行部の其々は、前記読み出したメッセージに基づく処理が完了した場合、処理が完了したことを示す処理完了情報を出力し、
前記情報処理装置は、前記複数の処理実行部の其々によって出力される前記処理完了情報に基づいて、前記複数の処理実行部の其々の処理の実行状況を監視する監視部を更に有する、
請求項1に記載の情報処理システム。
When the processing based on the read message is completed, each of the plurality of processing execution units outputs the processing completion information indicating that the processing is completed.
The information processing apparatus further includes a monitoring unit that monitors the execution status of each process of the plurality of process execution units based on the process completion information output by each of the plurality of process execution units.
The information processing system according to claim 1 .
前記情報処理装置は、前記監視部によって処理の実行状況が監視された前記複数の処理実行部の中に、前記記憶部から前記メッセージを読み出してから所定時間が経過するまでに前記処理完了情報を出力しない所定の処理実行部が存在する場合、前記複数の処理実行部のいずれかに、前記所定の処理実行部によって読み出されたメッセージに基づく処理を再実行させる処理管理部を更に有する、
請求項に記載の情報処理システム。
The information processing apparatus displays the processing completion information in the plurality of processing execution units whose processing execution status has been monitored by the monitoring unit from the time when the message is read from the storage unit until a predetermined time elapses. When there is a predetermined process execution unit that does not output, one of the plurality of process execution units further has a process management unit that re-executes the process based on the message read by the predetermined process execution unit.
The information processing system according to claim 2 .
前記処理管理部は、前記所定の処理実行部によって読み出されたメッセージの優先度を最も高くして前記記憶部に再度記憶させることで、前記所定の処理実行部によって読み出されたメッセージに基づく処理を最優先で再実行させる、
請求項に記載の情報処理システム。
The processing management unit has the highest priority of the message read by the predetermined processing execution unit and stores it in the storage unit again, based on the message read by the predetermined processing execution unit. Re-execute the process with the highest priority,
The information processing system according to claim 3 .
前記処理予約部は、更に、前記複数のユーザの中から、前記特徴の導出対象とする対象ユーザを指定するメッセージを前記記憶部に記憶させ、
前記処理実行部は、前記記憶部から前記対象ユーザを指定するメッセージを読み出した場合、前記対象ユーザの特徴を導出することを前記分散処理装置に依頼し、
前記依頼を受けた分散処理装置は、前記対象ユーザの行動履歴に基づいて、前記対象ユーザの特徴を導出する、
請求項に記載の情報処理システム。
The processing reservation unit further stores a message designating a target user to be derived from the feature from the plurality of users in the storage unit.
When the processing execution unit reads a message designating the target user from the storage unit, the processing execution unit requests the distributed processing apparatus to derive the characteristics of the target user.
The distributed processing apparatus that has received the request derives the characteristics of the target user based on the behavior history of the target user.
The information processing system according to claim 1 .
前記情報処理装置は、前記分散処理装置によって前記コンテンツの配信対象として選択されたユーザに、前記制作者のコンテンツを配信するコンテンツ配信部を更に有する、
請求項1からのうちいずれか1項に記載の情報処理システム。
The information processing device further includes a content distribution unit that distributes the content of the creator to the user selected as the distribution target of the content by the distributed processing device.
The information processing system according to any one of claims 1 to 5 .
情報処理装置が、
処理内容を指定するメッセージを、キュー構造の記憶部に記憶させ、
前記記憶部に記憶させた複数の前記メッセージのうち、先に記憶されたメッセージほど優先的に前記記憶部から読み出し、
前記読み出したメッセージに基づく処理を並列に行い、
並列に行った前記読み出したメッセージに基づく処理の処理結果を出力し、
コンテンツの制作者によって入力された前記コンテンツに関するクエリを、前記メッセージとして前記記憶部に記憶させ、
前記記憶部から前記クエリを読み出した場合、前記情報処理装置から入力された情報を分散処理する分散処理装置に対して、前記読み出したクエリを入力し、
前記分散処理装置が、前記情報処理装置から前記クエリが入力されると、前記入力されたクエリの特徴と、前記コンテンツの配信対象の候補となる複数のユーザの其々の特徴との類似度のうち、前記類似度が閾値以上となるユーザを、前記コンテンツの配信対象とするユーザとして選択し、前記コンテンツの配信対象とするユーザの選択結果を前記情報処理装置に出力し、
前記情報処理装置が、前記クエリに対する前記分散処理装置の出力結果を、前記制作者の端末装置に出力する、
情報処理方法。
Information processing equipment
A message that specifies the processing content is stored in the storage unit of the queue structure.
Of the plurality of the messages stored in the storage unit, the previously stored message is preferentially read from the storage unit.
Processing based on the read message is performed in parallel,
The processing result of the processing based on the read message performed in parallel is output.
A query related to the content input by the creator of the content is stored in the storage unit as the message.
When the query is read from the storage unit, the read query is input to the distributed processing device that performs distributed processing of the information input from the information processing device.
When the query is input from the information processing device, the distributed processing device has a degree of similarity between the characteristics of the input query and the characteristics of each of the plurality of users who are candidates for distribution of the content. Among them, the user whose similarity is equal to or higher than the threshold is selected as the user to be the distribution target of the content, and the selection result of the user to be the distribution target of the content is output to the information processing apparatus.
The information processing device outputs the output result of the distributed processing device to the query to the terminal device of the creator.
Information processing method.
情報処理装置のコンピュータに、
処理内容を指定するメッセージを、キュー構造の記憶部に記憶させる処理と、
前記記憶部に記憶させた複数の前記メッセージのうち、先に記憶されたメッセージほど優先的に前記記憶部から読み出す処理と、
前記読み出したメッセージに基づく処理を並列に行う処理と、
並列に行った前記読み出したメッセージに基づく処理の処理結果を出力する処理と、
コンテンツの制作者によって入力された前記コンテンツに関するクエリを、前記メッセージとして前記記憶部に記憶させる処理と、
前記記憶部から前記クエリを読み出した場合、前記情報処理装置から入力された情報を分散処理する分散処理装置に対して、前記読み出したクエリを入力する処理と、を実行させ、
前記分散処理装置のコンピュータに、前記情報処理装置から前記クエリが入力されると、前記入力されたクエリの特徴と、前記コンテンツの配信対象の候補となる複数のユーザの其々の特徴との類似度のうち、前記類似度が閾値以上となるユーザを、前記コンテンツの配信対象とするユーザとして選択し、前記コンテンツの配信対象とするユーザの選択結果を前記情報処理装置に出力する処理を実行させ、
前記情報処理装置のコンピュータに、前記クエリに対する前記分散処理装置の出力結果を、前記制作者の端末装置に出力する処理を実行させるための
プログラム。
To the computer of the information processing device
A process to store a message that specifies the processing content in the storage unit of the queue structure,
Of the plurality of messages stored in the storage unit, the message stored earlier is preferentially read from the storage unit, and
The process of performing the process based on the read message in parallel and the process
A process to output the process result of the process based on the read message performed in parallel, and a process to output the process result.
A process of storing a query related to the content input by the creator of the content in the storage unit as the message.
When the query is read from the storage unit, the distributed processing device that performs distributed processing of the information input from the information processing device is made to execute the process of inputting the read query.
When the query is input from the information processing device to the computer of the distributed processing device, the characteristics of the input query are similar to the characteristics of each of the plurality of users who are candidates for distribution of the content. Of the degrees, a user whose similarity is equal to or higher than the threshold is selected as a user to be delivered to the content, and a process of outputting the selection result of the user to be delivered to the content to the information processing apparatus is executed. ,
A program for causing a computer of the information processing device to execute a process of outputting the output result of the distributed processing device to the query to the terminal device of the creator.
JP2018052694A 2018-03-20 2018-03-20 Information processing systems, information processing methods, and programs Active JP7086661B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018052694A JP7086661B2 (en) 2018-03-20 2018-03-20 Information processing systems, information processing methods, and programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018052694A JP7086661B2 (en) 2018-03-20 2018-03-20 Information processing systems, information processing methods, and programs

Publications (2)

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

Family

ID=68066200

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018052694A Active JP7086661B2 (en) 2018-03-20 2018-03-20 Information processing systems, information processing methods, and programs

Country Status (1)

Country Link
JP (1) JP7086661B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007364A (en) 2000-06-22 2002-01-11 Fujitsu Ltd Scheduling device for performing job scheduling of parallel-computer system
JP2010539594A (en) 2007-09-17 2010-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション System and method for executing computationally intensive database user-defined programs on attached high performance parallel computers
JP2013516008A (en) 2009-12-23 2013-05-09 アビニシオ テクノロジー エルエルシー Query management
JP2016038822A (en) 2014-08-08 2016-03-22 ヤフー株式会社 Extraction device, extraction method, and extraction program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007364A (en) 2000-06-22 2002-01-11 Fujitsu Ltd Scheduling device for performing job scheduling of parallel-computer system
JP2010539594A (en) 2007-09-17 2010-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション System and method for executing computationally intensive database user-defined programs on attached high performance parallel computers
JP2013516008A (en) 2009-12-23 2013-05-09 アビニシオ テクノロジー エルエルシー Query management
JP2016038822A (en) 2014-08-08 2016-03-22 ヤフー株式会社 Extraction device, extraction method, and extraction program

Also Published As

Publication number Publication date
JP2019164654A (en) 2019-09-26

Similar Documents

Publication Publication Date Title
US11709901B2 (en) Personalized search filter and notification system
US10346379B2 (en) Generating an implied object graph based on user behavior
JP6161679B2 (en) Search engine and method for realizing the same
US9953063B2 (en) System and method of providing a content discovery platform for optimizing social network engagements
US20170329630A1 (en) Personal digital assistant
JP5571145B2 (en) Advertisement distribution apparatus and advertisement distribution method
US20140278939A1 (en) Advertisement extraction device and advertisement extraction method
US20130124368A1 (en) Performing deduplication on product information search results
US20130212109A1 (en) Methods and apparatus for classifying content
WO2019037258A1 (en) Information recommendation method, device and system, and computer-readable storage medium
WO2016078533A1 (en) Search method, apparatus, and device and non-volatile computer storage medium
JP5662299B2 (en) Information recommendation apparatus, method, apparatus, and program
JP2007141135A (en) Information processor, retrieval method and program
WO2014141976A1 (en) Method for user categorization in social media, computer program, and computer
US11500930B2 (en) Method, apparatus and computer program product for generating tiered search index fields in a group-based communication platform
Jacob et al. On a customer-induced interruption in a service system
US11200288B1 (en) Validating interests for a search and feed service
JP7086661B2 (en) Information processing systems, information processing methods, and programs
US20140229474A1 (en) Mobile classifieds search
US9563845B1 (en) Rule evaluation based on precomputed results
CN108363707B (en) Method and device for generating webpage
CN105528379B (en) Resource recommendation method and device
JP6167029B2 (en) RECOMMENDATION INFORMATION GENERATION DEVICE AND RECOMMENDATION INFORMATION GENERATION METHOD
CN109299351B (en) Content recommendation method and device, electronic equipment and computer readable medium
CN109408725B (en) Method and apparatus for determining user interest

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