WO2018146761A1 - 分析装置 - Google Patents

分析装置 Download PDF

Info

Publication number
WO2018146761A1
WO2018146761A1 PCT/JP2017/004676 JP2017004676W WO2018146761A1 WO 2018146761 A1 WO2018146761 A1 WO 2018146761A1 JP 2017004676 W JP2017004676 W JP 2017004676W WO 2018146761 A1 WO2018146761 A1 WO 2018146761A1
Authority
WO
WIPO (PCT)
Prior art keywords
tensor
data stream
pattern
window length
graph
Prior art date
Application number
PCT/JP2017/004676
Other languages
English (en)
French (fr)
Inventor
翼 高橋
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US16/481,520 priority Critical patent/US10970288B2/en
Priority to JP2018566698A priority patent/JP6741203B2/ja
Priority to PCT/JP2017/004676 priority patent/WO2018146761A1/ja
Publication of WO2018146761A1 publication Critical patent/WO2018146761A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Definitions

  • the present invention relates to an analyzer, and more particularly to an analyzer that analyzes a data stream.
  • Sensor devices such as network intrusion detection devices (IDS) and factory temperature sensors generate observed data by linking the observed state and value (observed value) with information (time stamp) such as the observation time.
  • time stamp information
  • a sequence of data including observation values and time stamps distributed in this stream format is called a data stream. That is, the above-described monitoring is performed by acquiring and observing a data stream.
  • data streams include mini-blogs (tweets) such as Twitter, proxy server logs, IDS alert logs, and the like.
  • Events that occur in the data stream do not always occur in the same cycle or time. In some cases, even within 1 hour, in other cases, it may develop over 10 minutes and 1 day. These may occur when an abnormality occurs in a target device, or when a pattern generation time is arbitrarily distorted by a human like a cyber attack on a network.
  • Non-Patent Document 1 describes various methods for analyzing a data stream.
  • a window or a sliding window sliding window
  • this window length greatly affects the accuracy of the analysis.
  • Non-Patent Document 2 For time-series data (waveform format data), a method of eliminating temporal distortion using dynamic time warping in documents such as Non-Patent Document 2 is known.
  • the data stream assumed by the present invention does not necessarily have a waveform format, and a plurality of events overlap each other, so that the concept of dynamic time warping cannot be applied.
  • n-gram model used in natural language processing is known as a means for expressing a pattern between words before and after being included in a neighborhood by a statistical model.
  • tuples that make up an event may appear at very long intervals, and multiple events are mixed together, so the context between tuples that make up the event takes into account the neighborhood. It is difficult to capture with n-gram. Similarly, it is difficult to solve by a method using a memory such as LSTM shown in Non-Patent Document 3.
  • an object of the present invention is to provide an information processing apparatus that can solve the above-described problem that an event cannot be detected from a data stream.
  • An analyzer is: A window length determination unit for determining a window length of a data stream including a tuple composed of a time stamp and an observation value; A graph constructing unit that constructs a graph representing a preset relationship between the tuples in a window divided by the determined window length from the data stream; A tensor constructing unit that constructs a tensor or a matrix equivalent to the tensor from the plurality of graphs constructed for each of the plurality of windows; A pattern extraction unit that extracts a pattern from the tensor or a matrix equivalent to the tensor; A difference extraction unit that extracts a residual portion that does not match the extracted pattern from the data stream; Prepared, The window length determination unit determines a new window length different from the window length determined in the past, The graph constructing unit constructs a graph representing a preset relationship between the tuples in a window divided by the determined new window length from the residual portion extracted from the data stream; The configuration is as follows
  • a program which is one embodiment of the present invention is In the information processing device, A window length determination unit for determining a window length of a data stream including a tuple composed of a time stamp and an observation value; A graph constructing unit that constructs a graph representing a preset relationship between the tuples in a window divided by the determined window length from the data stream; A tensor constructing unit that constructs a tensor or a matrix equivalent to the tensor from the plurality of graphs constructed for each of the plurality of windows; A pattern extraction unit that extracts a pattern from the tensor or a matrix equivalent to the tensor; A difference extraction unit that extracts a residual portion that does not match the extracted pattern from the data stream; And realize The window length determination unit determines a new window length different from the window length determined in the past, The graph constructing unit constructs a graph representing a preset relationship between the tuples in a window divided by the determined new window length from the residual portion extracted from the data
  • An analysis method includes: Determine the window length of the data stream containing a tuple consisting of a timestamp and an observation, Constructing from the data stream a graph representing a preset relationship between the tuples in a window divided by the determined window length; A tensor or a matrix equivalent to the tensor is constructed from the plurality of graphs constructed for each of the plurality of windows, Extracting a pattern from the tensor or a matrix equivalent to the tensor; Extracting a residual portion from the data stream that does not match the extracted pattern; Further, a new window length different from the window length determined in the past is determined, and the tuple in the window divided by the determined new window length from the residual portion extracted from the data stream. Constructing a graph representing a preset relationship between the tensor construction, extraction of the pattern, extraction of the residual portion, The configuration is as follows.
  • the present invention can detect an event from a data stream by being configured as described above.
  • FIG. 8 is a graph representation of the pattern shown in FIG. FIG.
  • FIG. 8 is a diagram illustrating a residual portion derived from the data stream illustrated in FIG. 3 and the pattern illustrated in FIG. 7. It is a figure which shows an example of the graph produced
  • FIG. 13 is a diagram illustrating a residual portion derived from the data stream illustrated in FIG. 3 and the pattern illustrated in FIG. 12. It is a figure which shows an example of the graph extracted from a part of residual part of the data stream shown in FIG. It is the figure which represented the graph shown in FIG. 14 by matrix.
  • FIG. 17 is a diagram illustrating a residual portion derived from the data stream illustrated in FIG. 3 and the pattern illustrated in FIG. 16. It is a block diagram which shows the structure of the analyzer in 2nd Embodiment in this invention. It is a block diagram which shows the structure of the analyzer in the supplementary note 1 in this invention.
  • FIG. 1 is a diagram for explaining the configuration of the analysis apparatus according to the first embodiment
  • FIG. 2 is a flowchart showing the state of analysis processing
  • 3 to 17 are diagrams illustrating examples of information obtained by analysis processing.
  • the analysis apparatus 100 includes a graph construction unit 101, a tensor construction unit 103, a pattern extraction unit 105, a difference extraction unit 107, a convergence determination unit 109, and a window length.
  • a determination unit 111 and a pattern / graph conversion unit 113 are provided.
  • the analysis apparatus 100 can input a data stream 201, and includes a graph construction rule 202, a residual graph 203, a tensor 204, a pattern 205, a residual 206, a found pattern graph 207, Can be stored.
  • the units 101 to 111 included in the analysis apparatus 100 may be configured by hardware circuits, and are constructed by reading a program into a CPU (Central Processing Unit) provided in the information processing apparatus. May be.
  • a CPU Central Processing Unit
  • the data stream to be processed in the present invention is configured to include a tuple composed of a time stamp and an observed value, as will be described later.
  • the graph construction unit 101 divides the input data stream (201) or a part thereof (residual part) by the window length Wi. Then, a graph representing a preset relationship between tuples is constructed for each partial stream (window) obtained by dividing the data stream or a part thereof. Specifically, a graph that is a tuple for each window is created with reference to the graph construction rule (202), and a column G ⁇ (203) of the created graph is output.
  • the graph construction unit 101 applies the residual (206) (residual part) extracted by the difference extraction unit 107. Then, the graph is constructed in the same manner as described above.
  • the tensor constructing unit 103 constructs and outputs a tensor Z204 by stacking a plurality of graph sequences constructed for each window by the graph constructing unit 101.
  • the tensor construction unit 103 as will be described later, a graph GP (207) obtained by converting the pattern P output by the pattern / graph conversion unit 113 in the past, and a graph constructed immediately before by the graph construction unit 101 Column G ⁇ (203) is stacked to construct tensor Z.
  • the tensor constructing unit 103 may construct a matrix Y equivalent to the tensor Z obtained by forming the tensor Z into a matrix (Matricization, Unfolding) from the graph GP and the graph sequence G ⁇ .
  • the pattern extraction unit 105 extracts the main pattern P (205) from the tensor Z (or matrix Y) constructed by the tensor construction unit 103.
  • one or more patterns such as tensor factorization or any analysis method that extracts a representative feature amount can be used.
  • the matrix Y one or more patterns are similarly obtained by principal component analysis (Principal Component Analysis), matrix decomposition such as singular value decomposition (Single Value Decomposition), manifold learning (Manifold Learning), etc.
  • any analysis method that extracts a representative feature amount can be used.
  • the difference extraction unit 107 extracts a residual ⁇ (206) (residual portion) that is a subset of the data stream that does not correspond to the pattern P extracted by the pattern extraction unit 105 from the input data stream.
  • This residual ⁇ is a target of graph construction by the next iteration by the graph construction unit 101 described above when the processing for the data stream does not converge.
  • the convergence determination unit 109 determines whether or not no more patterns can be extracted by the analysis by the analysis apparatus 100. That is, it is determined whether or not the processing for the data stream has converged. If no more patterns can be extracted, the operation of the analyzer 100 is terminated. On the other hand, if it is determined that the residual ⁇ remains sufficiently and the pattern can be extracted yet, that is, if it is determined that the process has not converged, as described above, the residual ⁇ is used, Perform the next iteration.
  • the pattern / graph conversion unit 113 converts the pattern P (205) extracted by the pattern extraction unit 105 into a graph string (207) including one or more graphs. At this time, each graph represents an independent pattern.
  • the input data stream is set as a residual ⁇
  • a graph is constructed by the graph construction unit 101 for the residual ⁇
  • a graph sequence G ⁇ is generated (step S11).
  • FIG. 3 shows an input data stream.
  • the data stream includes a plurality of tuples including “time” as a time stamp and observations “Alert type”, “src (source)”, and “dst (destination)”.
  • graph construction rules are set and stored in advance, and in the present embodiment, the following two rules are assumed.
  • the graph construction rule described above is an example, and is not limited to such a rule, and may be any rule.
  • FIGS. 4A and 4B are equivalent to the matrices shown in FIGS. 5A and 5B, respectively.
  • This matrix adds 1 to the cell when an edge can be extended from one “alert type” to another “alert type” once.
  • a cell with an empty value means 0 on the side. It should be noted that the number of times that an edge can be stretched as shown in FIGS. 5A and 5B on the edges of the graphs of FIGS. 4A and 4B may be given as a weight.
  • the value stored in the cell on the side is a calculated value calculated based on the number of times the side can be stretched. Good. For example, a value obtained by dividing by the total number of edges from a certain “alert type” (a value normalized by the degree of output) may be assigned.
  • the tensor construction unit 103 generates a tensor Z constructed by stacking the graph sequence G ⁇ output from the graph construction unit 101 and the graph sequence GP output from the pattern / graph conversion unit 113 as described later ( Step S13).
  • a tensor is generated only for the graph sequence G ⁇ constructed by the graph construction unit 101.
  • the tensor constructing unit 103 constructs a tensor with respect to FIGS. 5A, 5 ⁇ / b> B, and 5 ⁇ / b> C generated by the graph constructing unit 101.
  • the graph columns (matrix columns) for each window divided by the window length are arranged and stacked in ascending order of the value of the time attribute to generate a tensor Z as shown in FIG.
  • the pattern extraction unit 105 performs pattern extraction by tensor decomposition or the like on the tensor Z generated by the tensor construction unit 103 to extract the main pattern P.
  • the difference extraction unit 107 compares the input original data stream with the pattern P, and derives a residual ⁇ that is a subset of the data stream that does not match the pattern P (step S15).
  • FIG. 7 shows an example of a pattern P obtained by Parafac.
  • the matrix in FIG. 7 shows a pattern that appears in common or multiple times in FIGS. 5A, 5B, and 5C, and is equivalent to the directed graph in FIG.
  • a 1 ⁇ 4 vector described in an oblique direction in FIG. 7 indicates at which time the pattern appears by dividing by the window length.
  • 1 is stored in the first and second. This indicates that the patterns indicated by the matrix in FIG. 7 exist at times [P1, 6] and [7, 12].
  • sparse tensor decomposition that introduces sparse estimation which is a method for making the obtained pattern P sparse (many 0)
  • the number k of latent factors constituting the main pattern may be determined based on an information amount standard such as MDL theory or BIC.
  • Pattern P in FIG. 7 is an example of a pattern obtained by sparse tensor decomposition. It should be noted that an example is shown with simple values, giving priority to the ease of explanation rather than accurately explaining the values obtained by actual sparse tensor decomposition.
  • the directed graph shown in FIG. 8 is a graph sequence GP generated from the pattern P by the pattern / graph conversion unit 113.
  • the pattern / graph conversion unit 113 does not convert the pattern P into the graph sequence GP.
  • the difference extraction unit 107 obtains a residual ⁇ that is a subset of the data stream not corresponding to the pattern P from the data stream.
  • the residual ⁇ shown in FIG. 9 is obtained from the data stream shown in FIG. 3 and the pattern P shown in FIG.
  • the convergence determination unit 109 determines whether or not the processing for the data stream has converged under conditions such as the pattern P not changing from the previous pattern extraction and the residual ⁇ being empty, that is, the analysis apparatus 100. It is determined whether or not to stop the operation (step S17).
  • the window length determination unit 111 derives a window length W i + 1 to be used in the next iteration (step S19).
  • graph construction unit 101, tensor constructing unit 103, the pattern extraction unit 105, a difference extracting unit 107 repeats the processing by the convergence determining unit 109.
  • the graph shown in FIG. 10 is generated from the time [1, 12] from the residual ⁇ shown in FIG. 9, and the matrix shown in FIG. 11A is generated. Similarly, the matrix of FIG. 11B is generated from time [13, 24].
  • a pattern string generated by converting the pattern P of the iteration 1 into a tensor shown in FIG. 7 as ⁇ P is generated.
  • 7 is converted to a tensor and is equivalent to a product obtained by taking an outer product of the matrix and the vector in FIG. Therefore, in the second iteration, the tensor construction unit 103 generates a tensor Z generated by stacking the matrix of FIG. 7 and the vector of FIG. 7 and the matrices of FIGS. 11 (a) and 11 (b).
  • the pattern extraction unit 105 extracts the pattern P shown in FIG.
  • a pattern P shown in FIG. 12 represents a main pattern in the tensor Z as a sum of two terms.
  • the first term a pattern similar to the pattern extracted in iteration 1 is extracted, and a 1 ⁇ 6 vector is attached.
  • the second term is a pattern newly extracted in iteration 2, and indicates a pattern of E ⁇ E that appears in [1, 12] and [13, 24], respectively.
  • the difference extraction unit 107 obtains the residual ⁇ shown in FIG. Then, the convergence determination unit 109 continues the process because there is a sufficient number of tuples in the residual ⁇ shown in FIG.
  • the tensor construction unit 103 generates a tensor Z obtained by stacking the tensor obtained from the past pattern P shown in FIG. 12 and the matrix shown in FIG. 15, and the pattern extraction unit 105 extracts the pattern P shown in FIG. .
  • the difference extraction unit 107 extracts the residual ⁇ shown in FIG.
  • the convergence determining unit 109 stops the operation because there is no sufficient number of tuples for pattern extraction in FIG.
  • a plurality of events in which temporal distortions such as expression time and interval are generated can be extracted from the data stream as the same pattern.
  • a plurality of events with temporal distortion can be extracted as the same pattern without setting the window length for each event.
  • each component of the analysis apparatus 100 may be configured with a hardware circuit.
  • the analysis apparatus 100 may be configured using a plurality of apparatuses in which each component is connected via a network. Further, the analysis apparatus 100 may configure a plurality of components by a single piece of hardware.
  • the analysis apparatus 300 may be realized as a computer apparatus including a CPU (Central Processing Unit), a ROM (Read Only Memory), and a RAM (Random Access Memory).
  • the analysis apparatus 300 may be realized as a computer apparatus that includes an input / output connection circuit (IOC: Input / Output Circuit) and a network interface circuit (NIC: Network Interface Circuit) in addition to the above configuration.
  • IOC Input / Output Circuit
  • NIC Network Interface Circuit
  • FIG. 18 is a block diagram illustrating an example of the configuration of the analyzer 300 according to the second embodiment.
  • the analysis device 300 includes a CPU 310, a ROM 320, a RAM 330, an internal storage device 340, an IOC 350, an input device 360, a display device 370, and a NIC 380, and constitutes a computer device.
  • the CPU 310 reads a program from ROM 320. Then, the CPU 310 controls the RAM 330, the internal storage device 340, the IOC 350, and the NIC 380 based on the read program.
  • the computer including the CPU 310 controls these configurations, and the graph construction unit 101, the tensor construction unit 103, the pattern extraction unit 105, the difference extraction unit 107, and the convergence determination unit 109 illustrated in FIG. Each function as the window length determination unit 111 and the pattern / graph conversion unit 113 is realized.
  • the CPU 310 may use the RAM 330 or the internal storage device 340 as a temporary storage of a program when realizing each function.
  • the CPU 310 may read a program included in a storage medium (not shown) that stores the program so as to be readable by a computer using a storage medium reading device (not shown).
  • the CPU 310 may receive a program from an external device (not shown) via the NIC 380, store the program in the RAM 330, and operate based on the stored program.
  • the ROM 320 stores programs executed by the CPU 310 and fixed data.
  • the ROM 320 is, for example, a P-ROM (Programmable-ROM) or a flash ROM.
  • the RAM 330 temporarily stores programs executed by the CPU 310 and data.
  • the RAM 330 is, for example, a D-RAM (Dynamic-RAM).
  • the internal storage device 340 stores data and programs stored in the analysis device 300 for a long time. Further, the internal storage device 340 may operate as a temporary storage device for the CPU 310.
  • the internal storage device 340 is, for example, a hard disk device, a magneto-optical disk device, an SSD (Solid State Drive), or a disk array device.
  • the ROM 320 and the internal storage device 340 are non-transitory storage media.
  • the RAM 330 is a volatile storage medium.
  • the CPU 310 can operate based on a program stored in the ROM 320, the internal storage device 340, or the RAM 330. That is, the CPU 310 can operate using a nonvolatile storage medium or a volatile storage medium.
  • the IOC 350 mediates data between the CPU 310, the input device 360, and the display device 370.
  • the IOC 350 is, for example, an IO interface card or a USB (Universal Serial Bus) card.
  • the input device 360 is a device that receives an input instruction from an operator of the analysis apparatus 300.
  • the input device 360 is, for example, a keyboard, a mouse, or a touch panel.
  • the display device 370 is a device that displays information to the operator of the analysis apparatus 300.
  • the display device 370 is, for example, a liquid crystal display.
  • the NIC 380 relays data exchange with an external device (not shown) via the network.
  • the NIC 380 is, for example, a LAN (Local Area Network) card.
  • the analysis apparatus 300 configured as described above can achieve the same effect as the analysis apparatus 100 because the CPU 610 can realize the same function as the analysis apparatus 100 described in the first embodiment based on the program.
  • a window length determination unit 410 that determines a window length of a data stream including a tuple composed of a time stamp and an observation value;
  • a graph construction unit 420 for constructing a graph representing a preset relationship between the tuples in the window divided by the determined window length from the data stream;
  • a tensor constructing unit 430 that constructs a tensor or a matrix equivalent to the tensor from the plurality of graphs constructed for each of the plurality of windows;
  • a pattern extraction unit 440 that extracts a pattern from the tensor or a matrix equivalent to the tensor;
  • a difference extraction unit 450 that extracts a residual portion that does not match the extracted pattern from the data stream;
  • the window length determination unit 410 determines a new window length different from the window length determined in the past,
  • the graph construction unit 420 constructs a graph representing a preset relationship between the tuples in a window divided by the determined new window length from the residual portion extracted from the
  • Appendix 2 The analyzer according to appendix 1, wherein A convergence determination unit that determines whether or not the processing for the data stream has converged based on the residual portion extracted from the data stream; When it is determined that the processing for the data stream has not converged, the window length determination unit, the graph construction unit, the tensor construction unit, the pattern extraction unit, and the difference extraction unit further operate. Analysis equipment.
  • Appendix 3 The analyzer according to appendix 1 or 2, The tensor construction unit constructs the tensor or a matrix equivalent to the tensor from the pattern extracted in the past and the graph constructed immediately before. Analysis equipment.
  • Appendix 4 An analyzer according to any one of appendices 1 to 3, A pattern / graph converter for converting the extracted pattern into the graph; Analysis equipment.
  • the pattern extraction unit extracts patterns as sparse vectors, matrices, and tensors using tensor decomposition that introduces sparse estimation. Analysis equipment.
  • the analyzer according to any one of appendices 1 to 5, The graph constructing unit constructs the graph expressing a temporal context between the tuples by a directed graph; Analysis equipment.
  • a window length determination unit for determining a window length of a data stream including a tuple composed of a time stamp and an observation value;
  • a graph constructing unit that constructs a graph representing a preset relationship between the tuples in a window divided by the determined window length from the data stream;
  • a tensor constructing unit that constructs a tensor or a matrix equivalent to the tensor from the plurality of graphs constructed for each of the plurality of windows;
  • a pattern extraction unit that extracts a pattern from the tensor or a matrix equivalent to the tensor;
  • a difference extraction unit that extracts a residual portion that does not match the extracted pattern from the data stream;
  • the window length determination unit determines a new window length different from the window length determined in the past,
  • the graph constructing unit constructs a graph representing a preset relationship between the tuples in a window divided by the determined new window length from the residual portion extracted from the data stream;
  • (Appendix 9) Determine the window length of the data stream containing a tuple consisting of a timestamp and an observation, Constructing from the data stream a graph representing a preset relationship between the tuples in a window divided by the determined window length; A tensor or a matrix equivalent to the tensor is constructed from the plurality of graphs constructed for each of the plurality of windows, Extracting a pattern from the tensor or a matrix equivalent to the tensor; Extracting a residual portion from the data stream that does not match the extracted pattern; Further, a new window length different from the window length determined in the past is determined, and the tuple in the window divided by the determined new window length from the residual portion extracted from the data stream. Constructing a graph representing a preset relationship between the tensor construction, extraction of the pattern, extraction of the residual portion, Analysis method.
  • the above-described program is stored in a storage device or recorded on a computer-readable recording medium.
  • the recording medium is a portable medium such as a flexible disk, an optical disk, a magneto-optical disk, and a semiconductor memory.

