WO2022117976A1 - Procédé d'entraînement d'un réseau de neurones artificiels pour identifier un usage numérique, et système associé - Google Patents
Procédé d'entraînement d'un réseau de neurones artificiels pour identifier un usage numérique, et système associé Download PDFInfo
- Publication number
- WO2022117976A1 WO2022117976A1 PCT/FR2021/052214 FR2021052214W WO2022117976A1 WO 2022117976 A1 WO2022117976 A1 WO 2022117976A1 FR 2021052214 W FR2021052214 W FR 2021052214W WO 2022117976 A1 WO2022117976 A1 WO 2022117976A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- digital
- network
- training
- packet
- neural network
- Prior art date
Links
- 238000012549 training Methods 0.000 title claims abstract description 100
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 76
- 101100048436 Caenorhabditis elegans unc-1 gene Proteins 0.000 claims description 21
- 230000003993 interaction Effects 0.000 claims description 17
- 101150074432 EDE1 gene Proteins 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 14
- 230000006399 behavior Effects 0.000 claims description 12
- 230000004048 modification Effects 0.000 claims description 12
- 238000012986 modification Methods 0.000 claims description 12
- 238000001914 filtration Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 9
- 230000004913 activation Effects 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 239000000969 carrier Substances 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/12—Arrangements for remote connection or disconnection of substations or of equipment thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
Definitions
- the present invention relates to the general field of the automatic identification of a digital use, the digital use comprising a digital behavior and a digital environment.
- the invention relates more specifically to a method for training an artificial neural network to identify digital usage.
- the invention applies in particular to the identification of digital uses at the level of so-called smart devices.
- An intelligent device generates and receives a large quantity of network traces, each network trace comprising a plurality of network packets.
- the network traces include a great deal of information describing the behaviors and requirements of the user of the smart device, and the analysis of these network traces is thus useful for, for example, providing services adapted to the users.
- the present invention relates to a method for training an artificial neural network so that said artificial neural network identifies a digital usage among a set of digital usages, each digital usage comprising a digital behavior and a digital environment, and being associated with a plurality of property values describing the digital usage, each property being able to take at least two different values, said method comprising the following steps:
- the artificial neural network outputting a prediction score for each value of each property of the plurality of properties describing each digital usage
- the method makes it possible to train the same neural network to identify several properties describing the digital usage, which improves the reliability and the precision of the identification of the digital usage.
- the method further enables the reduction of the trained neural network, which thus consumes fewer computing resources.
- the properties defining the digital usage include at least one property from among the following properties:
- the method makes it possible to train the same neural network to identify properties describing the digital behavior and properties describing the digital environment, which improves the reliability as well as the precision of the identification of the digital use.
- the set of training data comprises, for each packet of the plurality of network packets, at least one training data from among the following training data:
- the method makes it possible to train the same neural network to identify a digital use from training data that does not depend on the location or the time of use, which improves the reliability of the identification of digital use.
- the process does not use personal data, which protects the privacy of users. This is because the training data listed in the training data set does not have not personal, unlike other data in network packets, such as IP address.
- the steps of obtaining a set of training data, of applying the set of training data and of modifying at least one weight are repeated for at least at least a second set of training data associated with a second set of property target values describing a second digital usage.
- the training uses multitasking learning.
- the training uses a gradient backpropagation method.
- obtaining said first set of training data comprises the following steps:
- the processing step comprising:
- the subset of network packets comprises a maximum of one hundred network packets, typically the first hundred network packets received and/or sent.
- the method further comprises a step of filtering at least one network packet which is not associated with an operation implemented by a user at the level of an application.
- the invention further relates to a system for training an artificial neural network so that said artificial neural network identifies a digital usage among a set of digital usages, each digital usage comprising a digital behavior and an environment digital, and being associated with a plurality of property values describing the digital usage, each property being able to take at least two different values, said system comprising:
- an obtaining module configured to obtain a first set of training data from a plurality of network packets, said first set of training data being associated with a first set of property target values describing a first usage digital target,
- an application module configured to apply the first set of training data to the input of the artificial neural network, the artificial neural network outputting a prediction score for each value of each property of the plurality of properties describing each digital usage
- a modification module configured to modify at least one weight of the artificial neural network as a function of the first set of target values of properties and of the prediction scores obtained.
- the invention further relates to an artificial neural network trained by the training method as described above.
- the device is a network gateway.
- the invention relates to a device comprising an artificial neural network as described above.
- the invention relates to a method for using the artificial neural network as described above, to identify a digital usage from among a set of digital usages, said method of use comprising the following steps:
- the method of use is implemented by a home gateway, said plurality of network packets transiting over a communications network to which said home gateway is connected.
- the method of use comprises a step of using the identified digital use, comprising at least one use among the following uses:
- the different steps of the training method according to the invention are determined by computer program instructions.
- the different steps of the method of use according to the invention are determined by computer program instructions.
- the invention also relates to a first computer program, on a first information medium, this first program comprising instructions adapted to the implementation of the steps of a training method according to the invention.
- the invention further relates to a second computer program, on a second information medium, this second program comprising instructions adapted to the implementation of the steps of a method of use according to the invention.
- Each of these first and second programs can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form. , or in any other desirable form.
- the invention also relates to a first information medium readable by a computer, and comprising instructions of the first computer program as mentioned above.
- the invention further relates to a second information medium readable by a computer, and comprising instructions of the second computer program as mentioned above.
- the first and second information carriers can be any entity or device capable of storing the program.
- each of these media can comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or even a magnetic recording means, for example a hard disk.
- each of these information carriers can be a transmissible medium such as an electrical or optical signal, which can be conveyed via an electrical or optical cable, by radio or by other means.
- a transmissible medium such as an electrical or optical signal
- Each of the programs according to the invention can in particular be downloaded from an Internet-type network.
- each information medium can be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
- FIG. 1 Figure 1 schematically shows a drive system according to an exemplary embodiment of the invention
- Figure 2 schematically shows an example of the architecture of the drive system of Figure 1;
- FIG. 3 represents, in the form of a flowchart, the main steps of a training method according to an exemplary embodiment of the invention
- FIG. 4A schematically represents an example of a network trace that can be obtained during the implementation of the method of FIG. 3;
- FIG. 4B schematically represents another view of the network trace of FIG. 4A;
- FIG. 5 schematically represents an example of a neural network structure that can be defined when implementing the method of FIG. 3;
- FIG. 6 represents, in the form of a flowchart, the main steps of a method of use according to an exemplary embodiment of the invention.
- Figure 7 schematically represents an example of a first target digital usage that can be used when implementing the method of Figure 3.
- the present invention relates in particular to a method for training an artificial neural network so that said artificial neural network identifies a digital usage among a set of digital usages.
- Each digital usage comprises a digital behavior and a digital environment, and is associated with a plurality of technical properties whose values describe the digital usage, each property being able to take at least two different values.
- the value of at least one property of the plurality of properties makes it possible to describe or qualify the digital behavior of the digital use
- the value of at least one other property of the plurality of properties makes it possible to describe or qualify the digital environment of digital use.
- the property or properties describing the digital behavior used are typically a category of application used, an application used, an operation implemented at the level of the application and/or a user interaction state.
- application software installed locally on the device used, or independent (of the “standalone application” type, in Anglo-Saxon terminology), or even a web application (or website) to which one accessed through a browser.
- the interaction state indicates whether the user interacts with the application used, i.e. whether he implements an operation at the application level.
- the interaction state thus takes a first value (typically "1") when the user implements an operation at the level of the application used, or takes a second value (typically "0") when the user does not does not implement an operation (the application being open without the user being active), or when no application is used.
- the property(ies) describing the digital environment used are typically a device used (for example a fixed or mobile terminal such as a personal computer, a tablet, a television or a smartphone), a operating system used (for example Windows 10, Ubuntu, Android, Mac or iOS), a browser used (for example Chrome, Firefox, Edge, Safari or Opera), and/or at least an Internet connection speed (for example a speed of upstream connection and/or a downstream connection speed.
- a device used for example a fixed or mobile terminal such as a personal computer, a tablet, a television or a smartphone
- a operating system used for example Windows 10, Ubuntu, Android, Mac or iOS
- a browser used for example Chrome, Firefox, Edge, Safari or Opera
- at least an Internet connection speed for example a speed of upstream connection and/or a downstream connection speed.
- uplink connection rate and “downlink connection rate” properties can for example each take four values depending on the measured rate, typically a first value for a measured rate greater than 1 Mbps (Megabit per second), a second value for a bit rate between 1 and 10 Mbps, a third value for a bit rate between 10 and 100 Mbps, and a fourth value for a bit rate greater than 1 Gbps (Gigabit per second).
- Each digital usage of the set of digital usages is thus typically associated with at least two properties among the following properties (typically all the following properties): the category of application used, the application used, the operation implementation at the application level, the user's interaction state, the device used, the operating system used, the upstream connection rate, the downstream connection rate and, when the application is a web application, the browser used.
- Each numeric usage differs from another numeric usage by the value of at least one of these properties.
- Table 1 below lists examples of values that the “application category used” property can take, and for each application category value, examples of values that the “applications used” properties can take. and “operation implemented at the application level”.
- VideoStreaming indicates the application used is an application streaming of video files
- searchEngine indicates the application used is a search engine
- the "Social" value indicates that the application used is a social network
- the "Messaging" value indicates that the application used is a call and/or message sending application
- the "AudioStreaming" value indicates that the application used is an application for streaming audio files
- the "Marketplace" value indicates that the application used is an e-commerce application.
- the "BrowseRandomCIick" value indicates that the user clicks on an internal link, i.e. a hypertext link located on an application (for example a web page) and redirecting to another page or resource, for example a image or document, on the same website,
- an internal link i.e. a hypertext link located on an application (for example a web page) and redirecting to another page or resource, for example a image or document, on the same website
- the "PlayGame” value indicates that the user is playing a game for 30 seconds
- the "LikeCommentShare” value indicates that the user likes, comments or shares a video element, a sound element or a message, unless the sharing redirects to another application
- - the "Subscribellnsubscribe” value indicates that the user subscribes to or unsubscribes from a channel
- the "PublishContent" value indicates that the user uploads a video or a file to a server for 15 seconds
- the "DownloadContent" value indicates that the user is downloading a video or a file for 15 seconds
- the "ImageSearch" value indicates that the user is looking for the result of a given word provided by an image search engine
- the “ImageBrowse” value indicates that the user clicks on a random link provided by an image search engine results page
- the "MapSearch" value indicates that the user is looking for the result of a word on the search bar of an online map of a search engine
- the “MapBrowse” value indicates that the user zooms in, zooms out, clicks on an element of the map, or modifies the display on an online map of a search engine (“switches to streetview”),
- the "Messaging" value indicates that the user sends or receives a message or an email
- the “AddFavorite” value indicates that the user adds an object to a preference list (“wishlist”, in Anglo-Saxon terminology),
- VideoCall indicates that the user makes a video call for 15 seconds.
- the artificial neural network identifies a digital usage by associating each value of each property associated with the digital usages with a prediction score.
- Figure 1 schematically shows a drive system
- system training device 100 being capable of implementing a method for training an artificial neural network according to an exemplary embodiment of the invention, typically the method described below with reference to FIG. 3.
- the training system 100 comprises a first obtaining module 110, a first application module 120, and a modification module 130.
- the first obtaining module 110 is configured to obtain a set of training data from a plurality of network packets, the set of training data being associated with a set of property target values describing target digital usage.
- the first application module 120 is configured to apply the training data set to the input of the artificial neural network, the artificial neural network outputting a prediction score for each value of each property of the plurality of properties describing each digital usage.
- the modification module 130 is configured to modify at least one weight of the artificial neural network according to the set of target values of properties and the prediction scores obtained by the first application module 120.
- the drive system 100 comprises in particular a processor 200, a read only memory 202 (of the "ROM” type), a rewritable non-volatile memory 204 (of the "EEPROM” or “Flash NAND for example), a rewritable volatile memory 206 (of the “RAM” type), and a communication interface 208.
- the ROM 202 constitutes a recording medium in accordance with an exemplary embodiment of the invention, readable by the processor 200 and on which is recorded a first computer program P1 in accordance with an exemplary mode of realization of the invention.
- the first computer program P1 is stored in rewritable non-volatile memory 204.
- the first computer program P1 allows the drive system
- This first computer program P1 can thus define functional and software modules of the training system 100, configured to implement the steps of a training method in accordance with an exemplary embodiment of the invention.
- These functional modules rely on or control the hardware elements 200, 202, 204, 206 and 208 of the drive system 100 mentioned above. They can include in particular here the first obtaining module 110, the first application module 120 and the modification module 130 mentioned above.
- the training system 100 can be a terminal 100 (such as a network gateway) comprising the hardware elements 200, 202, 204, 206 and 208, as well as the aforementioned modules 110, 120 and 130.
- the training system can comprise several entities each having the conventional architecture of a computer, such as a terminal and one or more servers, the aforementioned modules 110, 120 and 130 then being distributed between these different entities.
- FIG 3 shows a drive method according to an exemplary embodiment of the invention. This method is implemented by a drive system in accordance with an exemplary embodiment of the invention, such as for example the drive system 100 described with reference to Figures 1 and 2.
- the first obtaining module 110 obtains a first set of training data EDE1 from a plurality of network packets, said first set of training data EDE1 being associated with a first set of target values of properties describing a first target numeric use UNC1 .
- this first set of training data EDE1 makes it possible to train the artificial neural network RN to identify the first target digital usage UNC1.
- FIG. 7 illustrates an example of a first set of target property values describing the first target digital usage UNC1 , this first set comprising the following values:
- step S310 includes a step S312 of obtaining a network trace TR comprising a plurality of network packets.
- the network trace TR is typically obtained by using a capture software tool making it possible to capture the network packets exchanged by the terminal on which this software tool is executed, for example the TShark or tcpdump software tool.
- Each network packet obtained comprises a plurality of network data, such as for example a packet number, time data for sending or receiving the packet (absolute or relative, with respect to a reference packet such as the first captured packet), a packet source IP address (for "Internet Protocol", in English terminology), a packet destination IP address, a packet size, a protocol name in the packet, etc.
- network data such as for example a packet number, time data for sending or receiving the packet (absolute or relative, with respect to a reference packet such as the first captured packet), a packet source IP address (for "Internet Protocol", in English terminology), a packet destination IP address, a packet size, a protocol name in the packet, etc.
- the application used associated with the first target digital usage is opened on the terminal so as to be executed on the terminal, then the capture of the network packets is launched with the software tool.
- the terminal is the device used associated with the first target digital usage, this terminal executing the operating system used and, when the application used is a web application, the browser used associated with the first target digital usage UNC1.
- YOU is opened in the Firefox browser of a personal computer with Windows 10 operating system.
- this interaction state thus being typically equal at 1
- the operation associated with the first target digital usage UNC1 is executed.
- the capture of network packets is typically stopped when all the network packets associated with the operation are sent by the terminal or received by the terminal. Capture is therefore stopped, for example, when the results of the operation are displayed by the terminal.
- the network trace TR obtained typically comprises between 100 and 100 network packets for a search operation for the result of a word in a search bar (“BrowseKeywordSearch”) , and typically comprises between 2000 and 3000 network packets for a video viewing operation (“PlayContent”).
- the network packets obtained, which constitute the network trace TR obtained, are then recorded in association with the property values associated with the first target digital usage UNC1, typically in the rewritable non-volatile memory 204.
- the network packets obtained are thus labeled (the property values being called “labels”, in English terminology).
- a software tool can be used, such as the "Solarwinds Real-Time Bandwidth Monitor” or “Okala speedtest” tool, during step S312 for obtaining the network trace TR, this software tool thus being used in parallel with the capture software tool.
- FIGS. 4A and 4B show an example of network trace TR that can be obtained at step S312 of obtaining.
- the network trace TR comprises a plurality of network packets PR1-PRm.
- Each network packet PR1-PRm comprising a plurality of data No. (packet number), Time (time data for sending or receiving the packet), Source (source IP address of the packet), Destination (destination IP address of the packet), Length (memory size of the packet), Protocol (protocol name in the packet), and Info (other packet data).
- Step S310 typically includes a step S314 of filtering at least one background noise network packet PRB.
- the filtering step is typically implemented during step S312 for obtaining a network trace TR.
- a filter software tool is launched before the capture software tool is launched, so that it is run while capturing network packets.
- the filtering software tool used is for example Linux Network Namespace.
- the filtering step is implemented after step S312 and typically includes a step for obtaining 'a new network trace associated with a digital use for which the interaction state property indicates that the user is not interacting (this interaction state thus being typically equal to 0).
- This digital usage is not associated with properties describing a digital behavior, and is typically only associated with the properties device used, operating system used, the browser used and the interaction state, the device used being the terminal on which software tool capture is executed and the same terminal making it possible to obtain the network trace TR associated with the first target digital usage UNC1 in step S310, the operating system and/or the browser being the same as the operating system and /or the browser used to obtain the network trace TR associated with the first target digital usage UNC1 (different from linux) and the interaction state being typically equal to 0.
- the capture of network packets is launched with the capture software tool, for a predetermined period, typically between 10 and 100 hours.
- a network data triple is then extracted from each packet obtained, said data triple comprising for example the source IP address of the packet, the destination IP address of the packet and the highest level protocol in the packet.
- a set of network data triplets is thus obtained.
- Each packet of the network trace TR associated with the first target digital usage UNC1 obtained in step S312 comprising one of the data triplets of the set of data triplets obtained is then deleted, this packet being a noise network packet background PRB.
- Step S310 comprises, for each network packet of a subset of network packets of the network trace TR obtained in step S312, a step S316 of obtaining a data set of the network packet DPR, these DPR data then being used to supply the inputs of the artificial RN neural network.
- the subset of network packets typically comprises a number P of first network packets received and/or sent from the network trace TR, and possibly not having been filtered in step S314, typically the first hundred network packets PR , this value of one hundred network packets allowing a good compromise between calculation time and identification accuracy.
- DPR data from the DPR network packet data set is typically selected so as to improve the reliability and accuracy of digital usage identification (e.g. because it is not location dependent). or the time of use) and/or protect the privacy of users.
- the data set of the DPR network packet includes several DPR data among the following data, typically all of the following data:
- the packet includes the size, source port, destination port and higher level protocol data, and this data can thus be directly extracted from the packet.
- the packet direction data is typically obtained from the source or destination MAC address. Indeed, when the packet is received (incoming packet), the destination MAC address is the MAC address of the device used, and when the packet is sent (outgoing packet), the source MAC address of the packet is the address MAC of the device used.
- the duration data is typically calculated as a function of the time data for sending or receiving the packet.
- a session typically a TCP or UDP session
- the previous packet of the same session is identified and the duration data of the packet is subtracted from the duration data of the previous packet.
- the packet does not belong to a session
- the previous packet of the same protocol and not belonging to a session is identified, and the duration data of the packet is subtracted from the duration data of this previous packet.
- Step S310 further comprises a step S318 of processing the network packet data sets DPR obtained in step S316, so as to obtain the first training data set EDE1.
- Step S318 comprises, for each DPR datum of each data set of the DPR network packet having a name as its value (ie taking the form of a categorical variable), a conversion of the value of said datum DPR into a vector of binary values (binary variables).
- a categorical variable typically takes the form of a character string comprising letters and/or numbers, the value of which is a name.
- the number of a port is a categorical variable, the number naming (referencing) the port but not implying a relationship of superiority with respect to a smaller port number.
- the vector comprises a number of binary values equal to the number of values that said DPR data item can take, each binary value corresponding to one of the name values, and being set to 1 for the name value actually taken by the data item, and to 0 for the others (technique known as “one-hot” encoding). This conversion is typically implemented for source port, destination port, and higher level protocol data.
- binarization method such as for example one of the methods called “simple coding”, “deviation coding”, “orthogonal polynomial coding”, “Helmert coding”, “reverse Helmert coding”, forward difference coding”, “backward difference coding” and “user-defined coding”, in Anglo-Saxon terminology, for example described on the web page https://stats.idre.ucla.edu/r/library/r-library -contrast-coding-systems-for-cateqorical-variabies/.
- step S318 comprises, for example, for each DPR data item of each data set of the DPR network packet having a numerical value defined in an interval different from the interval comprised between 0 and 1, normalization of the value so that it is set in the range between 0 and 1 . All the DPR data is then at the same scale, which makes it possible to speed up the training of the artificial RN neural network. Normalization is typically implemented for size and duration data.
- min-max normalization is for example used for normalization, the formula used then being:
- x represents the value to be normalized
- x' represents the normalized value
- max(x) represents the maximum value that the value to be normalized can take
- min(x) represents the minimum value that the value to be normalized can take.
- a step S320 the structure of the artificial RN neural network is defined.
- the structure used to define the neural network is for example the structure called “forward propagation neural network”.
- the neural network includes an input layer, an output layer and one or more hidden layers, each layer comprising a plurality of nodes, also called neurons.
- each hidden layer as well as the output layer, are each associated with a mathematical operation, also called an activation function, performed at each node of said layer.
- each node of a hidden layer and of the output layer is “connected” to each node of the previous layer by a weight, each node thus taking as input the result (or the value, for the layer input) of each node of the previous layer multiplied by the associated weight, i.e. the weight linking said node to said node of the previous layer.
- the number of layers is typically defined in step S320, as well as the activation functions and the number of nodes of the hidden and output layers.
- the artificial neural network RN defined typically comprises 4 layers of artificial neurons, an input layer CE, an output layer CS, a first hidden layer CC1 and a second hidden layer CC2, the first hidden layer CC1 being positioned between the input layer CE and the second hidden layer CC2, and the second hidden layer CC2 being positioned between the first hidden layer CC1 and the output layer CS.
- FIG. 5 schematically represents an example of such an artificial RN neural network.
- Each layer CE, CC1, CC2 and CS comprises a plurality of nodes NE, NC1, NC2, NS (neurons).
- the first hidden layer CC1, the second hidden layer CC2 and the output layer CS are each associated with a mathematical operation.
- the first mathematical operation (or first activation function) associated with the first intermediate layer CC1 is carried out at the level of each node NC1 of the first intermediate layer CC1, each mathematical operation at the level of a node NC1 being carried out in function of each value of each input node NE, each of its values being weighted by a weight P1, which may differ from one value to another.
- the set of weights P1 assigned to the values of the input nodes NE is typically initialized at random.
- the first mathematical operation carried out is typically the application of the hyperbolic tangent function to the sum of each weighted value of each input node NE, the hyperbolic tangent function being denoted tanh, and being able to be defined by the following mathematical formula , for the node NC1j of the first hidden layer CC1 , j belonging to the interval [1 , Q], where Q is the number of nodes of the first hidden layer CC1 , for example equal to 2500:
- i belongs to the interval [1, P], P being the number of nodes of the entry layer CE, P1 ⁇ thus being the weight P1 linking the node NEi of the entry layer to the node NC1j of the first hidden layer CC1.
- the second mathematical operation (or second activation function) associated with the second intermediate layer CC2 is performed at level of each node NC2 of the second intermediate layer CC2, each mathematical operation at the level of a node NC2 being carried out according to the result of each first operation carried out at the level of each node NC1 of the first intermediate layer CC1, each of its results being weighted by a weight P2, which may differ from one value to another.
- the set of weights P2 assigned to the results of the nodes NC1 of the first hidden layer CC1 is typically initialized at random.
- the second mathematical operation carried out is typically the application of the Rectified Linear Unit function to the sum of each weighted result of each node NC1 of the first intermediate layer CC1, the Rectified Linear Unit function being denoted ReLu (for Rectified Linear Unit, in Anglo-Saxon terminology), and can be defined by the following mathematical formula, for the node NC2k of the second hidden layer CC2, k belonging to the interval [1, R], where R is the number of nodes of the first hidden layer, for example equal to 750:
- Zk represents the sum of the weighted results of the nodes NC1 of the first intermediate layer CC1, with:
- the third mathematical operation (or third activation function) associated with the output layer CS is performed at the level of each node NS of the output layer CS, each mathematical operation at the level of a node NS being carried out according to the result of each second operation carried out at the level of each node NC2 of the second layer intermediary CC2, each of its results being weighted by a weight P3, which may differ from one value to another.
- the set of weights P3 assigned to the results of the nodes NC2 of the second intermediate layer CC2 is typically initialized at random.
- each third mathematical operation performed at the level of a node NS of the output layer CS corresponds to a prediction score of a value of a property from the plurality of properties describing each digital use of the set of digital uses.
- a probability rate is thus associated with each value of each property of the plurality of properties at the output of the artificial neural network, and thus typically with each value of category of application used, of application used, of operation implemented at the application level, user interaction state, device used, operating system used and, when the application is a web application, browser used.
- the third mathematical operation is typically the application of the softmax function, also called normalized exponential function, to the sum of the weighted results of the nodes NC2 of the second intermediate layer CC2, the softmax function being defined by the following formula, for the node NSi.m, where I belongs to the interval [1 , S], where S is the number of properties of the plurality of properties whose values describe the numerical uses, and m e [1 , Ti], where Ti is the number of values that property I can take, the node NSi.m thus being the node associated with the value m of property I:
- bi.m represents the sum of the weighted results of the nodes NC2 of the second intermediate layer CC2, with:
- step S330 the first set of training data EDE1 obtained in step S310 is applied, by the first application module 120, to the input CE of the artificial neural network RN.
- each training datum of the first set of training data EDE1 corresponds to one or more nodes NE of the input layer CE.
- the value of the training datum takes the form of a vector of binary values
- the number of nodes NE of the input layer CE corresponding to said training datum is equal to the number of binary values of the vector, and each node NE then takes the value of one of the binary values of the vector.
- the training data comprises a single value
- a single node NE of the input layer CE corresponds to the training data, and thus takes the value of the training data.
- the number of nodes NE of the input layer CE is thus greater than or equal to the number of training data of the first set of training data EDE1.
- the first, second and third mathematical operations are then applied using the first set of training data EDE1, respectively in the first hidden layer CC1, the second hidden layer CC2 and the output layer CS.
- the artificial RN neural network then outputs a prediction score for each value of each property of the plurality of properties describing each digital usage.
- a step S340 at least one weight P1, P2 or P3 of the artificial NR neural network is modified, by the modification module 130, as a function of the first set of property target values and of the prediction scores obtained at step S330.
- the weight(s) P1, P2, P3 are typically modified using a gradient backpropagation method. More specifically, as indicated previously, each value of each property of the plurality of properties describing the digital usage is associated with a node NS different from the output layer CS, the node delivering a prediction score for this value.
- the first set of property target values describing the first target digital usage UNC1 makes it possible to assign each node NS of the output layer CS an expected score, the score being high for each node NS associated with a target value of the first set of target values (for example 100%) and being lower for each node NS associated with a value other than a target value (for example 0%).
- Each prediction score delivered by a node NS of the output layer CS is thus compared to the expected value associated with said node NS, the difference EP between the prediction score and the expected value (called error EP associated with said node NS ) then being used to modify each weight linking said node to a node NC2 of the second hidden layer CC2.
- error EP associated with said node NS the difference EP between the prediction score and the expected value (called error EP associated with said node NS ) then being used to modify each weight linking said node to a node NC2 of the second hidden layer CC2.
- the following formula to calculate the new value of the weight P3ki,m+1 linking the node NC2k of the second hidden layer CC2 to the node NSi.m of the output layer CS is typically used:
- P3ki,m is the current value of the weight linking the node NC2k of the second hidden layer CC2 to the node NSi.m of the output layer CS
- LearningRate is a constant equal to 0.01
- EPi.m is the difference EP between the prediction score and the expected value of the node NSi.m of the output layer CS.
- the total contribution of each node NC2 of the second hidden layer CC2 to the errors associated with the nodes NS of the CS output layer is calculated.
- the total contribution CT2k of the node NC2k to the errors associated with the nodes NS of the output layer CS is typically calculated using the following formula:
- ct2ki,m is the contribution of the node NC2k of the second hidden layer CC2 to the error associated with the node NSi.m of the output layer CS, typically calculated according to the following formula:
- P3ki,m is the weight P3 linking the node NC2k of the second hidden layer CC2 to the node NSi.m of the output layer CS and EPi.m is the difference EP between the prediction score and the expected value of the NSi.m node of the CS output layer.
- P2jk is the current value of the linking the node NC1j of the first hidden layer CC1 to the node NC2k of the second hidden layer CC2
- LearningRate is a constant equal to 0.01
- CT2k is the total contribution of the node NC2k to the associated errors to the output layer NS nodes.
- the weights P1 linking the nodes NC1 of the first hidden layer CC1 to the nodes NE of the input layer CE are calculated in the same way as the weights P2 linking the nodes NC2 of the second hidden layer CC2 to the nodes NC1 of the first hidden layer CC1.
- the training thus typically uses multitask learning with an RN neural network delivering a prediction score for each value of each property and the use of the gradient backpropagation method.
- the implementation of the steps of obtaining S310, of applying S330 and of modifying S340 correspond to an iteration of the training of the artificial NR neural network. These steps of obtaining S310, applying S330 and modifying S340 are typically repeated one or more times, each iteration of these steps S330 and S340 using the neural network RN comprising the weights modified at step S340 of modifying the previous iteration.
- the NR neural network is trained with the aim that for each property, it associates a prediction score associated with the target value of the property (from the first set of target values of properties) higher than the prediction score of the other values of the same property.
- the steps of obtaining S310 a set of training data, applying S330 the set of training data and modifying S340 at least one weight can be repeated one or more times to the first digital usage target UNC1.
- Several network traces can thus be obtained for the first target digital use UNC1 and then be used to train the artificial neural network NR.
- the steps of obtaining S310 a set of training data, of applying S330 the set of training data and of modifying S340 at least one weight can be repeated once or several times for each digital usage of the set of digital usages, the first obtaining module 110 then obtaining an nth training data set EDEn which is applied by the first application module 120 to the CE input of the artificial RN neural network, and the modification module 130 modifies one or more weights of the RN neural network as a function of the nth set of target values of properties corresponding to the nth numerical use and of the prediction scores obtained at this iteration of the step S330.
- each network trace can also be used in a new iteration of the application S330 and modification S340 steps.
- these steps S310, S330 and S340 are typically repeated for each other digital use of the set of numerical uses, the weights P1, P2, P3 of the neural network RN being modified at each iteration and the weights thus modified being used at the following iteration.
- All the iterations of the obtaining steps S310 can be implemented before the implementation of the application step S330 for the first digital use.
- the obtaining step S310 may further be implemented one or more new times for each digital usage of the plurality of digital usages to obtain one or more other sets of training data for each usage.
- digital of the plurality of digital uses typically before the implementation of step S330 of application for the first digital use.
- the datasets obtained are typically used during a validation or other complete learning cycle.
- a validation can be carried out by implementing the application S330 and modification S340 steps for each digital use of the set of digital uses, from sets of training data for each digital usage obtained at iterations of step S310 and not yet used.
- This validation makes it possible to evaluate the accuracy of the identification by the NR neural network. More precisely, if, at the end of the validation, the accuracy of the identification (of the prediction) does not increase, the training is stopped. Otherwise, a new complete learning cycle and a new validation are carried out, and so on until the accuracy of the identification does not increase.
- a final test can then be carried out by implementing the application S330 and modification S340 steps for each digital use of the set of digital uses, from sets of training data for each use. digital obtained at iterations of step S310 and not yet used.
- the artificial neural network RN trained following the implementation of the method of FIG. 3 is typically stored in the memory of a device such as a network gateway (“gateway”, in English terminology), a server or a fixed or mobile terminal such as a personal computer, a tablet, a television or a smartphone.
- a network gateway (“gateway”, in English terminology)
- server or a fixed or mobile terminal such as a personal computer, a tablet, a television or a smartphone.
- the neural network RN is stored in the memory of a server of an Internet service provider infrastructure and makes it possible to analyze the digital uses of the users of this Internet service.
- the neural network RN can alternatively be stored in the memory of a network gateway in a LAN network (acronym for “Local Area Network”, in English terminology) and makes it possible to analyze the digital uses of users of this LAN network.
- a network gateway in a LAN network (acronym for “Local Area Network”, in English terminology) and makes it possible to analyze the digital uses of users of this LAN network.
- FIG. 6 represents a method of using the artificial neural network trained by the implementation of the method of FIG. 3, to identify a digital use among the set of digital uses, the method of use being according to an exemplary embodiment of the invention.
- This method is implemented by a device according to an exemplary embodiment of the invention, comprising the trained RN neural network.
- the device comprises a second obtaining module and a second application module (which may be the first obtaining module 110 and the first application module 120 when the device is the terminal 100 having implemented the method training), and typically presents the architecture conventional computer.
- the device comprises in particular a processor, a read only memory (of the “ROM” type), a rewritable non-volatile memory (of the “EEPROM” or “Flash NAND” type for example), a rewritable volatile memory (of the “RAM” type), and a communications interface.
- the read-only memory or the rewritable non-volatile memory constitutes a recording medium in accordance with an exemplary embodiment of the invention, readable by the processor and on which is recorded a second computer program in accordance with an example embodiment of the invention, allowing the device to implement the method of use according to the invention.
- This second computer program can thus define functional and software modules of the device, configured to implement the steps of a method of use in accordance with an exemplary embodiment of the invention.
- These functional modules are based on or control the hardware elements of the device mentioned above, and may include in particular here the second obtaining module and the second application module mentioned above.
- a set of EDU usage data is obtained from a plurality of network packets by the second obtaining module.
- This obtaining step S610 comprises a step S612 of obtaining a network trace TR comprising a plurality of network packets, typically by means of a capture software tool.
- the network packets obtained, which constitute the network trace TR obtained, are then recorded in the device.
- the obtained network trace TR is not recorded in association with associated property values.
- the step S610 for obtaining also typically includes a step S614 of filtering at least one background noise network packet PRB, this filtering step being implemented in the same way as the filtering step S314 of the training method of Figure 3, but relative to the network trace TR obtained in step S612. Furthermore, step S610 comprises, for each network packet of a subset of network packets of the network trace TR obtained in step S612, a step S616 for obtaining a data set of the packet network DPR, this step being implemented in the same way as the step S316 of obtaining a data set of the network packet of the training method of FIG. 3 but relative to the network trace TR obtained at the step S612 and optionally filtered in step S614.
- Step S310 further includes a step S618 of processing the network packet data sets obtained in step S616, so as to obtain the usage data set.
- This processing step S618 is typically implemented in the same way as the processing step S318 of the training method of FIG. 3.
- a step S620 the set of usage data is applied to the input of the trained artificial RN neural network, so as to identify the digital usage associated with the set of usage data.
- the trained artificial neural network then outputs a prediction score for each value of each property of the plurality of properties describing each digital usage.
- each property of the digital usage is identified by determining the value of the property having the largest associated prediction score and/or higher than the prediction score of the other values of the same property
- the digital usage is then described by each identified property value.
- the method of use can further comprise a step S630 of using the identified digital use UNI.
- Step S630 typically uses a plurality of identified digital usages UNI, each digital usage UNI being identified during a different implementation of steps S610 and S620.
- the step S630 includes for example a recommendation of a personalized service to the user of a terminal according to the digital usage(s) identified at the level of this terminal. For example, an app similar to a used application (typically of the same category) can be recommended, and/or a category application related to the category of the used application, and/or an application used by users in the same digital environment or a digital environment similar, and/or an application with a high rate of use.
- a recommendation of a personalized service to the user of a terminal according to the digital usage(s) identified at the level of this terminal For example, an app similar to a used application (typically of the same category) can be recommended, and/or a category application related to the category of the used application, and/or an application used by users in the same digital environment or a digital environment similar, and/or an application with a high rate of use.
- the device implementing the method of use is typically a network gateway (or home gateway), the plurality of network packets of the network trace TR obtained in step S610 transiting over a communications network to which said gateway, typically a local communications network, which is also connected at least one terminal.
- a network gateway or home gateway
- the plurality of network packets of the network trace TR obtained in step S610 transiting over a communications network to which said gateway, typically a local communications network, which is also connected at least one terminal.
- step S630 may comprise an optimization of the distribution of loads in the communications network as a function of the digital usage(s) UNI detected at the level of the terminal, for example a sizing of the network (i.e. bandwidth) of the terminal according to the UNI digital usage(s) detected at the terminal.
- step S630 of use may comprise recognition (or detection) of a local communications network user, and possibly the loading of a profile of the user according to the or UNI digital uses detected at the terminal.
- the use step S630 can comprise an allocation of the internal resources of the gateway according to the UNI digital usage(s) detected at the terminal level.
- the use step S630 can comprise an undesirable usage check at the terminal level, depending on the UNI digital usage(s) detected at the terminal level.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
L'invention concerne un procédé d'entraînement d'un réseau de neurones artificiels pour identifier un usage numérique parmi un ensemble d'usages numériques, chaque usage numérique étant associé à une pluralité de valeurs de propriétés décrivant l'usage numérique, ledit procédé comprenant les étapes suivantes : - obtention (S310) d'un premier ensemble de données d'entraînement à partir d'une pluralité de paquets réseau, ledit premier ensemble de données d'entraînement étant associé à un premier ensemble de valeurs cibles de propriétés décrivant un premier usage numérique cible, - application (S330) du premier ensemble de données d'entraînement à l'entrée du réseau de neurones artificiels, le réseau de neurones artificiels délivrant en sortie un score de prédiction pour chaque valeur de chaque propriété, et - modification (S340) d'au moins un poids du réseau de neurones artificiels en fonction du premier ensemble de valeurs cibles de propriétés et des scores de prédictions obtenus.
Description
Description
Titre de l'invention : Procédé d'entraînement d'un réseau de neurones artificiels pour identifier un usage numérique, et système associé
Domaine Technique
[0001] La présente invention se rapporte au domaine général de l’identification automatique d’un usage numérique, l’usage numérique comprenant un comportement numérique et un environnement numérique. L’invention concerne plus précisément un procédé d’entraînement d’un réseau de neurones artificiels pour identifier un usage numérique.
[0002] L’invention s’applique notamment à l’identification d’usages numériques au niveau de dispositifs dits intelligents.
Technique antérieure
[0003] Un dispositif intelligent génère et reçoit une grande quantité de traces réseau, chaque trace réseau comprenant une pluralité de paquets réseau.
[0004] Les traces réseau comprennent de nombreuses informations décrivant des comportements et des exigences de l’utilisateur du dispositif intelligent, et l’analyse de ces traces réseau est ainsi utile pour, par exemple, fournir des services adaptés aux utilisateurs.
[0005] Il existe des techniques d’analyses de contenus de paquets permettant d’inférer un comportement numérique au moyen de règles prédéfinies.
Cependant, de telles techniques utilisent des données à caractère personnel (par exemple des adresses IP et MAC, ou encore des contenus de paquets non chiffrés), ainsi que des données à caractère non immuable (par exemple l’adresse IP d’un serveur d’une application utilisée peut varier en fonction de la géolocalisation de l’utilisateur et en fonction de mises à jour). Ces techniques ne protègent ainsi pas la vie privée des utilisateurs et manquent de fiabilité.
[0006] Il existe en outre des techniques d’apprentissage automatique permettant d’identifier une unique propriété numérique, telle qu’une application utilisée, ce qui ne permet pas de définir complètement un usage numérique.
[0007] Il existe donc un besoin pour une solution permettant d’identifier un usage numérique de manière fiable.
Exposé de l’invention
[0008] La présente invention concerne un procédé d’entraînement d’un réseau de neurones artificiels pour que ledit réseau de neurones artificiels identifie un usage numérique parmi un ensemble d’usages numériques, chaque usage numérique comprenant un comportement numérique et un environnement numérique, et étant associé à une pluralité de valeurs de propriétés décrivant l’usage numérique, chaque propriété pouvant prendre au moins deux valeurs différentes, ledit procédé comprenant les étapes suivantes :
- obtention d’un premier ensemble de données d’entraînement à partir d’une pluralité de paquets réseau, ledit premier ensemble de données d’entraînement étant associé à un premier ensemble de valeurs cibles de propriétés décrivant un premier usage numérique cible,
- application du premier ensemble de données d’entraînement à l’entrée du réseau de neurones artificiels, le réseau de neurones artificiels délivrant en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique, et
- modification d’au moins un poids du réseau de neurones artificiels en fonction du premier ensemble de valeurs cibles de propriétés et des scores de prédictions obtenus.
[0009] Le procédé permet d’entraîner un même réseau de neurones à identifier plusieurs propriétés décrivant l’usage numérique, ce qui améliore la fiabilité et la précision de l’identification de l’usage numérique.
[0010] Le procédé permet en outre la réduction du réseau de neurones entraîné, qui consomme ainsi moins de ressources de calcul.
[0011] Dans un mode de réalisation particulier, les propriétés définissant l’usage numérique comprennent au moins une propriété parmi les propriétés suivantes :
- une catégorie d’application utilisée,
- une application utilisée,
- une opération mise en œuvre au niveau de l’application,
- un état d’interaction de l’utilisateur,
- un dispositif utilisé,
- un système d’exploitation utilisé,
- un navigateur utilisé, et
- au moins un débit de connexion Internet.
[0012] Le procédé permet d’entraîner un même réseau de neurones à identifier des propriétés décrivant le comportement numérique et des propriétés décrivant l’environnement numérique, ce qui améliore la fiabilité ainsi que la précision de l’identification de l’usage numérique.
[0013] Dans un mode de réalisation particulier, l’ensemble de données d’entraînement comprend, pour chaque paquet de la pluralité de paquets réseau, au moins une donnée d’entraînement parmi les données d’entraînement suivantes :
- la taille du paquet,
- une durée entre la réception ou l’envoi du paquet et la réception ou l’envoi d’un paquet précédent d’une même session ou d’un même protocole que ledit paquet,
- un port source du paquet,
- un port destination du paquet,
- une direction du paquet, et
- un protocole de plus haut niveau dans le paquet.
[0014] Le procédé permet d’entraîner un même réseau de neurones à identifier un usage numérique à partir de données d’entraînement ne dépendant pas de la localisation ou du moment de l’usage, ce qui améliore la fiabilité de l’identification de l’usage numérique. En outre, le procédé n’utilise pas de données à caractère personnel, ce qui permet de protéger la vie privée des utilisateurs. En effet, les données d’entraînement listées de l’ensemble de données d’entraînement n’ont
pas de caractère personnel, contrairement à d’autres données des paquets réseau, telles que l’adresse IP.
[0015] Dans un mode de réalisation particulier, les étapes d’obtention d’un ensemble de données d’entraînement, d’application de l’ensemble de données d’entraînement et de modification d’au moins un poids sont réitérées pour au moins un deuxième ensemble de données d’entraînement associé à un deuxième ensemble de valeurs cibles de propriétés décrivant un deuxième usage numérique.
[0016] Dans un mode de réalisation particulier, l’entraînement utilise un apprentissage multitâche.
[0017] Dans un mode de réalisation particulier, l’entraînement utilise une méthode de rétropropagation du gradient.
[0018] Dans un mode de réalisation particulier, l’obtention dudit premier ensemble de données d’entraînement comprend les étapes suivantes :
- obtention d’un sous ensemble de paquets réseau et, pour chaque paquet réseau dudit sous ensemble : obtention d’un ensemble de données du paquet réseau, et traitement dudit ensemble de données du paquet réseau, de sorte à obtenir le premier ensemble de données d’entraînement, l’étape de traitement comprenant :
- pour chaque donnée dudit ensemble de données du paquet réseau prenant la forme d’une variable catégorielle, conversion de la valeur en un vecteur de valeurs binaires, et
- pour chaque donnée dudit ensemble de données du paquet réseau ayant une valeur numérique définie dans un intervalle différent de l’intervalle compris entre 0 et 1 , normalisation de la valeur de sorte qu’elle soit définie dans l’intervalle compris entre 0 et 1 .
[0019] Dans un mode de réalisation particulier, le sous ensemble de paquets réseau comprend un maximum de cent paquets réseau, typiquement les cent premiers paquets réseau reçus et/ou envoyés.
[0020] Dans un mode de réalisation particulier, le procédé comprend en outre une étape de filtrage d’au moins un paquet réseau qui n’est pas associé à une opération mise en œuvre par un utilisateur au niveau d’une application.
[0021] L’invention concerne de plus un système d’entraînement d’un réseau de neurones artificiels pour que ledit réseau de neurones artificiels identifie un usage numérique parmi un ensemble d’usages numériques, chaque usage numérique comprenant un comportement numérique et un environnement numérique, et étant associé à une pluralité de valeurs de propriétés décrivant l’usage numérique, chaque propriété pouvant prendre au moins deux valeurs différentes, ledit système comprenant :
- un module d’obtention configuré pour obtenir un premier ensemble de données d’entraînement à partir d’une pluralité de paquets réseau, ledit premier ensemble de données d’entraînement étant associé à un premier ensemble de valeurs cibles de propriétés décrivant un premier usage numérique cible,
- un module d’application configuré pour appliquer le premier ensemble de données d’entraînement à l’entrée du réseau de neurones artificiels, le réseau de neurones artificiels délivrant en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique, et
- un module de modification configuré pour modifier au moins un poids du réseau de neurones artificiels en fonction du premier ensemble de valeurs cibles de propriétés et des scores de prédictions obtenus.
[0022] L’invention concerne en outre un réseau de neurones artificiels entraîné par le procédé d’entraînement tel que décrit ci-dessus.
[0023] Dans un mode particulier de réalisation, le dispositif est une passerelle réseau.
[0024] De plus, l’invention concerne un dispositif comprenant un réseau de neurones artificiels tel que décrit ci-dessus.
[0025] En outre, l’invention concerne un procédé d’utilisation du réseau de neurones artificiels tel que décrit ci-dessus, pour identifier un usage numérique parmi un ensemble d’usages numériques,
ledit procédé d’utilisation comprenant les étapes suivantes :
- obtention d’un ensemble de données d’utilisation à partir d’une pluralité de paquets réseau,
- application de l’ensemble de données d’utilisation à l’entrée du réseau de neurones artificiels, de sorte à identifier l’usage numérique associé à l’ensemble de données d’utilisation.
[0026] Dans un mode particulier de réalisation, le procédé d’utilisation est mis en œuvre par une passerelle domestique, ladite pluralité de paquets réseau transitant sur un réseau de communications auquel est connectée ladite passerelle domestique.
[0027] Dans un mode particulier de réalisation, le procédé d’utilisation comprend une étape d’utilisation de l’usage numérique identifié, comprenant au moins une utilisation parmi les utilisations suivantes :
- recommandation d’un service personnalisé à l’utilisateur d’un terminal en fonction de l’usage numérique identifié,
- contrôle d’un usage indésirable au niveau du terminal,
- optimisation de la répartition de charges dans le réseau de communications,
- reconnaissance d’un utilisateur du réseau de communications,
- allocation des ressources internes du dispositif mettant en œuvre ledit procédé d’utilisation.
[0028] Dans un mode particulier de réalisation, les différentes étapes du procédé d’entraînement selon l’invention sont déterminées par des instructions de programmes d’ordinateurs.
[0029] De plus, dans un mode particulier de réalisation, les différentes étapes du procédé d’utilisation selon l’invention sont déterminées par des instructions de programmes d’ordinateurs.
[0030] En conséquence, l’invention vise aussi un premier programme d’ordinateur, sur un premier support d’informations, ce premier programme comportant des instructions adaptées à la mise en œuvre des étapes d’un procédé d’entraînement selon l'invention.
[0031] L’invention vise en outre un deuxième programme d’ordinateur, sur un deuxième support d’informations, ce deuxième programme comportant des instructions adaptées à la mise en œuvre des étapes d’un procédé d’utilisation selon l'invention.
[0032] Chacun de ces premier et deuxième programmes peut utiliser n’importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable.
[0033] L’invention vise aussi un premier support d'informations lisible par un ordinateur, et comportant des instructions du premier programme d'ordinateur tel que mentionné ci-dessus.
[0034] L’invention vise de plus un deuxième support d'informations lisible par un ordinateur, et comportant des instructions du deuxième programme d'ordinateur tel que mentionné ci-dessus.
[0035] Les premier et deuxième supports d'informations peuvent être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, chacun de ces supports peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple un disque dur.
[0036] D'autre part, chacun de ces supports d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Chacun des programmes selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
[0037] Alternativement, chaque support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.
Brève description des dessins
[0038] D’autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures :
[0039] [Fig. 1] La figure 1 représente, de manière schématique, un système d’entraînement selon un exemple de mode de réalisation de l’invention ;
[0040] [Fig. 2] La figure 2 représente, de manière schématique, un exemple d’architecture du système d’entraînement de la figure 1 ;
[0041] [Fig. 3] La figure 3 représente, sous forme d’organigramme, les principales étapes d’un procédé d’entraînement selon un exemple de mode de réalisation de l’invention ;
[0042] [Fig. 4A] La figure 4A représente, de manière schématique, un exemple de trace réseau pouvant être obtenue lors de la mise en œuvre du procédé de la figure 3 ;
[0043] [Fig. 4B] La figure 4B représente, de manière schématique, une autre vue de la trace réseau de la figure 4A ;
[0044] [Fig. 5] La figure 5 représente, de manière schématique, un exemple de structure de réseau de neurones pouvant être définie lors de la mise en œuvre du procédé de la figure 3 ;
[0045] [Fig. 6] La figure 6 représente, sous forme d’organigramme, les principales étapes d’un procédé d’utilisation selon un exemple de mode de réalisation de l’invention ;
[0046] [Fig. 7] La figure 7 représente, de manière schématique, un exemple de premier usage numérique cible pouvant être utilisé lors de la mise en œuvre du procédé de la figure 3.
Description des modes de réalisation
[0047] La présente invention concerne notamment un procédé d’entraînement d’un réseau de neurones artificiels pour que ledit réseau de neurones artificiels identifie un usage numérique parmi un ensemble d’usages numériques.
[0048] Chaque usage numérique comprend un comportement numérique et un environnement numérique, et est associé à une pluralité de propriétés techniques dont les valeurs décrivent l’usage numérique, chaque propriété pouvant prendre au moins deux valeurs différentes.
[0049] Plus précisément, la valeur d’au moins une propriété de la pluralité de propriétés permet de décrire ou qualifier le comportement numérique de l’usage numérique, et la valeur d’au moins une autre propriété de la pluralité de propriétés permet de décrire ou qualifier l’environnement numérique de l’usage numérique.
[0050] La ou les propriétés décrivant le comportement numérique utilisées sont typiquement une catégorie d’application utilisée, une application utilisée, une opération mise en œuvre au niveau de l’application et/ou un état d’interaction de l’utilisateur.
[0051] Par « application », on entend un logiciel installé en local sur le dispositif utilisé, ou indépendant (de type « standalone application », en terminologie anglo-saxonne), ou encore une application web (ou site web) à laquelle on accède par un navigateur.
[0052] L’état d’interaction indique si l’utilisateur interagit avec l’application utilisée, i.e. s’il met en œuvre une opération au niveau de l’application. L’état d’interaction prend ainsi une première valeur (typiquement « 1 ») lorsque l’utilisateur met en œuvre une opération au niveau de l’application utilisée, ou prend une deuxième valeur (typiquement « 0 ») lorsque l’utilisateur ne met pas en œuvre d’opération (l’application étant ouverte dans que l’utilisateur soit actif), ou lorsqu’aucune application n’est utilisée.
[0053] En outre, la ou les propriétés décrivant l’environnement numérique utilisées sont typiquement un dispositif utilisé (par exemple un terminal fixe ou mobile tel qu’un ordinateur personnel, une tablette, une télévision ou un smartphone), un système d’exploitation utilisé (par exemple Windows 10, Ubuntu, Android, Mac ou iOS), un navigateur utilisé (par exemple Chrome, Firefox, Edge, Safari ou Opéra), et/ou au moins un débit de connexion Internet (par exemple un débit de connexion montant et/ou un débit de connexion descendant.
[0054] Les propriétés « débit de connexion montant » et « débit de connexion descendant » peuvent par exemple prendre chacune quatre valeurs en fonction du débit mesuré, typiquement une première valeur pour un débit mesuré supérieur à 1 Mbps (Mégabit par seconde), une deuxième valeur pour un débit compris entre 1 et 10 Mbps, une troisième valeur pour un débit compris entre 10 et 100 Mbps, et une quatrième valeur pour un débit supérieur à 1 Gbps (Gigabit par seconde).
[0055] Chaque usage numérique de l’ensemble d’usages numériques est ainsi typiquement associé à au moins deux propriétés parmi les propriétés suivantes (typiquement toutes les propriétés suivantes) : la catégorie d’application utilisée, l’application utilisée, l’opération mise en œuvre au niveau de l’application, l’état d’interaction de l’utilisateur, le dispositif utilisé, le système d’exploitation utilisé, le débit de connexion montant, le débit de connexion descendant et, lorsque l’application est une application web, le navigateur utilisé. Chaque usage numérique diffère d’un autre usage numérique par la valeur d’au moins une de ces propriétés.
[0056] Le tableau 1 ci-dessous énumère des exemples de valeurs que peut prendre la propriété « catégorie d’application utilisée », et pour chaque valeur de catégorie d’application, des exemples de valeurs que peuvent prendre les propriétés « applications utilisé » et « opération mise en œuvre au niveau de l’application ».
[0058] Pour la propriété « catégorie d’application » :
- la valeur « VideoStreaming » indique l’application utilisée est une application
de diffusion en continu de fichiers vidéos,
- la valeur « SearchEngine » indique l’application utilisée est un moteur de recherche,
- la valeur « InfoSites » indique que l’application utilisée est une application d’information,
- la valeur « Gaming » indique que l’application utilisée est un jeu,
- la valeur « Social » indique que l’application utilisée est un réseau social,
- la valeur « Messaging » indique que l’application utilisée est une application d’appels et/ou d’envoi de messages,
- la valeur « FileSharing » indique que l’application utilisée est une application de partage de fichiers,
- la valeur « AudioStreaming » indique que l’application utilisée est une application de diffusion en continu de fichiers audio, et
- la valeur « Marketplace » indique que l’application utilisée est une application de commerce en ligne.
[0059] Pour la propriété « opération » :
- la valeur « Connection » indique que l’utilisateur se connecte à un site web ou une application,
- la valeur « BrowseRandomCIick » indique que l’utilisateur clique sur un lien interne, c’est-à-dire un lien hypertexte situé sur une application (par exemple une page web) et renvoyant vers une autre page ou ressource, par exemple une image ou un document, sur le même site web,
- la valeur « BrowseKeywordSearch » indique que l’utilisateur cherche le résultat d’un mot dans une barre de recherche de l’application,
- la valeur « PlayContent » indique que l’utilisateur regarde une vidéo pendant 15 secondes,
- la valeur « PlayGame » indique que l’utilisateur joue à un jeu pendant 30 secondes,
- la valeur « PlayAudio » indique que l’utilisateur écoute un document audio pendant 15 secondes,
- la valeur « LikeCommentShare » indique que l’utilisateur aime, commente ou partage un élément vidéo, un élément sonore ou un message, sauf si le partage redirige vers une autre application,
- la valeur « Subscribellnsubscribe » indique que l’utilisateur s’abonne ou se désabonne d’une chaîne,
- la valeur « PublishContent » indique que l’utilisateur télécharge une vidéo ou un fichier vers un serveur pendant 15 secondes,
- la valeur « DownloadContent » indique que l’utilisateur télécharge une vidéo ou un fichier pendant 15 secondes,
- la valeur « ClickSearchResult » indique que l’utilisateur clique sur un lien aléatoire donné par une page de résultats d’un moteur de recherche,
- la valeur « ImageSearch » indique que l’utilisateur cherche le résultat d’un mot donné fourni par un moteur de recherche d’images,
- la valeur « ImageBrowse » indique que l’utilisateur clique sur un lien aléatoire fourni par une page de résultats d’un moteur de recherche d’images,
- la valeur « MapSearch » indique que l’utilisateur cherche le résultat d’un mot sur la barre de recherche d’une cartographie en ligne d’un moteur de recherche,
- la valeur « MapBrowse » indique que l’utilisateur zoome, dézoome, clique sur un élément de la carte, ou modifie l’affichage sur une cartographie en ligne d’un moteur de recherche (« passe en streetview »),
- la valeur « Networking » indique que l’utilisateur demande à ajouter un ami ou rejoindre un groupe,
- la valeur « Messaging » indique que l’utilisateur envoie ou reçoit un message ou un mail,
- la valeur « AddFavorite » indique que l’utilisateur ajoute un objet à une liste de préférence (« wishlist », en terminologie anglosaxonne),
- la valeur « VoiceCall » indique que l’utilisateur passe un appel audio pendant 15 secondes, et
- la valeur « VideoCall » indique que l’utilisateur passe un appel vidéo pendant 15 secondes.
[0060] Le réseau de neurones artificiels identifie un usage numérique en associant à chaque valeur de chaque propriété associée aux usages numériques un score de prédiction.
[0061] La figure 1 représente, de manière schématique, un système d’entraînement
100 selon un exemple de mode de réalisation de l’invention, ledit système
d’entraînement 100 étant apte à mettre en œuvre un procédé d’entraînement d’un réseau de neurones artificiels selon un exemple de mode de réalisation de l’invention, typiquement le procédé décrit ci-après en référence à la figure 3.
[0062] Le système d’entraînement 100 comprend un premier module d’obtention 110, un premier module d’application 120, et un module de modification 130.
[0063] Le premier module d’obtention 110 est configuré pour obtenir un ensemble de données d’entraînement à partir d’une pluralité de paquets réseau, l’ensemble de données d’entraînement étant associé à un ensemble de valeurs cibles de propriétés décrivant un usage numérique cible.
[0064] En outre, le premier module d’application 120 est configuré pour appliquer l’ensemble de données d’entraînement à l’entrée du réseau de neurones artificiels, le réseau de neurones artificiels délivrant en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique.
[0065] De plus, le module de modification 130 est configuré pour modifier au moins un poids du réseau de neurones artificiels en fonction de l’ensemble de valeurs cibles de propriétés et des scores de prédictions obtenus par le premier module d’application 120.
[0066] Comme le montre la figure 2, le système d’entraînement 100 comprend notamment un processeur 200, une mémoire morte 202 (de type « ROM »), une mémoire non volatile réinscriptible 204 (de type « EEPROM » ou « Flash NAND » par exemple), une mémoire volatile réinscriptible 206 (de type « RAM »), et une interface de communication 208.
[0067] La mémoire morte 202 constitue un support d’enregistrement conforme à un exemple de mode de réalisation de l’invention, lisible par le processeur 200 et sur lequel est enregistré un premier programme d’ordinateur P1 conforme à un exemple de mode de réalisation de l’invention. En variante, le premier programme d’ordinateur P1 est stocké dans la mémoire non volatile réinscriptible 204.
[0068] Le premier programme d’ordinateur P1 permet au système d’entraînement
100 de mettre en œuvre un procédé d’entraînement conforme à l’invention.
[0069] Ce premier programme d’ordinateur P1 peut ainsi définir des modules fonctionnels et logiciels du système d’entraînement 100, configurés pour mettre en œuvre les étapes d’un procédé d’entraînement conforme à un exemple de mode de réalisation de l’invention. Ces modules fonctionnels s’appuient sur ou commandent les éléments matériels 200, 202, 204, 206 et 208 du système d’entraînement 100 cités précédemment. Ils peuvent comprendre notamment ici le premier module d’obtention 110, le premier module d’application 120 et le module de modification 130 précités.
[0070] Le système d’entraînement 100 peut être un terminal 100 (tel qu’une passerelle réseau) comprenant les éléments matériels 200, 202, 204, 206 et 208, ainsi que les modules 110, 120 et 130 précités. En variante, le système d’entraînement peut comprendre plusieurs entités présentant chacune l’architecture conventionnelle d’un ordinateur, telles qu’un terminal et un ou plusieurs serveurs, les modules 110, 120 et 130 précités étant alors répartis entre ces différentes entités.
[0071] La figure 3 représente un procédé d’entraînement conforme à un exemple de mode de réalisation de l’invention. Ce procédé est mis en œuvre par un système d’entraînement conforme à un exemple de mode de réalisation de l’invention, tel que par exemple le système d’entraînement 100 décrit en référence aux figures 1 et 2.
[0072] Dans une étape S310, le premier module d’obtention 110 obtient un premier ensemble de données d’entraînement EDE1 à partir d’une pluralité de paquets réseau, ledit premier ensemble de données d’entraînement EDE1 étant associé à un premier ensemble de valeurs cibles de propriétés décrivant un premier usage numérique cible UNC1 .
[0073] Comme cela sera décrit par la suite, ce premier ensemble de données d’entraînement EDE1 permet d’entraîner le réseau de neurones RN artificiel à identifier le premier usage numérique cible UNC1 .
[0074] La figure 7 illustre un exemple de premier ensemble de valeurs cibles de propriétés décrivant le premier usage numérique cible UNC1 , ce premier ensemble comprenant les valeurs suivantes :
- la valeur « Videostreaming » pour la propriété « catégorie d’application
utilisée »,
- la valeur « Youtube » pour la propriété « application utilisée »,
- la valeur « Playcontent » pour la propriété « opération mise en œuvre au niveau de l’application utilisée »,
- la valeur « 1 » pour la propriété « état d’interaction »,
- la valeur « ordinateur personnel » pour la propriété « dispositif utilisé »,
- la valeur « Windows 10 » pour la propriété « système d’exploitation utilisé »,
- la valeur « Firefox » pour la propriété « navigateur utilisé »,
- la valeur « supérieur à 1 Mbps » pour la propriété « débit montant », et
- la valeur « entre 1 et 10 Mbps » pour la propriété « débit descendant ».
[0075] Plus précisément, l’étape S310 comprend une étape S312 d’obtention d’une trace réseau TR comprenant une pluralité de paquets réseau.
[0076] La trace réseau TR est typiquement obtenue en utilisant un outil logiciel de capture permettant de capturer les paquets réseaux échangés par le terminal sur lequel est exécuté cet outil logiciel, par exemple l’outil logiciel TShark ou tcpdump.
[0077] Chaque paquet réseau obtenu comprend une pluralité de données réseau, telles que par exemple un numéro de paquet, une donnée temporelle d’envoi ou de réception du paquet (absolue ou relative, par rapport à un paquet de référence tel que le premier paquet capturé), une adresse IP de source du paquet (pour « Internet Protocol », en terminologie anglo-saxonne), une adresse IP de destination du paquet, une taille du paquet, un nom de protocole dans le paquet, etc.
[0078] Afin de mettre en œuvre le premier usage numérique cible UNC1 , l’application utilisée associée au premier usage numérique cible est ouverte sur le terminal de sorte à être exécutée sur le terminal, puis la capture des paquets réseaux est lancée avec l’outil logiciel. Le terminal est le dispositif utilisé associé au premier usage numérique cible, ce terminal exécutant le système d’exploitation utilisé et, lorsque l’application utilisée est une application web, le navigateur utilisé associés au premier usage numérique cible UNC1 .
[0079] Ainsi, dans l’exemple de premier usage numérique cible UNC1 de la figure 7, Youtube est ouvert dans le navigateur Firefox d’un ordinateur personnel ayant pour système d’exploitation Windows 10.
[0080] Ensuite, lorsque le premier usage numérique cible est associé à un état d’interaction de l’utilisateur indiquant que l’utilisateur interagit avec l’application associée au premier usage numérique cible UNC1 (cet état d’interaction étant ainsi typiquement égal à 1 ), l’opération associée au premier usage numérique cible UNC1 est exécutée.
[0081] Aussi, dans l’exemple de premier usage numérique cible UNC1 de la figure 7, la lecture d’une vidéo sur Youtube est lancée.
[0082] La capture des paquets réseaux est typiquement arrêtée lorsque tous les paquets réseaux associés à l’opération sont envoyés par le terminal ou reçus par le terminal. La capture est donc par exemple arrêtée lorsque les résultats de l’opération sont affichés par le terminal.
[0083] Pour une durée typiquement comprise entre 5 et 10 secondes de capture, la trace réseau TR obtenue comprend typiquement entre 100 et 100 paquets réseaux pour une opération de recherche du résultat d’un mot dans une barre de recherche (« BrowseKeywordSearch »), et comprend typiquement entre 2000 et 3000 paquets réseaux pour une opération de visionnage d’une vidéo (« PlayContent »).
[0084] Les paquets réseaux obtenus, qui constituent la trace réseau TR obtenue, sont alors enregistrés en association avec les valeurs de propriétés associées au premier usage numérique cible UNC1 , typiquement dans la mémoire non volatile réinscriptible 204.
[0085] Les paquets réseaux obtenus sont ainsi étiquetés (les valeurs de propriétés étant appelées « labels », en terminologie anglo-saxonne).
[0086] Afin d’obtenir la valeur de la propriété « débit de connexion montant » et/ou la valeur de la propriété « débit de connexion descendant » associées au premier usage numérique cible UNC1 , un outil logiciel peut être utilisé, tel que l’outil « Solarwinds Real-Time Bandwidth Monitor » ou « Okala speedtest », pendant
l’étape S312 d’obtention de la trace réseau TR, cet outil logiciel étant ainsi utilisé en parallèle de l’outil logiciel de capture.
[0087] Les figures 4A et 4B montrent un exemple de trace réseau TR pouvant être obtenue à l’étape S312 d’obtention. La trace réseau TR comprend une pluralité de paquets réseau PR1-PRm. Chaque paquet réseau PR1-PRm comprenant une pluralité de données No. (numéro de paquet), Time (donnée temporelle d’envoi ou de réception du paquet), Source (adresse IP de source du paquet), Destination (adresse IP de destination du paquet), Length (taille mémoire du paquet), Protocol (nom de protocole dans le paquet), et Info (autres données du paquet).
[0088] De plus, lorsque le premier usage numérique cible UNC1 est associé à un état d’interaction de l’utilisateur indiquant que l’utilisateur interagit avec l’application associée au premier usage numérique cible UNC1 (cet état d’interaction étant ainsi typiquement égal à 1), il est utile de filtrer les paquets réseau dits de bruit de fond PRB, qui ne sont pas associés à une opération mise en œuvre par un utilisateur au niveau d’une application. L’étape S310 comprend alors typiquement une étape S314 de filtrage d’au moins un paquet réseau de bruit de fond PRB.
[0089] Lorsque le système d’exploitation utilisé est Linux, l’étape de filtrage est typiquement mise en œuvre pendant l’étape S312 d’obtention d’une trace réseau TR. Un outil logiciel de filtrage est lancé avant le lancement de l’outil logiciel de capture, de sorte à être exécuté pendant la capture des paquets réseau. L’outil logiciel de filtrage utilisé est par exemple Linux Network Namespace.
[0090] Lorsque le système d’exploitation utilisé n’est pas Linux (comme dans l’exemple de la figure 7), l’étape de filtrage est mise en œuvre après l’étape S312 et comprend typiquement une étape d’obtention d’une nouvelle trace réseau associée à un usage numérique pour lequel la propriété d’état d’interaction indique que l’utilisateur n’interagit pas (cet état d’interaction étant ainsi typiquement égal à 0). Cet usage numérique n’est pas associé à des propriétés décrivant un comportement numérique, et est typiquement uniquement associé aux propriétés dispositif utilisé, système d’exploitation utilisé, le navigateur utilisé et l’état d’interaction, le dispositif utilisé étant le terminal sur lequel l’outil logiciel
de capture est exécuté et le même terminal permettant l’obtention de la trace réseau TR associé au premier usage numérique cible UNC1 à l’étape S310, le système d’exploitation et/ou le navigateur étant les mêmes que le système d’exploitation et/ou le navigateur permettant l’obtention de la trace réseau TR associé au premier usage numérique cible UNC1 (différent de linux) et l’état d’interaction étant typiquement égal à 0.
[0091] La capture des paquets réseau est lancée avec l’outil logiciel de capture, pendant une durée prédéterminée, typiquement comprise entre 10 et 100 heures.
[0092] Un triplé de données réseau est ensuite extrait de chaque paquet obtenu, ledit triplé de données comprenant par exemple l’adresse IP source du paquet, l’adresse IP destination du paquet et le protocole de plus haut niveau dans le paquet. Un ensemble de triplés de données réseau est ainsi obtenu.
[0093] Chaque paquet de la trace réseau TR associé au premier usage numérique cible UNC1 obtenu à l’étape S312 comprenant un des triplés de données de l’ensemble de triplés de données obtenu est ensuite supprimé, ce paquet étant un paquet réseau de bruit de fond PRB.
[0094] L’étape S310 comprend, pour chaque paquet réseau d’un sous ensemble de paquets réseau de la trace réseau TR obtenue à l’étape S312, une étape S316 d’obtention d’un ensemble de données du paquet réseau DPR, ces données DPR étant ensuite utilisées pour fournir les entrées du réseau de neurones RN artificiels.
[0095] Le sous ensemble de paquets réseau comprend typiquement un nombre P de premiers paquets réseau reçus et/ou envoyés de la trace réseau TR, et éventuellement n’ayant pas été filtrés à l’étape S314, typiquement les cent premiers paquets réseau PR, cette valeur de cent paquets réseau permettant un bon compromis entre temps de calcul et précision de l’identification.
[0096] Les données DPR de l’ensemble de données du paquet réseau DPR sont typiquement sélectionnées de sorte à améliorer la fiabilité et la précision de l’identification de l’usage numérique (par exemple parce qu’elles ne dépendent pas de la localisation ou du moment de l’usage) et/ou protéger la vie privée des utilisateurs.
[0097] L’ensemble de données du paquet réseau DPR comprend plusieurs données DPR parmi les données suivantes, typiquement les toutes les données suivantes :
- la taille du paquet,
- une durée entre la réception ou l’envoi du paquet et la réception ou l’envoi d’un paquet précédent d’une même session ou d’un même protocole que ledit paquet,
- un port source du paquet,
- un port destination du paquet,
- une direction du paquet, i.e. si le paquet est reçu ou envoyé, et
- un protocole de plus haut niveau dans le paquet.
[0098] Le paquet comprend les données de taille, port source, port destination et de protocole de plus haut niveau, et ces données peuvent ainsi être directement extraites du paquet.
[0099] La donnée de direction du paquet est typiquement obtenue à partir de l’adresse MAC de source ou de destination. En effet, lorsque le paquet est reçu (paquet entrant), l’adresse MAC de destination est l’adresse MAC du dispositif utilisé, et lorsque le paquet est envoyé (paquet sortant), l’adresse MAC source du paquet est l’adresse MAC du dispositif utilisé.
[0100] La donnée de durée est typiquement calculée en fonction de la donnée temporelle d’envoi ou de réception du paquet. Lorsque le paquet appartient à une session (typiquement une session TCP ou UDP), le paquet précédent de la même session est identifié est la donnée de durée du paquet est soustraite à la donnée de durée du paquet précédent. Lorsque le paquet n’appartient pas à une session, le paquet précédent de même protocole et n’appartenant pas à une session est identifié, et la donnée de durée du paquet est soustraite à la donnée de durée de ce paquet précédent.
[0101] L’étape S310 comprend en outre une étape S318 de traitement des ensembles de données de paquets réseau DPR obtenus à l’étape S316, de sorte à obtenir le premier ensemble de données d’entraînement EDE1 .
[0102] L’étape S318 comprend, pour chaque donnée DPR de chaque ensemble de données du paquet réseau DPR ayant pour valeur un nom (i.e. prenant la forme
d’une variable catégorielle), une conversion de la valeur de ladite donnée DPR en un vecteur de valeurs binaires (variables binaires).
[0103] Une variable catégorielle prend typiquement la forme d’une chaîne de caractères comprenant des lettres et/ou des chiffres, dont la valeur est un nom. Par exemple, le numéro d’un port est une variable catégorielle, le numéro nommant (référençant) le port mais n’impliquant pas une relation de supériorité par rapport à un numéro de port plus petit.
[0104] Le vecteur comprend un nombre de valeurs binaire égal au nombre de valeurs que peut prendre ladite donnée DPR, chaque valeur binaire correspondant à une des valeurs de nom, et étant mise à 1 pour la valeur de nom effectivement prise par la donnée, et à 0 pour les autres (technique dite d’encodage « one-hot »). Cette conversion est typiquement mise en œuvre pour les données de port source, port destination et protocole de plus haut niveau.
[0105] En variante, une autre méthode de binarisation peut être utilisée, telle que par exemple une des méthodes appelées « simple coding », « deviation coding », « orthogonal polynomial coding », « Helmert coding », « reverse Helmert coding », forward difference coding » ,« backward difference coding » et « user- defined coding », en terminologie anglo-saxonne, par exemple décrites sur la page web https://stats.idre.ucla.edu/r/library/r-library-contrast-coding-systems-for- cateqorical-variabies/.
[0106] En outre, l’étape S318 comprend, par exemple, pour chaque donnée DPR de chaque ensemble de données du paquet réseau DPR ayant une valeur numérique définie dans un intervalle différent de l’intervalle compris entre 0 et 1 , normalisation de la valeur de sorte qu’elle soit définie dans l’intervalle compris entre 0 et 1 . Toutes les données DPR sont alors à la même échelle, ce qui permet d’accélérer l’entraînement du réseau de neurones RN artificiels. La normalisation est typiquement mise en œuvre pour les données de taille et de durée.
[0107] La méthode appelée « min-max normalisation » est par exemple utilisée pour la normalisation, la formule utilisée étant alors :
[0108] [Math. 1]
x — min (x) xf — - max(x) — min (x)
[0109] où x représente la valeur à normaliser, x’ représente la valeur normalisée, max(x) représente la valeur maximale que peut prendre la valeur à normaliser et min(x) représente la valeur minimale que peut prendre la valeur à normaliser.
[0110] Dans une étape S320, la structure du réseau de neurones RN artificiel est définie.
[0111] La structure utilisée pour définir le réseau de neurones est par exemple la structure appelée « réseau de neurones à propagation avant ». Le réseau de neurones comprend une couche d’entrée, une couche de sortie et un ou plusieurs couches cachées, chaque couche comprenant une pluralité de nœuds, aussi appelés neurones.
[0112] En outre, chaque couche cachée, ainsi que la couche de sortie, sont chacune associées à une opération mathématique, aussi appelée fonction d’activation, réalisée au niveau de chaque nœud de ladite couche.
[0113] De plus, chaque nœud d’une couche cachée et de la couche de sortie est « relié » à chaque nœud de la couche précédente par un poids, chaque nœud prenant ainsi en entrée le résultat (ou la valeur, pour la couche d’entrée) de chaque nœud de la couche précédente multiplié par le poids associé, i.e. le poids liant ledit nœud audit nœud de la couche précédente.
[0114] Le nombre de couches est typiquement défini à l’étape S320, ainsi que les fonctions d’activation et le nombre de nœuds des couches cachées et de sortie.
[0115] Le réseau de neurones RN artificiels défini comprend typiquement 4 couches de neurones artificiels, une couche d’entrée CE, une couche de sortie CS, une première couche cachée CC1 et une deuxième couche cachée CC2, la première couche cachée CC1 étant positionnée entre la couche d’entrée CE et la deuxième couche cachée CC2, et la deuxième couche cachée CC2 étant positionnée entre la première couche cachée CC1 et la couche de sortie CS. La figure 5 représente schématiquement un exemple d’un tel réseau de neurones RN artificiels.
[0116] Chaque couche CE, CC1 , CC2 et CS comprend une pluralité de nœuds NE, NC1 , NC2, NS (neurones). De plus, la première couche cachée CC1 , la deuxième couche cachée CC2 et la couche de sortie CS sont chacune associées à une opération mathématique.
[0117] La première opération mathématique (ou première fonction d’activation) associée à la première couche intermédiaire CC1 est réalisée au niveau de chaque nœud NC1 de la première couche intermédiaire CC1 , chaque opération mathématique au niveau d’un nœud NC1 étant réalisée en fonction de chaque valeur de chaque nœud d’entrée NE, chacune de ses valeurs étant pondérée par un poids P1 , pouvant différer d’une valeur à l’autre. L’ensemble des poids P1 affectés aux valeurs des nœuds d’entrée NE est typiquement initialisé au hasard.
[0118] La première opération mathématique réalisée est typiquement l’application de la fonction tangente hyperbolique à la somme de chaque valeur pondérée de chaque nœud d’entrée NE, la fonction tangente hyperbolique étant notée tanh, et pouvant être définie par la formule mathématique suivante, pour le nœud NC1j de la première couche cachée CC1 , j appartenant à l’intervalle [1 , Q], où Q est le nombre de nœuds de la première couche cachée CC1 , par exemple égal à 2500 :
[0120] où yj représente la somme des valeurs pondérées des nœuds d’entrée NE, avec :
[0122] où i appartient à l’intervalle [1 , P], P étant le nombre de nœuds de la couche d’entrée CE, P1 ÿ étant ainsi le poids P1 liant le nœud NEi de la couche d’entrée au nœud NC1j de la première couche cachée CC1 .
[0123] De plus, la deuxième opération mathématique (ou deuxième fonction d’activation) associée à la deuxième couche intermédiaire CC2 est réalisée au
niveau de chaque nœud NC2 de la deuxième couche intermédiaire CC2, chaque opération mathématique au niveau d’un nœud NC2 étant réalisée en fonction du résultat de chaque première opération effectuée au niveau de chaque nœud NC1 de la première couche intermédiaire CC1 , chacun de ses résultats étant pondéré par un poids P2, pouvant différer d’une valeur à l’autre. L’ensemble des poids P2 affectés aux résultats des nœuds NC1 de la première couche cachée CC1 est typiquement initialisé au hasard.
[0124] La deuxième opération mathématique réalisée est typiquement l’application de la fonction Unité Linéaire Rectifiée à la somme de chaque résultat pondéré de chaque nœud NC1de la première couche intermédiaire CC1 , la fonction Unité Linéaire Rectifiée étant notée ReLu (pour Rectified Linear Unit, en terminologie anglo-saxonne), et pouvant être définie par la formule mathématique suivante, pour le nœud NC2k de la deuxième couche cachée CC2, k appartenant à l’intervalle [1 , R], où R est le nombre de nœuds de la première couche cachée, par exemple égal à 750 :
[0125] [Math. 4]
ReLuÇz ) = max(0, zk)
[0126] où Zk représente la somme des résultats pondérés des nœuds NC1 de la première couche intermédiaire CC1 , avec :
[0128] où j appartient à l’intervalle [1 , Q], Q étant le nombre de nœuds de la première couche cachée CC1 , P2jk étant ainsi le poids P2 liant le nœud NC1j de la première couche cachée CC1 au nœud NC2k de la deuxième couche cachée CC2.
[0129] En outre, la troisième opération mathématique (ou troisième fonction d’activation) associée à la couche de sortie CS est réalisée au niveau de chaque nœud NS de la couche de sortie CS, chaque opération mathématique au niveau d’un nœud NS étant réalisée en fonction du résultat de chaque deuxième opération effectuée au niveau de chaque nœud NC2 de la deuxième couche
intermédiaire CC2, chacun de ses résultats étant pondéré par un poids P3, pouvant différer d’une valeur à l’autre. L’ensemble des poids P3 affectés aux résultats des nœuds NC2 de la deuxième couche intermédiaire CC2 est typiquement initialisé au hasard.
[0130] Le résultat de chaque troisième opération mathématique effectuée au niveau d’un nœud NS de la couche de sortie CS correspond à un score de prédiction d’une valeur d’une propriété de la pluralité de propriétés décrivant chaque usage numérique de l’ensemble d’usages numériques. Un taux de probabilité est ainsi associé à chaque valeur de chaque propriété de la pluralité de propriété en sortie du réseau de neurones artificiels, et ainsi typiquement à chaque valeur de catégorie d’application utilisée, d’application utilisée, d’opération mise en œuvre au niveau de l’application, d’état d’interaction de l’utilisateur, de dispositif utilisé, de système d’exploitation utilisé et, lorsque l’application est une application web, de navigateur utilisé.
[0131] La troisième opération mathématique est typiquement l’application de la fonction softmax, appelée aussi fonction exponentielle normalisée, à la somme des résultats pondérés des nœuds NC2 de la deuxième couche intermédiaire CC2, la fonction softmax étant définie par la formule suivante, pour le nœud NSi.m, où I appartient à l’intervalle [1 , S], où S est le nombre de propriétés de la pluralité de propriétés dont les valeurs décrivent les usages numériques, et m e [1 , Ti], où Ti est le nombre de valeurs que peut prendre la propriété I, le nœud NSi.m étant ainsi le nœud associé à la valeur m de la propriété I :
[0133] où bi.m représente la somme des résultats pondérés des nœuds NC2 de la deuxième couche intermédiaire CC2, avec :
[0134] [Math. 7]
[0135] où k appartient à l’intervalle [1 , R], R étant le nombre de nœuds NC2 de la deuxième couche cachée CC2, P3ki,m étant ainsi le poids P3 liant le nœud NC2k de la deuxième couche cachée CC2 au nœud NSi.m de la couche de sortie CS.
[0136] Dans une étape S330, le premier ensemble de données d’entraînement EDE1 obtenu à l’étape S310 est appliqué, par le premier module d’application 120, à l’entrée CE du réseau de neurones RN artificiels.
[0137] Plus précisément, chaque donnée d’entraînement du premier ensemble de données d’entraînement EDE1 correspond à un ou plusieurs nœuds NE de la couche d’entrée CE. Lorsque la valeur de la donnée d’entraînement prend la forme d’un vecteur de valeurs binaires, le nombre de nœuds NE de la couche d’entrée CE correspondant à ladite donnée d’entraînement est égal au nombre de valeurs binaires du vecteur, et chaque nœud NE prend alors la valeur d’une des valeurs binaires du vecteur. Lorsque la donnée d’entraînement comprend une unique valeur, un unique nœud NE de la couche d’entrée CE correspond à la donnée d’entraînement, et prend ainsi la valeur de la donnée d’entraînement.
[0138] Le nombre de nœuds NE de la couche d’entrée CE est ainsi supérieur ou égal au nombre de données d’entraînement du premier ensemble de données d’entraînement EDE1 .
[0139] Les première, deuxième et troisième opérations mathématiques sont alors appliquées en utilisant le premier ensemble de données d’entraînement EDE1 , respectivement dans la première couche cachée CC1 , la deuxième couche cachée CC2 et la couche de sortie CS.
[0140] Le réseau de neurones RN artificiels délivre alors en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique.
[0141] Dans une étape S340, au moins un poids P1 , P2 ou P3 du réseau de neurones NR artificiels est modifié, par le module de modification 130, en fonction du premier ensemble de valeurs cibles de propriété et des scores de prédictions obtenus à l’étape S330.
[0142] Le ou les poids P1 , P2, P3 sont typiquement modifiés selon une méthode de rétropropagation du gradient.
[0143] Plus précisément, comme indiqué précédemment, chaque valeur de chaque propriété de la pluralité de propriétés décrivant l’usage numérique est associée à un nœud NS différent de la couche de sortie CS, le nœud délivrant un score de prédiction pour cette valeur.
[0144] Le premier ensemble de valeurs cibles de propriétés décrivant le premier usage numérique cible UNC1 permet d’attribuer à chaque nœud NS de la couche de sortie CS un score attendu, le score étant élevé pour chaque nœud NS associé à une valeur cible du premier ensemble de valeurs cibles (par exemple 100%) et étant moins élevé pour chaque nœud NS associé à une autre valeur qu’une valeur cible (par exemple 0%).
[0145] Chaque score de prédiction délivré par un nœud NS de la couche de sortie CS est ainsi comparé à la valeur attendue associée audit nœud NS, la différence EP entre le score de prédiction et la valeur attendue (appelée erreur EP associée audit nœud NS) étant ensuite utilisée pour modifier chaque poids liant ledit nœud à un nœud NC2 de la deuxième couche cachée CC2. La formule suivante pour calculer la nouvelle valeur du poids P3ki,m+1 liant le nœud NC2k de la deuxième couche cachée CC2 au nœud NSi.m de la couche de sortie CS est typiquement utilisée :
[0147] où P3ki,m est la valeur courante du poids liant le nœud NC2k de la deuxième couche cachée CC2 au nœud NSi.m de la couche de sortie CS, LearningRate est une constante égale à 0.01 , et EPi.m est la différence EP entre le score de prédiction et la valeur attendue du nœud NSi.m de la couche de sortie CS.
[0148] Afin de calculer les poids P2 liants les nœuds NC2 de la deuxième couche cachée CC2 aux nœuds NC1 de la première couche cachée CC1 , la contribution totale de chaque nœud NC2 de la deuxième couche cachée CC2 aux erreurs associées aux nœuds NS de la couche de sortie CS est calculée.
[0149] La contribution totale CT2k du nœud NC2k aux erreurs associées aux nœuds NS de la couche de sortie CS est typiquement calculée au moyen de la formule suivante :
[0151] où ct2ki,m est la contribution du nœud NC2k de la deuxième couche cachée CC2 à l’erreur associée au nœud NSi.m de la couche de sortie CS, typiquement calculé selon la formule suivante :
[0153] où P3ki,m est le poids P3 liant le nœud NC2k de la deuxième couche cachée CC2 au nœud NSi.m de la couche de sortie CS et EPi.m est la différence EP entre le score de prédiction et la valeur attendue du nœud NSi.m de la couche de sortie CS.
[0154] La formule suivante pour calculer la nouvelle valeur du poids P2jk+1 liant le nœud NC1j de la première couche cachée CC1 au nœud NC2k de la deuxième couche cachée CC2 peut alors être utilisée :
[0156] où P2jk est la valeur courante du liant le nœud NC1j de la première couche cachée CC1 au nœud NC2k de la deuxième couche cachée CC2, LearningRate est une constante égale à 0.01 , et CT2k est la contribution totale du nœud NC2k aux erreurs associées aux nœuds NS de la couche de sortie.
[0157] Les poids P1 liants les nœuds NC1 de la première couche cachée CC1 aux nœuds NE de la couche d’entrée CE sont calculés de la même manière que les poids P2 liants les nœuds NC2 de la deuxième couche cachée CC2 aux nœuds NC1 de la première couche cachée CC1 .
[0158] L’entraînement utilise ainsi typiquement un apprentissage multitâche avec un réseau de neurones RN délivrant un score de prédiction pour chaque valeur de chaque propriété et l’utilisation de la méthode de rétropropagation du gradient.
[0159] La mise en œuvre des étapes d’obtention S310, d’application S330 et de modification S340 correspondent à une itération de l’entraînement du réseau de neurones NR artificiels. Ces étapes d’obtention S310, d’application S330 et de modification S340 sont typiquement réitérées une ou plusieurs fois, chaque itération de ces étapes S330 et S340 utilisant le réseau de neurones RN comprenant les poids modifiés à l’étape S340 de modification de l’itération précédente.
[0160] Le réseau de neurones NR est entraîné dans le but que pour chaque propriété, il associe un score de prédiction associé à la valeur cible de la propriété (du premier ensemble de valeurs cibles de propriétés) supérieur au score de prédiction des autres valeurs de la même propriété.
[0161] Les étapes d’obtention S310 d’un ensemble de données d’entraînement, d’application S330 de l’ensemble de données d’entraînement et de modification S340 d’au moins un poids peuvent être réitérées une ou plusieurs fois pour le premier usage numérique cible UNC1. Plusieurs traces réseau peuvent ainsi être obtenues pour le premier usage numérique cible UNC1 puis être utilisées pour entraîner le réseau de neurones NR artificiels.
[0162] De plus, les étapes d’obtention S310 d’un ensemble de données d’entraînement, d’application S330 de l’ensemble de données d’entraînement et de modification S340 d’au moins un poids peuvent être réitérées une ou plusieurs fois pour chaque usage numérique de l’ensemble d’usages numériques, le premier module d’obtention 110 obtenant alors un nième ensemble de données d’entraînement EDEn qui est appliqué par le premier module d’application 120 à l’entrée CE du réseau de neurones RN artificiels, et le module de modification 130 modifiant un ou plusieurs poids du réseau de neurones RN en fonction du nième ensemble de valeurs cibles de propriétés correspondant au nième usage numérique et des scores de prédictions obtenus à cette itération de l’étape S330.
[0163] Lorsqu’une ou plusieurs traces réseau associées à un usage numérique pour lequel la propriété d’état d’interaction indique que l’utilisateur n’interagit pas sont obtenues à une ou plusieurs itérations de l’étape S314, chaque trace réseau peut aussi être utilisée dans une nouvelle itération des étapes d’application S330 et de modification S340.
[0164] Après la mise en œuvre des étapes d’obtention S310, d’application S330 et de modification S340 pour le premier usage numérique, ces étapes S310, S330 et S340 sont typiquement réitérées pour chaque autre usage numérique de l’ensemble d’usages numériques, les poids P1 , P2, P3 du réseau de neurones RN étant modifiés à chaque itération et les poids ainsi modifiés étant utilisés à l’itération suivante.
[0165] La mise en œuvre des étapes d’obtention S310, d’application S330 et de modification S340 pour chaque usage numérique de l’ensemble d’usages numériques est appelée cycle d’apprentissage complet ou encore époque.
[0166] Toutes les itérations des étapes d’obtention S310 peuvent être mises en œuvre avant la mise en œuvre de l’étape S330 d’application pour le premier usage numérique.
[0167] L’étape d’obtention S310 peut en outre être mise en œuvre une ou plusieurs nouvelles fois pour chaque usage numérique de la pluralité d’usages numériques afin d’obtenir un ou plusieurs autres ensembles de données d’entraînement pour chaque usage numérique de la pluralité d’usages numériques, typiquement avant la mise en œuvre de l’étape S330 d’application pour le premier usage numérique. Les ensembles de données obtenus sont typiquement utilisés lors d’une validation ou d’un autre cycle d’apprentissage complet.
[0168] Suite à la mise en œuvre d’une époque, une validation peut être réalisée en mettant en œuvre les étapes d’application S330 et de modification S340 pour chaque usage numérique de l’ensemble d’usages numériques, à partir d’ensembles de données d’entraînement pour chaque usage numérique obtenus à des itérations de l’étape S310 et n’ayant pas encore été utilisés. Cette validation permet d’évaluer la précision de l’identification par le réseau de neurones NR.
[0169] Plus précisément, si, à la fin de la validation, la précision de l’identification (de la prédiction) n’augmente pas, l’entraînement est arrêté. Dans le cas contraire, un nouveau cycle d’apprentissage complet et une nouvelle validation sont réalisés, et ainsi de suite jusqu’à ce que la précision de l’identification n’augmente pas.
[0170] Un test final peut ensuite être réalisé en mettant en œuvre les étapes d’application S330 et de modification S340 pour chaque usage numérique de l’ensemble d’usages numériques, à partir d’ensembles de données d’entraînement pour chaque usage numérique obtenus à des itérations de l’étape S310 et n’ayant pas encore été utilisés.
[0171] Le réseau de neurones RN artificiels entraîné suite à la mise en œuvre du procédé de la figure 3 est typiquement stocké dans la mémoire d’un dispositif tel qu’une passerelle réseau (« gateway », en terminologie anglo-saxonne), un serveur ou un terminal fixe ou mobile comme par exemple un ordinateur personnel, une tablette, une télévision ou un smartphone.
[0172] Par exemple le réseau de neurones RN est stocké dans la mémoire d’un serveur d’une infrastructure de fournisseur de service Internet et permet d’analyser les usages numériques des utilisateurs de ce service Internet.
[0173] Le réseau de neurones RN peut en variante être stocké dans la mémoire d’une passerelle réseau dans un réseau LAN (acronyme de « Local Area Network », en terminologie anglo-saxonne) et permet d’analyser les usages numériques des utilisateurs de ce réseau LAN.
[0174] La figure 6 représente un procédé d’utilisation du réseau de neurones artificiels entraîné par la mise en œuvre du procédé de la figure 3, pour identifier un usage numérique parmi l’ensemble d’usages numériques, le procédé d’utilisation étant conforme à un exemple de mode de réalisation de l’invention. Ce procédé est mis en œuvre par un dispositif conforme à un exemple de mode de réalisation de l’invention, comprenant le réseau de neurones RN entraîné.
[0175] Le dispositif comprend un deuxième module d’obtention et un deuxième module d’application (pouvant être le premier module d’obtention 110 et le premier module d’application 120 lorsque le dispositif est le terminal 100 ayant mis en œuvre le procédé d’entraînement), et présente typiquement l’architecture
conventionnelle d’un ordinateur. Le dispositif comprend notamment un processeur, une mémoire morte (de type « ROM »), une mémoire non volatile réinscriptible (de type « EEPROM » ou « Flash NAND » par exemple), une mémoire volatile réinscriptible (de type « RAM »), et une interface de communication.
[0176] La mémoire morte ou la mémoire non volatile réinscriptible constitue un support d’enregistrement conforme à un exemple de mode de réalisation de l’invention, lisible par le processeur et sur lequel est enregistré un deuxième programme d’ordinateur conforme à un exemple de mode de réalisation de l’invention, permettant au dispositif de mettre en œuvre le procédé d’utilisation conforme à l’invention.
[0177] Ce deuxième programme d’ordinateur peut ainsi définir des modules fonctionnels et logiciels du dispositif, configurés pour mettre en œuvre les étapes d’un procédé d’utilisation conforme à un exemple de mode de réalisation de l’invention. Ces modules fonctionnels s’appuient sur ou commandent les éléments matériels du dispositif cités précédemment, et peuvent comprendre notamment ici le deuxième module d’obtention et le deuxième module d’application précités.
[0178] Dans une étape S610, un ensemble de données d’utilisation EDU est obtenu à partir d’une pluralité de paquets réseau par le deuxième module d’obtention.
[0179] Cette étape d’obtention S610 comprend une étape S612 d’obtention d’une trace réseau TR comprenant une pluralité de paquets réseau, typiquement au moyen d’un outil logiciel de capture. Les paquets réseaux obtenus, qui constituent la trace réseau TR obtenue, sont alors enregistrés dans le dispositif. Contrairement à l’étape S310 du procédé d’entraînement, la trace réseau TR obtenue n’est pas enregistrée en association avec des valeurs de propriétés associées.
[0180] L’étape d’obtention S610 comprend aussi typiquement une étape S614 de filtrage d’au moins un paquet réseau de bruit de fond PRB, cette étape de filtrage étant mise en œuvre de la même manière que l’étape de filtrage S314 du procédé d’entraînement de la figure 3, mais relativement à la trace réseau TR obtenue à l’étape S612.
[0181] De plus, l’étape S610 comprend, pour chaque paquet réseau d’un sous ensemble de paquets réseau de la trace réseau TR obtenue à l’étape S612, une étape S616 d’obtention d’un ensemble de données du paquet réseau DPR, cette étape étant mise en œuvre de la même manière que l’étape d’obtention S316 d’un ensemble de données du paquet réseau du procédé d’entraînement de la figure 3 mais relativement à la trace réseau TR obtenue à l’étape S612 et éventuellement filtrée à l’étape S614.
[0182] L’étape S310 comprend en outre une étape S618 de traitement des ensembles de données de paquets réseau obtenus à l’étape S616, de sorte à obtenir l’ensemble de données d’utilisation. Cette étape S618 de traitement est typiquement mise en œuvre de la même manière que l’étape S318 de traitement du procédé d’entraînement de la figure 3.
[0183] Dans une étape S620, l’ensemble de données d’utilisation est appliqué à l’entrée du réseau de neurones RN artificiels entraîné, de sorte à identifier l’usage numérique associé à l’ensemble de données d’utilisation.
[0184] Le réseau de neurones artificiels entraîné délivre alors en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique.
[0185] La valeur de chaque propriété de l’usage numérique est identifiée en déterminant la valeur de la propriété ayant le score de prédiction associé le plus grand et/ou supérieur au score de prédiction des autres valeurs de la même propriété
[0186] L’usage numérique est alors décrit par chaque valeur identifiée de propriété.
[0187] Le procédé d’utilisation peut en outre comprendre une étape S630 d’utilisation de l’usage numérique identifié UNI.
[0188] L’étape S630 utilise typiquement une pluralité d’usages numériques identifiés UNI, chaque usage numérique UNI étant identifié lors d’une mise en œuvre différente des étapes S610 et S620.
[0189] L’étape S630 comprend par exemple une recommandation d’un service personnalisé à l’utilisateur d’un terminal en fonction du ou des usages numériques identifiés au niveau de ce terminal. Par exemple, une application
similaire à une application utilisée (typiquement de même catégorie) peut être recommandée, et/ou une application de catégorie liée à la catégorie de l’application utilisée, et/ou une application utilisée par les utilisateurs dans le même environnement numérique ou un environnement numérique similaire, et/ou une application ayant un fort taux d’utilisation.
[0190] Le dispositif mettant en œuvre le procédé d’utilisation est typiquement une passerelle réseau (ou passerelle domestique), la pluralité de paquets réseau de la trace réseau TR obtenue à l’étape S610 transitant sur un réseau de communications auquel est connectée ladite passerelle, typiquement un réseau de communications local, quel est aussi connecté au moins un terminal.
[0191] Le ou les usages numériques identifiés UNI peuvent alors typiquement avoir été réalisés au niveau du terminal et l’étape S630 peut comprendre une optimisation de la répartition de charges dans le réseau de communications en fonction du ou des usages numériques UNI détectés au niveau du terminal, par exemple un dimensionnement du réseau (i.e. de la bande passante) du terminal en fonction du ou des usages numériques UNI détectés au niveau du terminal.
[0192] En variante ou en complément, l’étape S630 d’utilisation peut comprendre une reconnaissance (ou une détection) d’un utilisateur de réseau de communications local, et éventuellement le chargement d’un profil de l’utilisateur en fonction du ou des usages numériques UNI détectés au niveau du terminal.
[0193] En variante ou en complément, l’étape S630 d’utilisation peut comprendre une allocation des ressources internes de la passerelle en fonction du ou des usages numériques UNI détectés au niveau du terminal.
[0194] En variante ou en complément, l’étape S630 d’utilisation peut comprendre un contrôle d’usage indésirable au niveau du terminal, en fonction du ou des usages numériques UNI détectés au niveau du terminal.
Claims
[Revendication 1] Procédé d'entraînement d'un réseau de neurones (RN) artificiels pour que ledit réseau de neurones (RN) artificiels identifie un usage numérique parmi un ensemble d'usages numériques, chaque usage numérique comprenant un comportement numérique et un environnement numérique, et étant associé à une pluralité de valeurs de propriétés décrivant l'usage numérique, chaque propriété pouvant prendre au moins deux valeurs différentes, ledit procédé comprenant les étapes suivantes : obtention (S310) d'un premier ensemble de données d'entraînement (EDE1) à partir d'une pluralité de paquets réseau, ledit premier ensemble de données d'entraînement (EDE1) étant associé à un premier ensemble de valeurs cibles de propriétés décrivant un premier usage numérique cible (UNC1), application (S330) du premier ensemble de données d'entraînement (EDE1) à l'entrée du réseau de neurones (RN) artificiels, le réseau de neurones (RN) artificiels délivrant en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique, et modification (S340) d'au moins un poids du réseau de neurones (RN) artificiels en fonction du premier ensemble de valeurs cibles de propriétés et des scores de prédictions obtenus.
[Revendication 2] Procédé d'entraînement selon la revendication 1, dans lequel les propriétés définissant l'usage numérique comprennent au moins une propriété parmi les propriétés suivantes : une catégorie d'application utilisée, une application utilisée, une opération mise en oeuvre au niveau de l'application, un état d'interaction de l'utilisateur,
un dispositif utilisé, un système d'exploitation utilisé, un navigateur utilisé, et au moins un débit de connexion Internet.
[Revendication 3] Procédé d'entraînement selon la revendication 1 ou 2, dans lequel le premier ensemble de données d'entraînement (EDE1) comprend, pour chaque paquet de la pluralité de paquets réseau, au moins une donnée d'entraînement parmi les données d'entraînement suivantes : la taille du paquet, une durée entre la réception ou l'envoi du paquet et la réception ou l'envoi d'un paquet précédent d'une même session ou d'un même protocole que ledit paquet, un port source du paquet, un port destination du paquet, une direction du paquet, et un protocole de plus haut niveau dans le paquet.
[Revendication 4] Procédé d'entraînement selon l'une quelconque des revendications 1 à 3, dans lequel les étapes d'obtention (S310) d'un ensemble de données d'entraînement, d'application (S330) de l'ensemble de données d'entraînement et de modification (S340) d'au moins un poids sont réitérées pour un au moins un deuxième ensemble de données d'entraînement associé à un deuxième ensemble de valeurs cibles de propriétés décrivant un deuxième usage numérique.
[Revendication 5] Procédé d'entraînement selon l'une quelconque des revendications 1 à 4, dans lequel l'entraînement utilise un apprentissage multitâche.
[Revendication 6] Procédé d'entraînement selon l'une quelconque des revendications 1 à 5, dans lequel l'obtention (S310) dudit premier ensemble
de données d'entraînement (EDE1) comprend les étapes suivantes : obtention d'un sous ensemble de paquets réseau et, pour chaque paquet réseau dudit sous ensemble : obtention (S316) d'un ensemble de données du paquet réseau (DPR), et traitement (S318) dudit ensemble de données du paquet réseau (DPR), de sorte à obtenir le premier ensemble de données d'entraînement (EDE1), l'étape (S318) de traitement comprenant : pour chaque donnée (DPR) dudit ensemble de données du paquet réseau (DPR) prenant la forme d'une variable catégorielle, conversion de la valeur en un vecteur de valeurs binaires, et pour chaque donnée (DPR) dudit ensemble de données du paquet réseau (DPR) ayant une valeur numérique définie dans un intervalle différent de l'intervalle compris entre 0 et 1, normalisation de la valeur de sorte qu'elle soit définie dans l'intervalle compris entre 0 et 1.
[Revendication 7] Procédé d'entraînement selon la revendication 6, dans lequel le sous ensemble de paquets réseau comprend un maximum de cent paquets réseau.
[Revendication 8] Procédé d'entraînement selon l'une quelconque des revendications 1 à 7, comprenant en outre une étape (S314) de filtrage d'au moins un paquet réseau qui n'est pas associé à une opération mise en oeuvre par un utilisateur au niveau d'une application.
[Revendication 9] Système d'entraînement (100) d'un réseau de neurones (RN) artificiels pour que ledit réseau de neurones artificiels (RN) identifie un usage numérique parmi un ensemble d'usages numériques, chaque usage numérique comprenant un comportement numérique et un environnement numérique, et étant associé à une pluralité de valeurs de
propriétés décrivant l'usage numérique, chaque propriété pouvant prendre au moins deux valeurs différentes, ledit système comprenant : un module d'obtention (110) configuré pour obtenir un premier ensemble de données d'entraînement (EDE1) à partir d'une pluralité de paquets réseau, ledit premier ensemble de données d'entraînement (EDE1) étant associé à un premier ensemble de valeurs cibles de propriétés décrivant un premier usage numérique cible (UNC1), un module d'application (120) configuré pour appliquer le premier ensemble de données d'entraînement à l'entrée du réseau de neurones (RN) artificiels, le réseau de neurones (RN) artificiels délivrant en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique, et un module de modification (130) configuré pour modifier au moins un poids du réseau de neurones (RN) artificiels en fonction du premier ensemble de valeurs cibles de propriétés et des scores de prédictions obtenus.
[Revendication 10] Programme d'ordinateur (PI) comportant des instructions pour l'exécution des étapes du procédé d'entraînement selon l'une quelconque des revendications 1 à 8 lorsque ledit programme est exécuté par un ordinateur.
[Revendication 11] Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur (PI) comprenant des instructions pour l'exécution des étapes du procédé d'entraînement selon l'une quelconque des revendications 1 à 8.
[Revendication 12] Réseau de neurones (RN) artificiels entraîné par le procédé d'entraînement selon l'une quelconque des revendications 1 à 8.
[Revendication 13] Passerelle réseau comprenant un réseau de neurones (RN) artificiels selon la revendication 12.
[Revendication 14] Procédé d'utilisation du réseau de neurones (RN) artificiels selon la revendication 12, pour identifier un usage numérique parmi un ensemble d'usages numériques, ledit procédé d'utilisation comprenant les étapes suivantes : obtention (S612) d'un ensemble de données d'utilisation (EDU) à partir d'une pluralité de paquets réseau, application (S620) de l'ensemble de données d'utilisation (EDU) à l'entrée du réseau de neurones (RN) artificiels.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FRFR2012733 | 2020-12-04 | ||
FR2012733A FR3117295A1 (fr) | 2020-12-04 | 2020-12-04 | Procédé de gestion d’une demande d’accès à un réseau de communication local, procédé de traitement d’une demande d’accès à un réseau de communication local, procédé de demande d’accès à un réseau de communication local, dispositifs, plateforme de gestion, passerelle, terminal utilisateur, système et programmes d’ordinateur correspondants. |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022117976A1 true WO2022117976A1 (fr) | 2022-06-09 |
Family
ID=74554031
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR2021/052193 WO2022117972A1 (fr) | 2020-12-04 | 2021-12-02 | Procédé de gestion d'une demande d'accès à un réseau de communication local, procédé de traitement d'une demande d'accès à un réseau de communication local, procédé de demande d'accès à un réseau de communication local, dispositifs, plateforme de gestion, passerelle, terminal utilisateur, système et programmes d'ordinateur correspondants |
PCT/FR2021/052214 WO2022117976A1 (fr) | 2020-12-04 | 2021-12-06 | Procédé d'entraînement d'un réseau de neurones artificiels pour identifier un usage numérique, et système associé |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR2021/052193 WO2022117972A1 (fr) | 2020-12-04 | 2021-12-02 | Procédé de gestion d'une demande d'accès à un réseau de communication local, procédé de traitement d'une demande d'accès à un réseau de communication local, procédé de demande d'accès à un réseau de communication local, dispositifs, plateforme de gestion, passerelle, terminal utilisateur, système et programmes d'ordinateur correspondants |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240015039A1 (fr) |
EP (1) | EP4256830A1 (fr) |
FR (1) | FR3117295A1 (fr) |
WO (2) | WO2022117972A1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116405321B (zh) * | 2023-06-02 | 2023-08-15 | 中航信移动科技有限公司 | 一种网络数据获取方法、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9336483B1 (en) * | 2015-04-03 | 2016-05-10 | Pearson Education, Inc. | Dynamically updated neural network structures for content distribution networks |
US20200076842A1 (en) * | 2018-09-05 | 2020-03-05 | Oracle International Corporation | Malicious activity detection by cross-trace analysis and deep learning |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090210519A1 (en) * | 2008-02-18 | 2009-08-20 | Microsoft Corporation | Efficient and transparent remote wakeup |
WO2011124853A1 (fr) * | 2010-04-08 | 2011-10-13 | France Telecom | Procede de controle d'un point d'acces d'une passerelle domestique d'un reseau domestique |
US11382174B2 (en) * | 2017-03-31 | 2022-07-05 | Interdigital Ce Patent Holdings, Sas | Method to awaken a network access device from the internet |
-
2020
- 2020-12-04 FR FR2012733A patent/FR3117295A1/fr active Pending
-
2021
- 2021-12-02 WO PCT/FR2021/052193 patent/WO2022117972A1/fr active Application Filing
- 2021-12-02 EP EP21848167.9A patent/EP4256830A1/fr active Pending
- 2021-12-02 US US18/255,841 patent/US20240015039A1/en active Pending
- 2021-12-06 WO PCT/FR2021/052214 patent/WO2022117976A1/fr active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9336483B1 (en) * | 2015-04-03 | 2016-05-10 | Pearson Education, Inc. | Dynamically updated neural network structures for content distribution networks |
US20200076842A1 (en) * | 2018-09-05 | 2020-03-05 | Oracle International Corporation | Malicious activity detection by cross-trace analysis and deep learning |
Non-Patent Citations (1)
Title |
---|
DIMITRIOS MIRAS: "On quality aware adaptation of internet video", 1 January 2004 (2004-01-01), XP055251307, ISBN: 978-1-339-31025-1, Retrieved from the Internet <URL:http://www0.cs.ucl.ac.uk/staff/d.miras/thesis/thesis.pdf> [retrieved on 20160218] * |
Also Published As
Publication number | Publication date |
---|---|
EP4256830A1 (fr) | 2023-10-11 |
WO2022117972A1 (fr) | 2022-06-09 |
US20240015039A1 (en) | 2024-01-11 |
FR3117295A1 (fr) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101728122B1 (ko) | 소셜 네트워크에서 사용자들을 추천하기 위한 방법 및 그 시스템 | |
US9462313B1 (en) | Prediction of media selection consumption using analysis of user behavior | |
US9621726B2 (en) | Computer-implemented system and method for detecting events for use in an automated call center environment | |
US11153619B2 (en) | Cognitively derived multimedia streaming preferences | |
CN111708901A (zh) | 多媒体资源推荐方法、装置、电子设备及存储介质 | |
US20180191849A1 (en) | Method and system for tracking residential internet activities | |
CN107209769B (zh) | 用于内容传递的间歇管理 | |
EP3877934A1 (fr) | Amélioration de la participation d'un utilisateur avec des co-utilisateurs d'un système de mise en réseau | |
EP3170104A1 (fr) | Priorisation de fichiers multimédias sur la base de données sociales et de données de comportement d'utilisateur | |
US9692842B2 (en) | Automatically generating web conference recording bookmarks based on user analytics | |
FR3025909A3 (fr) | Audit de video sur le web | |
EP3087706B1 (fr) | Procédé et système de communication entre navigateurs web, utilisant un environnement de communication unifiée | |
EP1995931A2 (fr) | Système et procédé de mise a jour d'un etat de presence d'un utilisateur sur un terminal par agregation d'informations multi-sources | |
US11470370B2 (en) | Crowdsourcing platform for on-demand media content creation and sharing | |
JP2019532378A (ja) | シングルソースクロスプラットフォームメディア測定装置、デバイス、及び関連方法 | |
FR2851389A1 (fr) | Procede et dispositif de gestion de requetes dans une architecture du type client-serveur | |
CN109245989A (zh) | 一种基于信息分享的处理方法、装置及计算机可读存储介质 | |
WO2022117976A1 (fr) | Procédé d'entraînement d'un réseau de neurones artificiels pour identifier un usage numérique, et système associé | |
FR3118247A1 (fr) | Procédé d’entraînement d’un réseau de neurones artificiels pour identifier un usage numérique, et système associé | |
EP4187446A1 (fr) | Procédés d'entraînement et d'utilisation d'un réseau de neurones artificiels pour identifier une valeur de propriété, et système associé | |
EP1993051A1 (fr) | Composition automatisée de services Web | |
EP1182878A1 (fr) | Système de communication, émetteur, récepteur, méthode utilisant un descripteur de stockage de données | |
FR2929480A1 (fr) | Procede de determination de donnees complementaires relatives a au moins un contenu, procede pour transmettre ces donnees complementaires, dispositif de traitement et serveur d'applications associes | |
FR3129800A1 (fr) | Procédés d’entraînement et d’utilisation d’un réseau de neurones artificiels pour identifier un usage numérique, et système associé | |
CN113542203B (zh) | 一种视频业务dpi识别方法及服务器 |
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: 21840652 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21840652 Country of ref document: EP Kind code of ref document: A1 |