US7853588B2 - Data processing apparatus for propagative correlation - Google Patents
Data processing apparatus for propagative correlation Download PDFInfo
- Publication number
- US7853588B2 US7853588B2 US11/858,069 US85806907A US7853588B2 US 7853588 B2 US7853588 B2 US 7853588B2 US 85806907 A US85806907 A US 85806907A US 7853588 B2 US7853588 B2 US 7853588B2
- Authority
- US
- United States
- Prior art keywords
- matrix
- block
- blocks
- actor
- identifiers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
Definitions
- the invention relates to the bringing together of data which are a priori heterogeneous, for the purpose of drawing from them a concrete proposal, which will be referred to herein as a “propagative correlation”.
- the data in question associate objects from the real world and their perception or evaluation, particularly by people.
- the computing load increases very rapidly, as it is linked to the product of the number of objects by the number of users. The reason for this will be explained later on.
- the invention sets out to improve the situation.
- the invention proposes a data processing apparatus for propagative correlation which comprises:
- the background model comprises a cross-classifier for converting the raw matrix into reclassified matrix blocks in accordance with a criterion that combines a presence metric of the matrix element and a value metric of the matrix element, the selection manager operating on the basis of the rearranged matrix blocks.
- An apparatus of this kind enables extremely satisfactory results to be obtained, as this approach makes it possible to take account of both the actor profiles and the object profiles.
- the classification thus carried out enables a configuration to be obtained which is particularly well suited to the problems of “voids” which are characteristic of this type of evaluation.
- the apparatus described hereinbefore may have the following features:
- FIG. 1 shows a schematic view of the components of the invention
- FIGS. 2 and 3 show a function carried out by an off-line part in FIG. 1 and its results
- FIGS. 4 to 7 show functions carried out by an on-line part in FIG. 1 .
- Annexe 1 shows a particular method of collaborative filling, as will be explained hereinafter.
- the complete set of possible objects has to be broken up into subsets containing a limited number of objects.
- the larger the subsets the more hope there is of finding (at least) two people who have expressed preferences (“evaluation”) regarding “common” objects and are therefore capable of forming the basis for a recommendation.
- evaluation the number of objects in each subset should not be too large. In fact, this presentation is simplified, as it is necessary to have both a large number of common objects and a large number of people, and this is even more unusual.
- FIG. 1 schematically shows the components of a data processing apparatus 2 according to the invention.
- the apparatus 2 comprises an off-line part HL and an on-line part OL.
- the off-line part HL comprises a source of raw data 4 and a background module 6 which accesses the source 4 to produce a matrix model 8 .
- the data source 4 may be constructed in various ways, e.g. by means of a database such as the MovieLens database, or another database such as an LDAP directory.
- the background module 6 comprises a controller 10 which interacts with a cross-classifier 12 and a smoother 14 , as will be explained in the description of FIGS. 2 and 3 .
- the classifier 12 and the smoother 14 are presented here as configurable modules, but they could equally be made in the form of a plurality of specialised modules.
- the on-line part OL comprises a selection manager 16 which interacts with a user 18 on the one hand and with a set of on-line matrices 20 and an updating stack 22 on the other hand, to carry out evaluations which are here termed recommendations, as will be explained more fully in the description of FIG. 4 .
- the user 18 may be connected directly to a computer or a terminal that uses the apparatus 2 , or he may be connected to the latter through an Internet server using a selection manager 16 , by means of a web service, for example. Numerous other implementations are possible for the selection manager 16 .
- the set 20 is a copy of the matrix model 8 or at least can be directly deduced therefrom.
- the stack 22 may be in the form of a table, a conventional stack or any other suitable form.
- the background module 6 When the background module 6 has finished calculating the model 8 , the data from the stack 22 are integrated into the data source 4 and the matrix 20 is updated with the model 8 that has just been calculated. Then, the background module 6 reiterates the calculation of the model 8 to take account of the new data.
- the matrix model 8 will now be explained further by reference to FIGS. 2 and 3 .
- the raw data available are taken from the source 4 .
- the controller 10 calls up the classifier 12 and carries out a cross-classification on these raw data, using a criterion based on a metric that reflects the presence or absence of a matrix element for each of the rows and columns.
- Cross-classification is a known method of sorting which generally consists of simultaneously crossing the columns and rows of a data table according to a selected criterion.
- the cross-classification in step M 1 is double, so as to obtain as output a classified raw matrix 30 which is made up of matrix blocks which are smaller in size, on the one hand, and transition matrices which enable the original matrix to be retrieved.
- the matrix blocks may be totally filled or may also have non-filled matrix elements.
- the matrix blocks in the matrix 30 constitute a simplified view of the starting matrix. Thus, where there may have been blocks of 1000*1000, for example, there are now blocks of 10*10.
- the double cross-classification is accompanied by the creation of a transition matrix, enabling the original matrix to be reconstituted from the reduced blocks obtained.
- the basic matrix is extremely hollow. This means that a large proportion of the matrix elements of this matrix are empty.
- This first metric used to classify the data, based on the presence or absence of the matrix element, is intended to make it possible to distinguish between the groups that have a large amount of information from the others.
- a step M 2 the controller 10 processes all the blocks of the matrix 30 by calculating the density of the latter. This density is representative of the matrix element presence/absence profile in each block.
- a test M 3 relating to the density of each block determines the type of filling which is then applied to the empty elements of this block.
- the background module builds a model 8 which contains no empty matrix element, and thus makes it possible to have a recommendation of each object for each actor. It would nevertheless be possible to fill the model 8 only partially.
- the controller 10 calls up the classifier 12 again in a step M 4 and again carries out a double cross-classification on this block, this time with a criterion based on a metric reflecting the value of the matrix elements of this block.
- This classification results in an intermediate classified dense block 32 ) and the corresponding transition matrices.
- the controller 10 calls up the smoother 14 in a step M 5 .
- the smoother 14 applies the algorithm described in Annexe 1 until a stability criterion has been achieved.
- R denotes the matrix of the scores and R(u,a) is the score given by the actor u to the object a.
- the score P(u) is given to all the objects scored by the actor u and the score U(a) is given to all the actors who have scored the object a.
- the iterative calculation is initialised with two identity matrices, called C 0 u (correlations between actors) and C 0 p (correlations between objects).
- C 0 u correlations between actors
- C 0 p correlations between objects
- step n the correlation matrix between actors is scored Cnu
- step np the correlation matrix between objects is scored Cnp.
- the calculation of the matrices Cnu and Cnp is carried out by crossing on the basis of the matrices calculated in the previous step.
- the matrix Cnu calculated in step n is established on the basis of the matrix C(n ⁇ 1)p in step (n ⁇ 1).
- the matrix Cnp also calculated in step n, is established on the basis of the matrix (C(n ⁇ 1)u in step (n ⁇ 1) 21.
- the formulae 12 to 14 and 22 to 24 specify the elements of formulae 11 and 21.
- step M 5 consists in filling the empty matrix elements on the basis of selected adjacent matrix elements (the objects scored by the actors for the matrix Cnu, and the actors having scored the objects for the matrix Cnp).
- the filling is carried out by correlation according to the rows of the matrix during a first stage (Cnu), then according to the columns during a second stage (Cnp).
- the empty matrix elements are thus filled by iteration which crosses the values of adjacent matrix elements, thus constituting filling by correlation along both the rows and the columns simultaneously.
- This algorithm results in a filled dense block 34 .
- the controller 10 calls up the smoother 14 in a step M 6 , the result of which is a filled hollow block 36 .
- the filling in step M 6 is a so-called “averaged” filling, i.e. it consists in giving the empty matrix elements the value of the average of the non-empty elements in this block, if there are any, and in filling all the empty matrix elements on the basis of an average of the matrix elements of the surrounding blocks if the block contains only empty matrix elements.
- a test is carried out to see whether all the blocks in the matrix 30 have been treated.
- the result obtained is a matrix of filled blocks 38 which will serve as a basis for the matrix model 8 .
- the controller establishes the set of on-line matrices 20 .
- FIG. 3 specifies the set of matrices 20 .
- the set of matrices 20 comprises the main matrix 38 , a matrix or table 40 referred to as the Table_GU and a matrix or table 42 referred to as the Table_GI.
- the matrix 38 contains rows denoting groups of actors and columns denoting groups of objects.
- the matrix 40 contains rows denoting actor identifiers and columns designating groups of actors.
- the matrix 42 contains groups of objects in rows and object identifiers in columns.
- the matrices 40 and 42 are obtained from transition matrices which are produced during the various double cross-classifications, and are constructed at the same time as the matrix M.
- transition matrices 40 and 42 are extremely hollow, and contain only one non-zero value per row for the matrix 40 and only one non-zero value per column for the matrix 42 .
- FIG. 4 shows an example of an evaluating function based on the set 20 , which makes it possible to evaluate a value of a vote on an object which has an object identifier idIt by a user who has an actor identifier idUt, the user obviously not having evaluated this object before.
- the evaluating function of the selection manager 16 is based on having previously obtained, in a step E 1 , a pair of identifiers (idUt, idIt) of an actor on the one hand and an object on the other hand.
- the manager recovers, from the tables Table_GU and Table_GI (the matrices 40 and 42 ), the row corresponding to idUt and the column corresponding to idIt, and stores them in two vectors $gu and $gi, respectively.
- a step E 4 the evaluation is defined as the product of $gu*M*$gi. This formula is based on the hypothesis that the sum of the terms in the rows in the table Table_GU and the sum of the terms in the columns in the table Table_GI are both equal to 1,as the result of a standardisation carried out during the generation of these two tables.
- the matrices 40 and 42 are hollow, this amounts to a multiplication.
- the sole interest of this matrix formalisation is in a classification with weighting as mentioned above.
- the value evaluated is then sent back in a step E 5 .
- the evaluating function described above makes it possible to implement an important number of functions for the user 18 .
- the user can directly designate an object for which he wishes to obtain an evaluation, but he may also designate a class of objects, which the selection manager 16 can selectively associate with object identifiers and send back their evaluations.
- the user 18 may also supply a selected evaluation and obtain from the selection manager 16 a list of objects that correspond to this evaluation. It is also possible to combine a number of these requests to provide greater flexibility of use.
- the user designated by the identifier idUt must have votes in the data source 4 or in the stack 22 . Otherwise, it is not possible to assign this user to a group in the table Table_GU and an evaluation can only be made for example based on the average of all the groups in the table Table_GU.
- the selection manager 16 uses a Vote function shown in FIG. 5 .
- step V 1 a user with an actor identifier idUt provides the selection manager 16 with a vote of value $val relating to an object with the object identifier idIt
- the triplet (idUt, idIt, $val) is first of all recorded in the stack 22 in a step V 2 , for subsequent integration in the source 4 and in the model 8 .
- the selection manager updates the matrices 40 and 42 on the basis of the actor identifier idUt and object identifier idIt, respectively.
- the steps V 3 and V 4 may also be carried out selectively and at separate times, in order to take account of the profile of a user or the product to which the vote relates.
- the first votes of a user (or the first votes received by a product) have a primordial influence on its classification in a given group of actors (or a given group of objects, respectively).
- the background module can therefore apply step V 3 (or step V 4 , respectively) selectively and/or offset in time, for example every ten votes, so as to lighten the computing load, and thus improve the performance of the application.
- Updating is carried out using an Update function described in connection with FIG. 6 .
- a step U 1 the function is called up with, as argument, the table which is to be updated and the identifier number id of the row or column to be updated. This updating could also be carried out with a single function called up with the two identifiers.
- a test is carried out to see whether the table to be updated is that of the groups of actors (matrix 40 or Table_GU) or that of the groups of objects (matrix 42 or Table_GI).
- a step U 3 the values of the matrix elements associated with id in the source 4 and those contained in the stack 22 are combined in a vector describing all the votes (and non-votes) of the user linked to id.
- step U 4 The vector thus formed is then “projected” in a step U 4 onto M*Table_GI, in order to determine the group of actors to which this user should be attached.
- step U 4 will be described hereinafter with reference to FIG. 7 .
- a step U 5 the values of the matrix elements associated with id in the source 4 and those contained in the stack 22 are combined in a vector describing all the votes (and non-votes) relating to the object linked to id.
- step U 6 The vector thus formed is then “projected” in a step U 6 onto Table_GU*M, in order to determine the group of objects to which this object should be attached.
- step U 6 One embodiment of step U 6 will be described hereinafter with reference to FIG. 7 .
- a step P 1 the Project function shown in FIG. 7 receives as argument the table which is to be updated, the identifier of the row or column in question, and the votes vector described in connection with FIG. 6 .
- a step P 2 the type of table is determined and designates the operation which will be carried out. If it is the table Table_GU (matrix 40 ) that is involved, then the projection is carried out in a step P 3 , by forming the product of M*Table_GI*$vect. The column vector $vect2 which results from this product is the “projection” described hereinbefore.
- the table Table_GU is then updated in a step P 4 by updating the id row of this table, in which the only non-zero term is the one whose column corresponds to the index that represents the maximum value of $vect2.
- the table Table_GU keeps the same form as before.
- steps P 5 and P 6 are carried out, in operations similar to those in steps P 3 and P 4 , which will become obvious in the light of FIG. 6 and the foregoing description.
- step P 3 the vector $vect is a row vector
- step P 5 the vector $vect is a column vector
- the invention also relates to a computer program code for operating the apparatus described above, and a data carrier for such a program.
- the model is obtained by means of two double cross-classifications with criteria based on a presence metric of the matrix element on the one hand and a value metric of the matrix element on the other hand.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
-
- a memory for storing a raw matrix that crosses object identifiers and actor identifiers, in the presence or absence of a quantified matrix element,
- a background module capable of converting the raw matrix into rearranged matrix blocks as a function of a criterion linked to the quantified matrix element, and
- a selection manager capable, on receiving an input actor identifier, of looking up this input actor identifier in a first table which contains links, each of which associates an actor identifier and one or more matrix blocks associated with this actor identifier, and of presenting information depending on the contents of the matrix block or blocks associated with the input actor identifier.
-
- the background module may comprise a controller for calling up the cross-classifier with a criterion linked to the presence of the matrix element, in order to collate both the actor identifiers by the matrix element presence/absence profile according to the object identifiers, and the object identifiers by the matrix element presence/absence profile according to the actor identifiers, in order to convert the raw matrix into intermediate matrix blocks;
- the controller may iteratively and selectively call up the cross-classifier with a criterion linked to the value of the matrix element over at least some of the intermediate matrix blocks which have matrix element presence/absence profiles of a selected density to convert them into reclassified matrix blocks;
- the background module may further comprise a smoother capable of filling the emptied matrix elements of a given matrix block, as a function of a criterion linked to the density of the presence/absence profile of matrix elements of this block, to obtain a filled dense block;
- the smoother can selectively fill, by propinquity, the empty matrix elements of a matrix block which has a density of a chosen level;
- the smoother can fill the empty matrix elements of a matrix block on the basis of an iteration that selectively crosses the values of adjacent matrix elements;
- the smoother can fill, by averaging, the empty matrix elements of a matrix block which has a density of a chosen level; and
- the selection manager can present the information as a function of a second table, which contains links, each of which associates a matrix block and one or more object identifiers.
Claims (10)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0608861A FR2906910B1 (en) | 2006-10-10 | 2006-10-10 | COMPUTER DEVICE FOR PROPAGATIVE CORRELATION |
| FR0608861 | 2006-10-10 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20080086487A1 US20080086487A1 (en) | 2008-04-10 |
| US7853588B2 true US7853588B2 (en) | 2010-12-14 |
Family
ID=38089207
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US11/858,069 Active 2028-09-02 US7853588B2 (en) | 2006-10-10 | 2007-09-19 | Data processing apparatus for propagative correlation |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US7853588B2 (en) |
| EP (1) | EP1912170A1 (en) |
| FR (1) | FR2906910B1 (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140278992A1 (en) * | 2013-03-15 | 2014-09-18 | Nfluence Media, Inc. | Ad blocking tools for interest-graph driven personalization |
| US20160323266A1 (en) * | 2014-01-23 | 2016-11-03 | Siemens Aktiengesellschaft | Method, management apparatus and device for certificate-based authentication of communication partners in a device |
| US9619567B2 (en) | 2011-06-06 | 2017-04-11 | Nfluence Media, Inc. | Consumer self-profiling GUI, analysis and rapid information presentation tools |
| US11880414B2 (en) * | 2017-08-07 | 2024-01-23 | Criteo Technology Sas | Generating structured classification data of a website |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB0821813D0 (en) * | 2008-11-28 | 2009-01-07 | Listening Company The Ltd | Communications System |
| CN104238994B (en) * | 2014-09-01 | 2017-07-04 | 中国航天科工集团第三研究院第八三五七研究所 | A kind of method for improving coprocessor operation efficiency |
| CN110554664A (en) * | 2018-06-04 | 2019-12-10 | 联合汽车电子有限公司 | Full-automatic product model changing method |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20010049678A1 (en) * | 1997-06-19 | 2001-12-06 | Fujitsu Limited | Data display apparatus and method for displaying data mining results as multi-dimensional data |
| US20040158497A1 (en) | 2003-02-06 | 2004-08-12 | Brand Matthew E. | On-line recommender system |
| US20060036640A1 (en) | 2004-08-03 | 2006-02-16 | Sony Corporation | Information processing apparatus, information processing method, and program |
| US7194483B1 (en) * | 2001-05-07 | 2007-03-20 | Intelligenxia, Inc. | Method, system, and computer program product for concept-based multi-dimensional analysis of unstructured information |
-
2006
- 2006-10-10 FR FR0608861A patent/FR2906910B1/en active Active
-
2007
- 2007-09-19 US US11/858,069 patent/US7853588B2/en active Active
- 2007-10-04 EP EP07291207A patent/EP1912170A1/en not_active Withdrawn
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20010049678A1 (en) * | 1997-06-19 | 2001-12-06 | Fujitsu Limited | Data display apparatus and method for displaying data mining results as multi-dimensional data |
| US6470352B2 (en) * | 1997-06-19 | 2002-10-22 | Fujitsu Limited | Data display apparatus and method for displaying data mining results as multi-dimensional data |
| US7194483B1 (en) * | 2001-05-07 | 2007-03-20 | Intelligenxia, Inc. | Method, system, and computer program product for concept-based multi-dimensional analysis of unstructured information |
| US20040158497A1 (en) | 2003-02-06 | 2004-08-12 | Brand Matthew E. | On-line recommender system |
| US20060036640A1 (en) | 2004-08-03 | 2006-02-16 | Sony Corporation | Information processing apparatus, information processing method, and program |
Non-Patent Citations (3)
| Title |
|---|
| Corresponding French Search Report dated Jun. 8, 2007. |
| Sarwar et al., "Item-Based Collaborative Filtering Recommendation Algorithms" Proceedings of the International Conference on the World Wide Web, May 1, 2001, pp. 285-295, XP002228384. |
| Yang et al., "An improved Collaborative Filtering Method for Recommendations' Generation" 2004 IEEE International Conference on Systems, Man and Cybernetics, vol. 5, Oct. 10, 2004, pp. 4135-4139, XP010772976. |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9619567B2 (en) | 2011-06-06 | 2017-04-11 | Nfluence Media, Inc. | Consumer self-profiling GUI, analysis and rapid information presentation tools |
| US20140278992A1 (en) * | 2013-03-15 | 2014-09-18 | Nfluence Media, Inc. | Ad blocking tools for interest-graph driven personalization |
| US20160323266A1 (en) * | 2014-01-23 | 2016-11-03 | Siemens Aktiengesellschaft | Method, management apparatus and device for certificate-based authentication of communication partners in a device |
| US11880414B2 (en) * | 2017-08-07 | 2024-01-23 | Criteo Technology Sas | Generating structured classification data of a website |
Also Published As
| Publication number | Publication date |
|---|---|
| FR2906910B1 (en) | 2008-12-26 |
| FR2906910A1 (en) | 2008-04-11 |
| EP1912170A1 (en) | 2008-04-16 |
| US20080086487A1 (en) | 2008-04-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7853588B2 (en) | Data processing apparatus for propagative correlation | |
| US12003393B2 (en) | Parallel computational framework and application server for determining path connectivity | |
| McNee et al. | Interfaces for eliciting new user preferences in recommender systems | |
| US8185561B1 (en) | Scalable user clustering based on set similarity | |
| Babaioff et al. | A knapsack secretary problem with applications | |
| Koutsoupias et al. | Approximate equilibria and ball fusion | |
| US20090012833A1 (en) | Search engine for most helpful employees | |
| US20140215045A1 (en) | Method and device for resource matching in vpc migration | |
| US20140258160A1 (en) | Systems and methods for social graph data analytics to determine connectivity within a community | |
| US20090024548A1 (en) | Compatibility Scoring of Users in a Social Network | |
| WO2005022350A2 (en) | Methods and systems for multi-participant interactive evolutionary computing | |
| CN112822051B (en) | Service acceleration method based on service perception | |
| US8260763B2 (en) | Matching service entities with candidate resources | |
| Sonnek et al. | Reputation-based scheduling on unreliable distributed infrastructures | |
| CN113010255A (en) | Interaction method and device based on binding session group and computer equipment | |
| US7191107B2 (en) | Method of determining value change for placement variable | |
| CN117118829A (en) | A networking method, networking device, electronic equipment and storage medium | |
| Barat | Scenario playing for critical success factor analysis | |
| CN114900556A (en) | Cloud interconnection method and system based on service preference learning in multi-cloud heterogeneous environment | |
| US20020111839A1 (en) | Method and system for forming dynamic vendor coalitions in collaborative e-commerce | |
| El-Fakih et al. | A method and a genetic algorithm for deriving protocols for distributed applications with minimum communication cost | |
| CN112667895B (en) | Recommended item queue determining method, device, equipment and storage medium | |
| US20060215668A1 (en) | Access point management | |
| US20240039833A1 (en) | Multi-path routing method and apparatus oriented to supercomputing user experience quality | |
| Liu et al. | Generating supplemental content information using virtual profiles |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: CRITEO, FRANCE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LE OUAY, FRANCK;REEL/FRAME:019891/0861 Effective date: 20070713 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| CC | Certificate of correction | ||
| FPAY | Fee payment |
Year of fee payment: 4 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552) Year of fee payment: 8 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |
|
| AS | Assignment |
Owner name: CRITEO TECHNOLOGY SAS, FRANCE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CRITEO SA;REEL/FRAME:062119/0150 Effective date: 20221121 Owner name: CRITEO TECHNOLOGY SAS, FRANCE Free format text: ASSIGNMENT OF ASSIGNOR'S INTEREST;ASSIGNOR:CRITEO SA;REEL/FRAME:062119/0150 Effective date: 20221121 |