Abstract

本発明である分析装置は、タイムスタンプと観測値とからなるタプルを含むデータストリームのウィンドウ長を決定するウィンドウ長決定部と、データストリームから、決定されたウィンドウ長で分割されたウィンドウ内におけるタプル間の予め設定された関係を表すグラフを構築するグラフ構築部と、複数のウィンドウ毎にそれぞれ構築された複数のグラフからテンソルまたはテンソルと等価な行列を構築するテンソル構築部と、テンソルまたはテンソルと等価な行列からパターンを抽出するパターン抽出部と、データストリームから抽出したパターンに合致しない残差部分を抽出する差分抽出部と、備え、上記ウィンドウ長決定部は、過去に決定したウィンドウ長とは異なる新たなウィンドウ長を決定する。

Description

分析装置
 本発明は、分析装置にかかり、特に、データストリームを分析する分析装置に関する。
 ネットワークの侵入検知装置(IDS)や工場の温度センサーといったセンサー機器は、観測した状態や値(観測値)をその観測時刻などの情報(タイムスタンプ)と紐付けて時々刻々と生成している。これらの観測値とタイムスタンプを含むデータをストリーム形式で配信することで、ネットワークや工場などを常時監視することができる。このストリーム形式で配信される観測値とタイムスタンプを含むデータのシーケンスはデータストリームと呼ばれる。すなわち、前述の監視は、データストリームを取得し、観測することで行われる。
 さらにデータストリームを分析することで、監視対象が正常であるかを判別したり、疑わしい挙動を発見したり、といった状態把握が可能となる。データストリームの例として、Twitterなどのミニブログ(つぶやき)や、プロキシサーバのログ、IDSのアラートログ、などがある。
 データストリームには様々な事象が入り混じっている。そのため、データストリーム中で生じている事象を理解するためには、“よく発現する”、“異常である”などの“意味のある”1つ以上のデータ(観測値とタイムスタンプおよびそれ以外の情報)の組を抽出する必要がある。この“意味のある”1つ以上のデータの組を“イベント”と呼ぶ。
 データストリームで生じるイベントは、常に同じ周期や時間で発現するわけではない。あるときは1時間以内であっても、あるときは10分、1日を掛けて発現する場合もある。これらは対象とする機器に異常が生じる、ネットワークへのサイバー攻撃のようにパターンの発生時間を人間によって恣意的に歪められる、といった場合に生じ得る。
 一方、データストリームは時間方向に対して無限長もしくは非常に長いといった特性を持つ。そのため、データストリームを分析する際には、ある時間Wで発現する事象に注目し、パターンを発見することが行われる。例えば、24時間以内に生じる温度の変化などが該当する。さらにデータストリームをある時間Wで分割し、分割後の複数のサブシーケンスで共通に発現するパターンを発見することも行われる。例えば、W=24時間とすると、一日の温度変化の平均的なパターンや、特定の時間によく発現するネットワーク上の疑わしい挙動、を発見することができる。
Gaber, Mohamed Medhat, Arkady Zaslavsky, and Shonali Krishnaswamy. "Mining data streams: a review." ACM Sigmod Record 34.2 (2005): 18-26. Rakthanmanon, Thanawin. "Addressing Big Data Time Series: Mining Trillions of Time Series Subsequences Under Dynamic Time Warping". ACM Transactions on Knowledge Discovery from Data. 7 (3): 10:1-10:31 Sepp Hochreiter; Jurgen Schmidhuber (1997). "Long short-term memory". Neural Computation. 9 (8): 1735-1780.
 しかしながら、上述のように時間的な歪みが生じている場合、時間Wを基にしたサブシーケンスを対象とする分析方法では、分割する時間Wを超える時間で完了するイベントを他の同一のイベントと同一視することができない、という問題がある。また、歪みがない場合であっても、分割する時間Wがどの程度であるかを事前に知っていることが求められる。
 よって、既存のデータストリーム分析手法では、データストリームに関する事前知識を有さない場合に、データストリームから歪みが含まれ得るイベントを発見できない、または、本来同一視されるはずのイベントが同一視されない、といった問題がある。
 ここで、非特許文献1には、データストリームを分析する様々な手法について記載されている。データストリームを分析する際には、ウィンドウまたはスライディングウィンドウ(滑走窓)を用いることが一般的であり、このウィンドウ長は、分析の精度等に大きな影響を与える。
 時系列データ(波形形式のデータ)に対しては、非特許文献2などの文献にてdynamic time warpingを用いた、時間的歪みを解消する方法が知られている。しかしながら、本発明が想定するデータストリームは、かならずしも波形形式をとらず、また複数のイベントが重なりあっているため、dynamic time warpingの概念を適用することができない。同様に、ARなどの線形モデルによる時系列モデルの適用も困難である。
 また、自然言語処理で用いられるn-gramモデルは、近傍に含まれる前後の単語間のパターンを統計的なモデルで表現する手段として知られている。しかし、データストリームでは、イベントを成すタプルが非常に長い間隔を持って出現することがあるため、また複数のイベントが交じり合っているため、イベントを成すタプル間の前後関係を、近傍を考慮するn-gramで捉えることが難しい。同様に非特許文献3に示されたLSTMのようなメモリを用いた手法で解決することも困難である。
 このため、本発明の目的は、上述した課題である、データストリームからイベントを検出できない、ということを解決することができる情報処理装置を提供することにある。
 本発明の一形態である分析装置は、
 タイムスタンプと観測値とからなるタプルを含むデータストリームのウィンドウ長を決定するウィンドウ長決定部と、
 前記データストリームから、決定された前記ウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築するグラフ構築部と、
 複数の前記ウィンドウ毎にそれぞれ構築された複数の前記グラフからテンソルまたは前記テンソルと等価な行列を構築するテンソル構築部と、
 前記テンソルまたは前記テンソルと等価な行列からパターンを抽出するパターン抽出部と、
 前記データストリームから、抽出した前記パターンに合致しない残差部分を抽出する差分抽出部と、
備え、
 前記ウィンドウ長決定部は、過去に決定した前記ウィンドウ長とは異なる新たなウィンドウ長を決定し、
 前記グラフ構築部は、前記データストリームから抽出された前記残差部分から、決定された前記新たなウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築する、
という構成をとる。
 また、本発明の一形態であるプログラムは、
 情報処理装置に、
 タイムスタンプと観測値とからなるタプルを含むデータストリームのウィンドウ長を決定するウィンドウ長決定部と、
 前記データストリームから、決定された前記ウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築するグラフ構築部と、
 複数の前記ウィンドウ毎にそれぞれ構築された複数の前記グラフからテンソルまたは前記テンソルと等価な行列を構築するテンソル構築部と、
 前記テンソルまたは前記テンソルと等価な行列からパターンを抽出するパターン抽出部と、
 前記データストリームから、抽出した前記パターンに合致しない残差部分を抽出する差分抽出部と、
を実現させると共に、
 前記ウィンドウ長決定部は、過去に決定した前記ウィンドウ長とは異なる新たなウィンドウ長を決定し、
 前記グラフ構築部は、前記データストリームから抽出された前記残差部分から、決定された前記新たなウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築する、
ことを実現させる、
という構成をとる。
 また、本発明の一形態である分析方法は、
 タイムスタンプと観測値とからなるタプルを含むデータストリームのウィンドウ長を決定し、
 前記データストリームから、決定された前記ウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築し、
 複数の前記ウィンドウ毎にそれぞれ構築された複数の前記グラフからテンソルまたは前記テンソルと等価な行列を構築し、
 前記テンソルまたは前記テンソルと等価な行列からパターンを抽出し、
 前記データストリームから、抽出した前記パターンに合致しない残差部分を抽出し、
 さらに、過去に決定した前記ウィンドウ長とは異なる新たなウィンドウ長を決定し、前記データストリームから抽出された前記残差部分から、決定された前記新たなウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築して、前記テンソルの構築、前記パターンの抽出、前記残差部分の抽出を繰り返す、
という構成をとる。
 本発明は、以上のように構成されることにより、データストリームからイベントを検出することができる。
本発明における第1の実施形態における分析装置の構成を示すブロック図である。 本発明における第1の実施形態における処理手順を示すフローチャートである。 データストリームの一例を示す図である。 データストリームの一部から生成したグラフの一例を示す図である。 データストリームの一部から生成したグラフを行列表現した一例を示す図である。 図5に示した行列の集合から生成したテンソルを示す図である。 図6に示したテンソルから抽出したパターンの一例を示す図である。 図7に示したパターンをグラフ表現した図である。 図3に示したデータストリームと図7に示したパターンから導いた残差部分を示す図である。 図9に示したデータストリームの残差部分の一部から生成したグラフの一例を示す図である。 図10に示したグラフを行列表現した図である。 図7に示したパターンと、図11に示した行列から生成したテンソルと、から抽出したパターンを示す図である。 図3に示したデータストリームと図12に示したパターンから導いた残差部分を示す図である。 図13に示したデータストリームの残差部分の一部から抽出したグラフの一例を示す図である。 図14に示したグラフを行列表現した図である。 図12に示したパターンと、図15に示した行列から生成したテンソルと、から抽出したパターンを示す図である。 図3に示したデータストリームと図16に示したパターンから導いた残差部分を示す図である。 本発明における第2の実施形態における分析装置の構成を示すブロック図である。 本発明における付記1における分析装置の構成を示すブロック図である。
 以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、各図面は、本発明の実施形態を説明するものである。ただし、本発明は、各図面の記載に限定されるものではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を省略する場合がある。また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。
 <実施形態1>
 本発明の第1の実施形態を、図1乃至図17を参照して説明する。図1は、実施形態1における分析装置の構成を説明するための図であり、図2は、分析処理の様子を示すフローチャートである。図3乃至図17は、分析処理による各情報の一例を示す図である。
 図1のブロック図に示すように、本発明における分析装置100は、グラフ構築部101と、テンソル構築部103と、パターン抽出部105と、差分抽出部107と、収束判定部109と、ウィンドウ長決定部111と、パターン・グラフ変換部113と、を備えている。また、分析装置100は、データストリーム201を入力可能となっており、グラフ構築ルール202と、残差グラフ203と、テンソル204と、パターン205と、残差206と、発見済みパターングラフ207と、を記憶可能なよう構成されている。
 なお、本実施形態における分析装置100が備える各部101~111は、ハードウェア回路で構成されていてもよく、情報処理装置に装備されたCPU(Central Processing Unit)にプログラムが読み込まれることによって構築されてもよい。
 はじめに、上述した各部101~111の概要について説明する。なお、各部101~111の詳細については、以下の動作説明時に詳述する。
 まず、本発明における処理対象となるデータストリームは、後述するように、タイムスタンプと観測値とからなるタプルを含んで構成されている。
 上記ウィンドウ長決定部111は、まず、次のイテレーションで利用するウィンドウ長Wi+1を、初期ウィンドウ長W、ウィンドウ長Wi、ウィンドウ長倍率β、を用いて決定する。例えば、Wi+1=βW=β、のように決定する。
 上記グラフ構築部101は、入力されるデータストリーム(201)もしくはその一部(残差部分)に対して、それらをウィンドウ長Wiで分割する。そして、データストリームもしくはその一部を分割した部分シーケンス(ウィンドウ)それぞれに対して、タプル間の予め設定された関係を表すグラフを構築する。具体的には、グラフ構築ルール(202)を参照してウィンドウ毎のタプルであるグラフを作成し、作成したグラフの列GΔ(203)を出力する。
 また、グラフ構築部101は、後述するように、収束判定部109にてデータストリームに対する処理が収束しない場合には、差分抽出部107にて抽出した残差(206)(残差部分)に対して、上述同様にグラフを構築する。
 上記テンソル構築部103は、グラフ構築部101でウィンドウ毎にそれぞれ構築した複数のグラフ列を積み重ねて、テンソルZ204を構築して出力する。このとき、テンソル構築部103は、後述するように、過去にパターン・グラフ変換部113にて出力したパターンPを変換したグラフGP(207)と、グラフ構築部101にて直前に構築されたグラフ列GΔ(203)と、を積み重ねて、テンソルZを構築する。または、テンソル構築部103は、グラフGPとグラフ列GΔとから、テンソルZを行列化(Matricization,Unfolding)した当該テンソルZと等価な行列Yを構築してもよい。
 上記パターン抽出部105は、テンソル構築部103で構築したテンソルZ(または行列Y)から主要なパターンP(205)を抽出する。パターンの抽出は、例えば、テンソル因子分解(tensor factorization)などの所定のテンソルから一つ以上のパターン、もしくは代表的な特徴量を抽出するような任意の分析方法を用いることができる。例えば行列Yに対しては、主成分分析(Principal Component Analysis),特異値分解(Singular Value Decomposition)などの行列分解(Matrix Factorization),多様体学習(Manifold Learning)などによって同様に一つ以上のパターン、もしくは代表的な特徴量を抽出するような任意の分析方法を用いることができる。
 上記差分抽出部107は、入力されたデータストリームのうち、パターン抽出部105が抽出したパターンPに該当しないデータストリームの部分集合である残差Δ(206)(残差部分)を抽出する。この残差Δは、データストリームに対する処理が収束しない場合に、上述したグラフ構築部101によって、次のイテレーションによるグラフ構築の対象となる。
 上記収束判定部109は、分析装置100による分析によってこれ以上パターンが抽出できないかどうかを判定する。つまり、データストリームに対する処理が収束したか否かを判定する。これ以上パターンが抽出できない場合には分析装置100の動作を終了させる。一方で、残差Δが十分に残っており、まだパターンを抽出できると判定した場合、つまり、処理は収束していないと判定した場合には、上述したように、残差Δを用いて、次のイテレーションを実行する。
 そして、上記ウィンドウ長決定部111は、収束判定部109で処理が収束していないと判定した場合には、次のイテレーションで利用するウィンドウ長Wi+1を、初期ウィンドウ長W、ウィンドウ長Wi、ウィンドウ長倍率β、を用いて決定する。例えば、Wi+1=βW=β、のように決定する。これにより、ウィンドウ長決定部111は、過去に決定したウィンドウ長とは異なる新たなウィンドウ長を決定する。この新たなウィンドウ長を用いて、グラフ構築部101は、データストリームの残差Δ(206)に対してグラフ構築を行う。
 上記パターン・グラフ変換部113は、パターン抽出部105で抽出したパターンP(205)を1つ以上のグラフからなるグラフ列(207)に変換する。このとき、個々のグラフが独立したパターンを表す。
 [動作]
 次に、上述した構成である分析装置100の動作を、図2のフローチャート及びその他の図面を参照して説明する。
 まず、入力されたデータストリームを残差Δとし、残差Δに対してグラフ構築部101によるグラフの構築を行い、グラフ列GΔを生成する(ステップS11)。ここで、図3は、入力されたデータストリームを示している。データストリームは、タイムスタンプである「time」と、観測値である「Alert type」、「src(送信元)」、「dst(宛先)」と、からなるタプルを複数含んでいる。
 ここでは、ウィンドウ長W=6(初期ウィンドウ長)、ウィンドウ長倍率β=2とする。すると、図3のデータストリームは、属性timeの値が、[1,6]、[7,12]、[13,18]、[19,24]である部分シーケンス(ウィンドウ)に分割される。そして、各部分シーケンス内におけるタプル間の関係を表すグラフを構築する。
 ここでは、グラフ構築ルールは予め設定され記憶されており、本実施形態では、以下の二つのルールを想定する。
(1)属性timeにおいて、ti<tjであるタプル間に、tiであるタプルの宛先dstとtjであるタプルの送信元srcが同一であるときに、tiのalert typeからtjのalert typeに辺を張る。
(2)属性timeにおいて、ti<tjであるタプル間に、tiであるタプルの送信元srcとtjであるタプルの送信元srcが同一であるときにtiのalert typeからtjのalert typeに辺を張る。
 なお、上述したグラフ構築ルールは一例であって、かかるルールに限定されず、いかなるルールであってもよい。
 上述したグラフ構築ルールに合致するタプルを探索し、当該タプル間の時間的な前後関係を有向グラフによって表現すると、[1,6]、[7,12]からは、それぞれ図4(a),(b)に示す有向グラフを構築することができる。また、図4(a),(b)のグラフは、それぞれ図5(a),(b)で示した行列と等価である。この行列は、ある「alert type」から他の「alert type」に辺を1回張ることができるとき、当該セルに1を加える。値が空のセルは、辺が0を意味する。なお、図4(a),(b)のグラフの辺上に、図5(a),(b)のように辺を張ることができた回数を重みとして付与してもよい。
 また、図4(a),(b)、図5(a),(b)が、辺上、セル内に格納する値は、辺を張ることができた回数に基づいて算出した計算値でもよい。例えば、ある「alert type」から出る辺の総数で除した値(出次数で正規化した値)を付与してもよい。
 続いて、テンソル構築部103が、グラフ構築部101が出力したグラフ列GΔと、後述するようにパターン・グラフ変換部113が出力したグラフ列GPとを、積み重ねて構築したテンソルZを生成する(ステップS13)。なお、パターンPから変換したグラフ列GPが存在しない空の場合は、グラフ構築部101が構築したグラフ列GΔだけを対象として、テンソルを生成する。
 ここで、1回目のイテレーションでは、パターンPをまだ抽出していないため、グラフ列GPが存在しない。そこで、テンソル構築部103は、グラフ構築部101が生成した図5(a),(b),(c)を対象にテンソルを構築する。ここでは、ウィンドウ長で分割したウィンドウ毎のグラフ列(行列の列)を、time属性の値が小さい順に並べて積み重ねて、図6に示すようなテンソルZを生成する。
 続いて、パターン抽出部105が、テンソル構築部103が生成したテンソルZに対してテンソル分解などによるパターン抽出を行い、主要なパターンPを抽出する。パターンPを抽出すると、差分抽出部107が入力されたオリジナルのデータストリームとパターンPを比較して、パターンPに合致しないデータストリームの部分集合である残差Δを導出する(ステップS15)。
 ここで、パターン抽出部105のパターン抽出として、Parafac(CP分解)法によるテンソル因子分解を用いることができる。図7は、Parafacで得られたパターンPの一例を示している。図7中の行列は、図5(a),(b),(c)で共通もしくは複数回出現したパターンを示しており、図8の有向グラフと等価である。また、図7中の斜め方向に記載された1x4のベクトルは、ウィンドウ長で分割したどの時間に当該パターンが出現したかを示している。図7では、1番目、2番目に1の値が格納されている。これは時間[P1,6]、[7,12]に図7中の行列で示されたパターンが存在することを示している。
 また、テンソル分解によって出力されたパターンPを、主要なパターンに限定する方法として、得られるパターンPがスパースに(0が多く)なるようにする方法であるスパース推定を導入したスパーステンソル分解を用いることができる。また、主要なパターンを構成する潜在因子(Latent Component)の数kは、MDL理論やBICなどの情報量基準に基づいて決定してもよい。図7のパターンPは、スパーステンソル分解によって得られたパターンの一例である。なお、実際のスパーステンソル分解で得られる値を正確に説明することよりも、説明としての分かりやすさを優先して、単純な値で例を示している。
 ここで、図8に示した有向グラフは、パターン・グラフ変換部113が、パターンPから生成したグラフ列GPである。なお、パターンPが空(サイズ0の列)の場合は、パターン・グラフ変換部113を用いたパターンPからグラフ列GPへの変換は行わない。
 続いて、パターンPを用いて、差分抽出部107がデータストリームからパターンPに該当しないデータストリームの部分集合である残差Δを得る。ここでは、図3に示すデータストリームと図7に示すパターンPから、図9に示す残差Δを得る。
 そして、収束判定部109が、パターンPが前回のパターン抽出から変化していない、残差Δが空である、などの条件によって、データストリームに対する処理が収束したか否か、つまり、分析装置100の動作を停止するか否かを判定する(ステップS17)。
 動作を停止しない場合には、ウィンドウ長決定部111が次のイテレーションで利用するウィンドウ長Wi+1を導出する(ステップS19)。ここでは、図9に示す残差Δに十分な量のタプルが残っているため、動作を停止しない。このとき、次のイテレーションにおける新たなウィンドウ長Wは、W=6、β=2より、「12」となる。そして、この新たなウィンドウ長Wを用いて、上述同様に、グラフ構築部101、テンソル構築部103、パターン抽出部105、差分抽出部107、収束判定部109などによる処理を繰り返す。
 2回目のイテレーションでは、図9に示す残差Δから、図10に示すグラフが時間[1,12]から生成され、図11(a)の行列が生成される。同様に、時間[13,24]から図11(b)の行列が生成される。
 さらにイテレーション1のパターンPからΔPとして図7に示すテンソルに変換したもの、もしくはグラフ列を生成する。図7をテンソルに変換したものは、図7の行列とベクトルの外積(outer product)を取ったものと等価である。よって、2回目のイテレーションでは、テンソル構築部103は、図7の行列とベクトルの外積を取ったものと、図11(a),(b)の行列を積み重ねて生成したテンソルZを生成する。
 さらに、2回目のイテレーションでは、パターン抽出部105は、テンソルZから図12に示すパターンPを抽出する。図12に示すパターンPは、二つの項の和でテンソルZ中の主要なパターンを表している。第一項は、イテレーション1で抽出したパターンと同様のパターンが抽出され、1x6のベクトルが付されている。この1x6のベクトルは、イテレーション1でW=6で分割された時間[1,6]、[7,12]、[13,18]、[19,24]、さらにイテレーション1の後の残差Δに対してイテレーション2にてW=12のウィンドウによって分割された時間[1,12]、[13,24]に、当該パターンがどの程度出現するかを示している。同様に第二項は、イテレーション2で新たに抽出されたパターンであり、[1,12]、[13,24]にそれぞれ出現するE→Eなるパターンを示している。
 その後、2回目のイテレーションでは、差分抽出部107によって図13に示す残差Δを得る。すると、収束判定部109は、図13に示す残差Δに十分なタプル数があるため、処理を継続する。
 続いて、3回目のイテレーションでは、さらにウィンドウ長決定部111にて新たなウィンドウ長W=24を決定し、かかる新たなウィンドウ長を用いて、グラフ構築部101によって、図13の残差Δから図14に示すグラフを得て、図15に示す行列を得る。続いて、テンソル構築部103が図12に示す過去のパターンPから得たテンソルと、図15に示す行列を積み重ねたテンソルZを生成し、パターン抽出部105が図16に示すパターンPを抽出する。
 そして、差分抽出部107が図17に示す残差Δを抽出する。収束判定部109は、図17にパターン抽出に十分なタプル数がないため、動作を停止する。
 以上のように、本発明によれば、データストリームから、発現時刻、間隔といった時間的歪みが生じている複数のイベントを、同一のパターンとして抽出できる。このとき、イベント毎にウィンドウ長を設定せずに、時間的歪みのある複数のイベントを同一のパターンとして抽出できる。
 <実施形態2>
 以上の説明した分析装置100は、次のように構成される。例えば、分析装置100の各構成部は、ハードウェア回路で構成されても良い。また、分析装置100は、各構成部が、ネットワークを介して接続した複数の装置を用いて、構成されても良い。また、分析装置100は、複数の構成部を1つのハードウェアで構成しても良い。
 また、分析装置300は、CPU(Central Processing Unit)と、ROM(Read Only Memory)と、RAM(Random Access Memory)とを含むコンピュータ装置として実現してもよい。分析装置300は、上記構成に加え、さらに、入出力接続回路(IOC:Input / Output Circuit)と、ネットワークインターフェース回路(NIC:Network Interface Circuit)とを含むコンピュータ装置として実現しても良い。
 図18は、実施形態2における分析装置300の構成の一例を示すブロック図である。分析装置300は、CPU310と、ROM320と、RAM330と、内部記憶装置340と、IOC350と、入力機器360と、表示機器370と、NIC380とを含み、コンピュータ装置を構成している。
 CPU310は、ROM320からプログラムを読み込む。そして、CPU310は、読み込んだプログラムに基づいて、RAM330と、内部記憶装置340と、IOC350と、NIC380とを制御する。そして、CPU310を含むコンピュータは、これらの構成を制御し、図1に示す、グラフ構築部101と、テンソル構築部103と、パターン抽出部105と、差分抽出部107と、収束判定部109と、ウィンドウ長決定部111と、パターン・グラフ変換部113としての各機能を実現する。
 CPU310は、各機能を実現する際に、RAM330又は内部記憶装置340を、プログラムの一時記憶として使用しても良い。
 また、CPU310は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体(図示せず)が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでも良い。あるいは、CPU310は、NIC380を介して、図示しない外部の装置からプログラムを受け取り、RAM330に保存して、保存したプログラムを基に動作しても良い。
 ROM320は、CPU310が実行するプログラム及び固定的なデータを記憶する。ROM320は、例えば、P-ROM(Programmable-ROM)又はフラッシュROMである。RAM330は、CPU310が実行するプログラム及びデータを一時的に記憶する。RAM330は、例えば、D-RAM(Dynamic-RAM)である。内部記憶装置340は、分析装置300が長期的に保存するデータ及びプログラムを記憶する。また、内部記憶装置340は、CPU310の一時記憶装置として動作しても良い。内部記憶装置340は、例えば、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)又はディスクアレイ装置である。
 ここで、ROM320と内部記憶装置340は、不揮発性(non-transitory)の記憶媒体である。一方、RAM330は、揮発性(transitory)の記憶媒体である。そして、CPU310は、ROM320、内部記憶装置340、又は、RAM330に記憶されているプログラムを基に動作可能である。つまり、CPU310は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
 IOC350は、CPU310と、入力機器360及び表示機器370とのデータを仲介する。IOC350は、例えば、IOインターフェースカード又はUSB(Universal Serial Bus)カードである。入力機器360は、分析装置300の操作者からの入力指示を受け取る機器である。入力機器360は、例えば、キーボード、マウス又はタッチパネルである。表示機器370は、分析装置300の操作者に情報を表示する機器である。表示機器370は、例えば、液晶ディスプレイである。
 NIC380は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。NIC380は、例えば、LAN(Local Area Network)カードである。
 このように構成された分析装置300は、CPU610がプログラムに基づいて実施形態1で説明した分析装置100と同様の機能を実現できるため、当該分析装置100と同様の効果を得ることができる。
 <付記>
 上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における分析装置(図19参照)、プログラム、分析方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
 タイムスタンプと観測値とからなるタプルを含むデータストリームのウィンドウ長を決定するウィンドウ長決定部410と、
 前記データストリームから、決定された前記ウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築するグラフ構築部420と、
 複数の前記ウィンドウ毎にそれぞれ構築された複数の前記グラフからテンソルまたは前記テンソルと等価な行列を構築するテンソル構築部430と、
 前記テンソルまたは前記テンソルと等価な行列からパターンを抽出するパターン抽出部440と、
 前記データストリームから、抽出した前記パターンに合致しない残差部分を抽出する差分抽出部450と、
備え、
 前記ウィンドウ長決定部410は、過去に決定した前記ウィンドウ長とは異なる新たなウィンドウ長を決定し、
 前記グラフ構築部420は、前記データストリームから抽出された前記残差部分から、決定された前記新たなウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築する、
分析装置400。
(付記2)
 付記1に記載の分析装置であって、
 前記データストリームから抽出した前記残差部分に基づいて、前記データストリームに対する処理が収束したか否かを判定する収束判定部をさらに備え、
 前記データストリームに対する処理が収束していないと判定された場合に、前記ウィンドウ長決定部、前記グラフ構築部、前記テンソル構築部、前記パターン抽出部及び前記差分抽出部がさらに作動する、
分析装置。
(付記3)
 付記1又は2に記載の分析装置であって、
 前記テンソル構築部は、過去に抽出された前記パターンと、直前に構築された前記グラフとから、前記テンソルまたは前記テンソルと等価な行列を構築する、
分析装置。
(付記4)
 付記1乃至3のいずれかに記載の分析装置であって、
 抽出した前記パターンを前記グラフに変換するパターン・グラフ変換部をさらに備えた、
分析装置。
(付記5)
 付記1乃至4のいずれかに記載の分析装置であって、
 前記パターン抽出部は、スパース推定を導入したテンソル分解を用いて、スパースなベクトル、行列及びテンソルとしてパターンを抽出する、
分析装置。
(付記6)
 付記1乃至5のいずれかに記載の分析装置であって、
 前記グラフ構築部は、前記タプル間の時間的な前後関係を有向グラフによって表現した前記グラフを構築する、
分析装置。
(付記7)
 情報処理装置に、
 タイムスタンプと観測値とからなるタプルを含むデータストリームのウィンドウ長を決定するウィンドウ長決定部と、
 前記データストリームから、決定された前記ウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築するグラフ構築部と、
 複数の前記ウィンドウ毎にそれぞれ構築された複数の前記グラフからテンソルまたは前記テンソルと等価な行列を構築するテンソル構築部と、
 前記テンソルまたは前記テンソルと等価な行列からパターンを抽出するパターン抽出部と、
 前記データストリームから、抽出した前記パターンに合致しない残差部分を抽出する差分抽出部と、
を実現させると共に、
 前記ウィンドウ長決定部は、過去に決定した前記ウィンドウ長とは異なる新たなウィンドウ長を決定し、
 前記グラフ構築部は、前記データストリームから抽出された前記残差部分から、決定された前記新たなウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築する、
ことを実現させるためのプログラム。
(付記8)
 付記7に記載のプログラムであって、
 前記情報処理装置に、
 前記データストリームから抽出した前記残差部分に基づいて、前記データストリームに対する処理が収束したか否かを判定する収束判定部をさらに実現させ、
 前記データストリームに対する処理が収束していないと判定された場合に、前記ウィンドウ長決定部、前記グラフ構築部、前記テンソル構築部、前記パターン抽出部及び前記差分抽出部をさらに作動させる、
プログラム。
(付記9)
 タイムスタンプと観測値とからなるタプルを含むデータストリームのウィンドウ長を決定し、
 前記データストリームから、決定された前記ウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築し、
 複数の前記ウィンドウ毎にそれぞれ構築された複数の前記グラフからテンソルまたは前記テンソルと等価な行列を構築し、
 前記テンソルまたは前記テンソルと等価な行列からパターンを抽出し、
 前記データストリームから、抽出した前記パターンに合致しない残差部分を抽出し、
 さらに、過去に決定した前記ウィンドウ長とは異なる新たなウィンドウ長を決定し、前記データストリームから抽出された前記残差部分から、決定された前記新たなウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築して、前記テンソルの構築、前記パターンの抽出、前記残差部分の抽出を繰り返す、
分析方法。
(付記10)
 付記9に記載の分析方法であって、
 前記データストリームから抽出した前記残差部分に基づいて、前記データストリームに対する処理が収束したか否かを判定し、前記データストリームに対する処理が収束していないと判定された場合に、前記新たなウィンドウ長の決定、前記グラフの構築、前記テンソルの構築、前記パターンの抽出、前記残差部分の抽出を繰り返す、
分析方法。
 なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
 以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
100 分析装置
101 グラフ構築部
103 テンソル構築部
105 パターン抽出部
107 差分抽出部
109 収束判定部
111 ウィンドウ長決定部
113 パターン・グラフ変換部
300 分析装置
310  CPU
320  ROM
330  RAM
340  内部記憶装置
350  IOC
360  入力機器
370  表示機器
380  NIC
400 分析装置
410 ウィンドウ長決定部
420 グラフ構築部
430 テンソル構築部
440 パターン抽出部
450 差分抽出部
 

Claims (10)

  1.  タイムスタンプと観測値とからなるタプルを含むデータストリームのウィンドウ長を決定するウィンドウ長決定部と、
     前記データストリームから、決定された前記ウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築するグラフ構築部と、
     複数の前記ウィンドウ毎にそれぞれ構築された複数の前記グラフからテンソルまたは前記テンソルと等価な行列を構築するテンソル構築部と、
     前記テンソルまたは前記テンソルと等価な行列からパターンを抽出するパターン抽出部と、
     前記データストリームから、抽出した前記パターンに合致しない残差部分を抽出する差分抽出部と、
    備え、
     前記ウィンドウ長決定部は、過去に決定した前記ウィンドウ長とは異なる新たなウィンドウ長を決定し、
     前記グラフ構築部は、前記データストリームから抽出された前記残差部分から、決定された前記新たなウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築する、
    分析装置。
  2.  請求項1に記載の分析装置であって、
     前記データストリームから抽出した前記残差部分に基づいて、前記データストリームに対する処理が収束したか否かを判定する収束判定部をさらに備え、
     前記データストリームに対する処理が収束していないと判定された場合に、前記ウィンドウ長決定部、前記グラフ構築部、前記テンソル構築部、前記パターン抽出部及び前記差分抽出部がさらに作動する、
    分析装置。
  3.  請求項1又は2に記載の分析装置であって、
     前記テンソル構築部は、過去に抽出された前記パターンと、直前に構築された前記グラフとから、前記テンソルまたは前記テンソルと等価な行列を構築する、
    分析装置。
  4.  請求項1乃至3のいずれかに記載の分析装置であって、
     抽出した前記パターンを前記グラフに変換するパターン・グラフ変換部をさらに備えた、
    分析装置。
  5.  請求項1乃至4のいずれかに記載の分析装置であって、
     前記パターン抽出部は、スパース推定を導入したテンソル分解を用いて、スパースなベクトル、行列及びテンソルとしてパターンを抽出する、
    分析装置。
  6.  請求項1乃至5のいずれかに記載の分析装置であって、
     前記グラフ構築部は、前記タプル間の時間的な前後関係を有向グラフによって表現した前記グラフを構築する、
    分析装置。
  7.  情報処理装置に、
     タイムスタンプと観測値とからなるタプルを含むデータストリームのウィンドウ長を決定するウィンドウ長決定部と、
     前記データストリームから、決定された前記ウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築するグラフ構築部と、
     複数の前記ウィンドウ毎にそれぞれ構築された複数の前記グラフからテンソルまたは前記テンソルと等価な行列を構築するテンソル構築部と、
     前記テンソルまたは前記テンソルと等価な行列からパターンを抽出するパターン抽出部と、
     前記データストリームから、抽出した前記パターンに合致しない残差部分を抽出する差分抽出部と、
    を実現させると共に、
     前記ウィンドウ長決定部は、過去に決定した前記ウィンドウ長とは異なる新たなウィンドウ長を決定し、
     前記グラフ構築部は、前記データストリームから抽出された前記残差部分から、決定された前記新たなウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築する、
    ことを実現させるためのプログラム。
  8.  請求項7に記載のプログラムであって、
     前記情報処理装置に、
     前記データストリームから抽出した前記残差部分に基づいて、前記データストリームに対する処理が収束したか否かを判定する収束判定部をさらに実現させ、
     前記データストリームに対する処理が収束していないと判定された場合に、前記ウィンドウ長決定部、前記グラフ構築部、前記テンソル構築部、前記パターン抽出部及び前記差分抽出部をさらに作動させる、
    プログラム。
  9.  タイムスタンプと観測値とからなるタプルを含むデータストリームのウィンドウ長を決定し、
     前記データストリームから、決定された前記ウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築し、
     複数の前記ウィンドウ毎にそれぞれ構築された複数の前記グラフからテンソルまたは前記テンソルと等価な行列を構築し、
     前記テンソルまたは前記テンソルと等価な行列からパターンを抽出し、
     前記データストリームから、抽出した前記パターンに合致しない残差部分を抽出し、
     さらに、過去に決定した前記ウィンドウ長とは異なる新たなウィンドウ長を決定し、前記データストリームから抽出された前記残差部分から、決定された前記新たなウィンドウ長で分割されたウィンドウ内における前記タプル間の予め設定された関係を表すグラフを構築して、前記テンソルの構築、前記パターンの抽出、前記残差部分の抽出を繰り返す、
    分析方法。
  10.  請求項9に記載の分析方法であって、
     前記データストリームから抽出した前記残差部分に基づいて、前記データストリームに対する処理が収束したか否かを判定し、前記データストリームに対する処理が収束していないと判定された場合に、前記新たなウィンドウ長の決定、前記グラフの構築、前記テンソルの構築、前記パターンの抽出、前記残差部分の抽出を繰り返す、
    分析方法。
     
PCT/JP2017/004676 2017-02-09 2017-02-09 分析装置 WO2018146761A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/481,520 US10970288B2 (en) 2017-02-09 2017-02-09 Analysis device
JP2018566698A JP6741203B2 (ja) 2017-02-09 2017-02-09 分析装置
PCT/JP2017/004676 WO2018146761A1 (ja) 2017-02-09 2017-02-09 分析装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/004676 WO2018146761A1 (ja) 2017-02-09 2017-02-09 分析装置

Publications (1)

Publication Number Publication Date
WO2018146761A1 true WO2018146761A1 (ja) 2018-08-16

Family

ID=63107998

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/004676 WO2018146761A1 (ja) 2017-02-09 2017-02-09 分析装置

Country Status (3)

Country Link
US (1) US10970288B2 (ja)
JP (1) JP6741203B2 (ja)
WO (1) WO2018146761A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111160527A (zh) * 2019-12-27 2020-05-15 歌尔股份有限公司 一种基于mask rcnn网络模型的目标识别方法、装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009070065A (ja) * 2007-09-12 2009-04-02 Nippon Telegr & Teleph Corp <Ntt> トレンド検出方法、トレンド検出プログラムおよびトレンド検出装置
WO2013002107A1 (ja) * 2011-06-29 2013-01-03 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
JP2013008329A (ja) * 2011-06-27 2013-01-10 Fujitsu Ltd 照合装置および照合プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9299082B2 (en) * 2011-12-16 2016-03-29 Microsoft Technology Licensing, Llc Fast streams and substreams
US9563663B2 (en) * 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US9418113B2 (en) * 2013-05-30 2016-08-16 Oracle International Corporation Value based windows on relations in continuous data streams
US10120907B2 (en) * 2014-09-24 2018-11-06 Oracle International Corporation Scaling event processing using distributed flows and map-reduce operations
WO2017018901A1 (en) * 2015-07-24 2017-02-02 Oracle International Corporation Visually exploring and analyzing event streams
US10417235B2 (en) * 2017-02-03 2019-09-17 International Business Machines Corporation Window management in a stream computing environment
US10599654B2 (en) * 2017-06-12 2020-03-24 Salesforce.Com, Inc. Method and system for determining unique events from a stream of events
WO2019023542A1 (en) * 2017-07-27 2019-01-31 Robert Bosch Gmbh METHODS AND SYSTEMS FOR OPTIMIZED VISUAL RECAPITULATION FOR TEMPORAL EVENT DATA SEQUENCES

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009070065A (ja) * 2007-09-12 2009-04-02 Nippon Telegr & Teleph Corp <Ntt> トレンド検出方法、トレンド検出プログラムおよびトレンド検出装置
JP2013008329A (ja) * 2011-06-27 2013-01-10 Fujitsu Ltd 照合装置および照合プログラム
WO2013002107A1 (ja) * 2011-06-29 2013-01-03 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム

Also Published As

Publication number Publication date
US20190384769A1 (en) 2019-12-19
JPWO2018146761A1 (ja) 2019-11-14
US10970288B2 (en) 2021-04-06
JP6741203B2 (ja) 2020-08-19

Similar Documents

Publication Publication Date Title
JP7405745B2 (ja) ブロックチェーンをデジタルツインのセットにリンクするための、コンピュータにより実施されるシステム及び方法
US11386507B2 (en) Tensor-based predictions from analysis of time-varying graphs
CN114169604A (zh) 性能指标的异常检测方法、异常检测装置、电子设备和存储介质
US20150379112A1 (en) Creating an on-line job function ontology
Alawneh et al. Segmenting large traces of inter-process communication with a focus on high performance computing systems
Vernekar et al. MapReduce based log file analysis for system threats and problem identification
Makanju et al. Fast entropy based alert detection in super computer logs
JP7274162B2 (ja) 異常操作検知装置、異常操作検知方法、およびプログラム
WO2018146761A1 (ja) 分析装置
US20220179764A1 (en) Multi-source data correlation extraction for anomaly detection
US20220229721A1 (en) Selection of outlier-detection programs specific to dataset meta-features
Rastogi et al. Design and development of generic web based framework for log analysis
WO2021011065A1 (en) Time-series data condensation and graphical signature analysis
Ali et al. Mathematical analysis of nonlocal implicit impulsive problem under Caputo fractional boundary conditions
EP3945386A1 (en) System and method for determining manufacturing plant topology and fault propagation information
Ahmed An unsupervised approach of knowledge discovery from big data in social network
JP6806249B2 (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
WO2018142694A1 (ja) 特徴量生成装置、特徴量生成方法及びプログラム
JP7251649B2 (ja) グラフ関連付けシステムおよびグラフ関連付け方法
CN110472292B (zh) 工业设备数据仿真配置系统及方法
Khan et al. Context-based irregular activity detection in event logs for forensic investigations: An itemset mining approach
US10997375B2 (en) System for selective data capture and translation
US10459895B2 (en) Database storage monitoring equipment
Hajer et al. A blockchain integration to support failures prediction from log files in multi-agent systems technology
WO2022201307A1 (ja) 情報分析装置、情報分析方法、及びコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17895531

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018566698

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17895531

Country of ref document: EP

Kind code of ref document: A1