WO2017218216A1 - System and method for user traits recognition and prediction based on mobile application usage behavior - Google Patents
System and method for user traits recognition and prediction based on mobile application usage behavior Download PDFInfo
- Publication number
- WO2017218216A1 WO2017218216A1 PCT/US2017/035725 US2017035725W WO2017218216A1 WO 2017218216 A1 WO2017218216 A1 WO 2017218216A1 US 2017035725 W US2017035725 W US 2017035725W WO 2017218216 A1 WO2017218216 A1 WO 2017218216A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- user
- traits
- events
- sequence
- extent
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0255—Targeted advertisements based on user history
Definitions
- Exemplary methods described herein may be used to identify users of an online application, such as an online game, based on characteristics of the users' interactions with the application.
- a first plurality of users interacts with the online software application.
- a sequence of events is collected, where each of the events represents an interaction of a corresponding user with the application.
- a set of user traits is selected. Traits have the property that the degree to which a particular trait is demonstrated by a user can be determined based on the sequence of events corresponding to that user.
- the selected set of traits is selected (e.g. from among a plurality of available traits) such that the degree to which each respective user demonstrates the selected traits is substantially unique to that respective user.
- Respective user profiles are stored for each of a second plurality of users.
- Each of the user profiles identifies an extent to which the selected traits are demonstrated by the respective user.
- the second plurality of users may include all, some, or none of the users in the first plurality (who were used in selecting a set of traits).
- the selected set of traits and/or individual user profiles can be updated to reflect changing usage patterns, and new profiles can be added as events are collected from new users.
- the user profiles are used to identify users of online applications even without receiving other personally-identifiable information from the users. For example, in one such method, a first sequence of events is collected representing a first user's interaction with the application. Based on the first sequence of events, a determination is made regarding the extent to which the user demonstrates the selected traits. The first user is then identified by matching the extent to which the user demonstrates the selected traits with one of the stored user profiles. The matching may provide a means of authenticating the user of the mobile device, identifying a user to provide customized content, pairing different users of the mobile applications, and the like.
- the matching may also provide for determining divergence and similarities between the identified user and the traits stored in the user profiles. After detecting a divergence, the user may be directed to a back-up authentication method, the set of selected user traits stored in the profile may be updated, and the like. BRIEF DESCRIPTION OF THE DRAWINGS
- FIG. 1 is a block diagram illustrating the functional architecture of an exemplary embodiment.
- FIG. 2 is a block diagram illustrating the functional architecture of a user traits learning system according to an exemplary embodiment.
- FIG. 3 is a flow diagram illustrating the steps performed in some embodiments for computing distinct user behaviors.
- FIG. 4 is a flow chart illustrating steps that may be performed by a user prediction module in some embodiments.
- FIG. 5A depicts a first method performed in some embodiments.
- FIG. 5B depicts a second method performed in some embodiments.
- FIG. 6 illustrates an exemplary wireless transmit/receive unit (WTRU) that may be employed as a user device, such as a mobile device, in some embodiments.
- WTRU wireless transmit/receive unit
- FIG. 7 illustrates an exemplary network entity that may be employed as a user traits learning module and/or user prediction module in some embodiments.
- Systems and methods disclosed herein address the discovery of interaction patterns between users and applications for the purpose of identifying traits that can be used for discriminating between different users. Such traits are typically associated with a user profile and, hence, this disclosure relates generally to the fields of user profiling, profile formulation and analysis. Systems and methods disclosed herein provide the ability to associate specific interaction behavior with distinct users.
- Systems and methods that enable accurate identification of users based on the way those users interact with one or more applications running on a computing device offer many advantages.
- such systems and methods may be used to implement a continuous authentication service that compares current application interaction usage with previously-learned usage patterns for the purpose of identifying the user and deciding whether the user is authorized to carry out such interactions.
- a continuous authentication service that compares current application interaction usage with previously-learned usage patterns for the purpose of identifying the user and deciding whether the user is authorized to carry out such interactions.
- personalized services can be offered by predicting a user's personality profile based on observed application usage information.
- users with similar (or dissimilar but complementary) traits may be dynamically paired for the purpose of enhancing the overall playing experience of the group or making the game more challenging.
- Systems and methods disclosed herein perform automated and accurate recognition of distinguishing user characteristics, referred to as traits, using collected information related to mobile application or online software application usage behavior.
- user traits may correspond to quantifiable character/personality characteristics (e.g., patient, persistent, leader, rude), interests and preferences, specific skills (e.g., attacking strategies in Clash of Clans), or specific interaction behavior (e.g., going to an easy game map to collect resources before moving to a more challenging map).
- An exemplary method may include steps performed in the following phases: (1) a learning phase during which distinct mobile application interactions are identified and associated with specific user traits, and (2) a runtime phase during which current mobile application interactions are used for predicting user traits associated with these interactions.
- Exemplary embodiments employ ensembles of machine learning techniques for identifying user traits that can be consistently found in application usage behavior of single users, yet can discriminate between different users.
- GUI graphical user interface
- SDK software development kit
- Exemplary methods may also be implemented using a software component that either resides on the same device as the application itself or is part of the application itself.
- Machine learning models and methods process collected mobile application usage information (in batch or online mode) and construct user trait profiles.
- An optional input mechanism such as a graphical user interface, allows an authorized user to associate specific application usage behavior with specific user traits or assign specific semantic labels to computed traits information.
- Machine learning models and methods process real-time mobile application usage information and predict user trait profiles associated with such information.
- a notification mechanism alerts the mobile application or a third party about divergence or similarity between recent mobile application usage information and a user trait profile.
- Exemplary embodiments may be employed as a means to associate application usage behavior to specific individuals.
- user behaviors may be captured in the form of specific event sequences that are generated by the application(s) using an SDK or some other means.
- Application event sequences corresponding to user interactions may be processed by machine learning methods and algorithms for the purpose of identifying distinct patterns (with a confidence score) for each user. Such distinct patterns may then be used for predicting whether currently observed application behavior belongs to a specific user, subject to a confidence threshold.
- a prediction of whether a currently observed application behavior belongs to a specific user may be used for several purposes, including one or more of the following.
- an anomaly detection service where divergence from learned user traits for one or more applications triggers specific actions.
- such service may be used for implementing a continuous active authentication mechanism where triggered actions may include the request for explicit user authenti cati on/ authorizati on .
- Exemplary embodiments disclosed herein may be employed as a means to identify mobile application behavior shared among users.
- Mobile applications may interact with third party services for the purpose of offering custom content and/or services to end users. Such interactions are typically driven by information collected about users, including specific user interactions with such applications. Collected information may, however, include sensitive data that is usable to uniquely identify an individual. To prevent this from occurring, users that exhibit similar application behavior can be grouped, and then the group's behavior may be shared with third party services.
- Embodiments disclosed herein make it possible to ensure that computed group behavior information cannot be used for identifying information that reflects specific user traits which may be associated with a physical entity, enabling user anonymity similar to the k-anonymity concept.
- Systems and methods disclosed herein utilize a user profiling component.
- Machine learning and data mining techniques are proposed for computing subsets of event patterns generated by user actions within a game or application that identify distinct user behavior.
- Exemplary embodiments may be employed in an online gaming context where distinct user traits may be associated with specific user game actions.
- Such associations may be used in numerous ways. For example, the associations may be used for adjusting a player's experience. Once the engagement style of players (e.g., competitive, collaborative) has been determined, gamers may be paired with other gamers who have similar (or dissimilar but complementary) styles for the purpose of enhancing gamer satisfaction. Furthermore, such information may be used for guiding future game offerings and incorporating monetization opportunities in a game.
- Exemplary embodiments may further be used in an advertising and marketing context.
- advertisement/marketing content may be selected that matches a user's traits profile.
- events generated in response to user interactions with a mobile application e.g., browsing of specific items or query terms
- Exemplary embodiments may be applied in an education context where education applications generate events associated with achievements and progress made toward specific learning objectives. Educators may assess progress made by each individual student by receiving notifications related to divergence of current student activity from expected activity or similarity of current student activity with expected activity. Furthermore, methods disclosed herein may be used for detecting cheating when current student interactions with an education application result in the prediction of user traits that are either not consistent with the traits of this student or common across a number of students.
- Clustering is typically used for grouping users based on discovered common patterns. Specific application knowledge is used for understanding the behavior exhibited by each computed cluster.
- Exemplary embodiments perform application-specific identification based on a user's interactions with a specific application, such as in-app purchase transactions, completion of a specific level in a game, actions taken before attacking an opponent, etc., rather than interaction based on device-level input (e.g., touch screen, mouse, gesture) or operating environment (e.g., GPS coordinates, active processes, time or date).
- device-level input e.g., touch screen, mouse, gesture
- operating environment e.g., GPS coordinates, active processes, time or date.
- Exemplary embodiments may make use of technology relating to recommendation services, such as those utilized by major retailers (e.g., Amazon). These services cluster users based mostly on their transactions (e.g., book purchases) instead of focusing on learning specific user traits.
- Example recommender systems are disclosed in Adomavicius, Gediminas, and Alexander Tuzhilin. "Toward the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions.” Knowledge and Data Engineering, IEEE Transactions on 17, no. 6 (2005): 734-749.
- a recommender system estimates ratings for items that have not been seen by a user based on the ratings given by this user to other items and other information, such as similarity between users in terms of common item ratings, demographics, and preferences. Once ratings have been estimated, the recommender system recommends to the user items with the highest ratings. While some of the techniques used by recommender systems may be employed in embodiments disclosed herein, the goal of a recommender system may be different than the goal of an exemplary embodiment. In particular, recommender systems learn about past user behavior in order to suggest specific items (e.g., books or movies) that the user may be interested in. In contrast, at least some of the embodiments disclosed herein focus on identification of a specific user based on interactions with a mobile application.
- Exemplary embodiments may make use of technology relating to characterizing user mobile application behavior by analyzing network traffic.
- Such technology is discussed in Xu, Qiang, Jeffrey Erman, Alexandre Gerber, Zhuoqing Mao, Jeffrey Pang, and Shobha Venkataraman. "Identifying diverse usage behaviors of smartphone apps.”
- ACM 2011 and also in Tongaonkar, Alok, Shuaifu Dai, Antonio Nucci, and Dawn Song. "Understanding mobile app usage patterns using in-app advertisements.” In Passive and Active Measurement, pp. 63-72. Springer Berlin Heidelberg, 2013.
- Some of the proposed techniques are based on the User-Agent field in HTTP headers, while others use information associated with visited sites.
- Several publications address user personality characterization based on either specific user actions (e.g., Bachrach, Yoram, Michal Kosinski, Thore Graepel, Pushmeet Kohli, and David Stillwell. "Personality and Patterns of Facebook Usage.” In Proceedings of the 4th Annual ACM Web Science Conference, pp. 24-32. ACM, 2012) or list of applications stored on their mobile devices (e.g., Seneviratne, Suranga, Aruna Seneviratne, Prasant Mohapatra, and Anirban Mahanti.
- Exemplary embodiments may make use of technology from the area of continuous/active authentication using behavioral biometrics.
- One such technology is disclosed in PCT Patent Application Publication No. WO2014205148, "Continuous Authentication Tool.”
- Existing research and proposed solutions focus on interactions between a user and the available input methods for a device (e.g., touch screen, keyboard, and gesture).
- exemplary embodiments analyze how users interact with the various aspects of an application.
- Exemplary embodiments may make use of technology from the area of utilizing an SDK for the purpose of collecting and analyzing application usage events.
- Such technologies are disclosed in Patro, Ashish, Shravan Rayanchu, Michael Griepentrog, Yadi Ma, and Suman Banerjee. "Capturing Mobile Experience in the Wild: A Tale of Two Apps.” In Proceedings of the ninth ACM conference on Emerging networking experiments and technologies, pp. 199-210. ACM, 2013 and as used by Google Analytics.
- Exemplary embodiments relate to identifying user behavior under certain circumstances and using such information for either identifying a user interacting with an application on a specific device or identifying the same user across different devices.
- Exemplary embodiments may make use of technology such as that described in U.S. Patent Application Publication No. 2014/0201120, "Generating Notifications Based on User Behavior”.
- Such technology addresses user behavior by collecting user behavior data from a device (based on user interaction with the device) and comparing such data against learned user behavior for the purpose of issuing alerts when a discrepancy is detected.
- User interactions include: grammar, punctuation, typing speeds, spelling errors, vocabulary, application usage, online activity, and communicating with third-party devices.
- sensor input can be used for this, including magnetometer, location, light, accelerometer, thermometer, proximity, or a touch screen.
- Embodiments disclosed herein focus on identifying specific behavior patterns of individual users based on information collected about user actions within one or more applications. Such embodiments allow user-specific actions to be taken when required. Furthermore, while approaches disclosed herein may be used for human personality traits, the disclosure is not restricted to only such traits.
- an application may be a software application or tool with one or more of the following characteristics.
- the application may be developed and managed by a third party called a developer that is separate from an end user.
- the application may be rendered on a computer device such as a gaming console, desktop computer, mobile device, etc.
- the application may be used by an end user by either downloading it to a mobile device (in the case of a native application) or interacting with it over a communications network using a Web browser or some other means.
- the application may be instrumented to send in-application events to a user traits management system.
- the application may be capable of receiving notification by the user traits management system and taking specific actions, if required.
- the terms user, player, and gamer are employed herein to refer to the end user (depending on the embodiment).
- gameplay is used to refer to the act of engagement with the application by the user (where the application may be a game or some other form of information/entertainment).
- user traits models and user profiles are used interchangeably.
- end user does not need to correspond to a specific physical entity. Rather, it corresponds to an entity that can be discerned from other entities based on application interactions.
- traits is used herein to refer to a collection of measurable properties that are created by the developer or generated by machine learning techniques.
- in-application events contain a property that can uniquely identify either the end user or the device the end user is using for interaction with the application.
- the unique device ID value supported by iOS and Android devices can be used for this purpose.
- systems and methods disclosed herein may detect that the same distinct user behavior is associated with two or more different device IDs and, therefore, may treat these IDs as aliases for the same end user.
- embodiments disclosed herein are able to detect distinct behaviors. Embodiments described herein may be employed in, for example, systems such as those described in Falchuk, B., E.
- Exemplary embodiments employ one or more of the following components.
- An SDK (or other means) for collecting events associated with specific user interactions with a mobile application and, optionally, for interacting with the application via a trigger feedback mechanism.
- Machine learning techniques for analyzing collected events and identifying distinct traits (e.g., event sequence patterns, event timing relationships).
- An ensemble of machine learning techniques may be used for identifying distinct traits that can be used for discriminating between users. Such techniques may include one or more of the following.
- Sequential pattern mining may be used for finding traits that appear in only a fraction of user application behavior. These traits are based on the event sequences including the timing information between events and the current context. For example, sequential pattern mining may detect patterns in user behavior, such as a user having a pattern of selling merchandise within 5 minutes of completing a level.
- Statistical data mining may be used for measuring distributions of event sequences that differ between users. These distributions may be based on a subset of the events that may be located in critical locations of the application, timing between events, and any available context (e.g., time of day, location, device type). For example, the distribution of moves a player makes in a fighting game may be determined based on the context of the character selected in the game.
- Supervised learning may be used for using event patterns of interest, such as purchases, as labels to generate traits. These traits correspond to combinations of features that are learned from the supervised problem and can include context, event sequences, and timing information. These traits may be related to important aspects of the application based on their correlation with the labels.
- traits that are identified and tracked are representative of a consistent property of some users, such that the traits appear repeatedly across user's events and sessions.
- traits that show spurious correlation are identified and disregarded. This can be accomplished through various techniques such as using holdout sets of events as a means of confirming that a trait is consistent across a significant fraction of users. While it can be expensive and statistically problematic to test too many traits, limiting analysis to traits generated by the machine learning techniques makes the problem tractable.
- Another exemplary criterion for selecting traits to be tracked is that the selected traits can discriminate between users.
- a trait is discriminative based on how it divides up the current users. For example, a trait can be true for 50% of the users and false for 50% of the users.
- traits do not need to be binary, for example the distance between distributions used for statistical data mining traits will return a score.
- a score can be used to discriminate users by binning it into various ranges. These ranges can be automatically learned to control for consistency across user events.
- a set of traits may be selected that uniquely specifies a user.
- the degree to which each trait is demonstrated by a user is determinable based on a collected sequence of events.
- the traits may be selected such that the degree to which each respective user demonstrates the selected traits is substantially unique to that respective user.
- a "greedy" approach may be used by selecting the next trait that has maximum discriminative power by separating the users into equal sized groups. This procedure may be continued until the users are uniquely determined. In order to give the procedure the ability to tolerate noise, this procedure may be repeated a number of times. Each time the procedure is repeated, any traits that were previously selected are removed from consideration. The developer may be allowed to add any traits that they deem useful based on personal domain knowledge. For each user, the values assigned to these traits create the profile of the user.
- a subsequent step is to enable user identification.
- the values of the traits may be determined. These values may be refined as more information is received during the use of the applications. For any trait that cannot currently be computed, a default value may be used. (The default value can be computed using statistical techniques that include applying machine learning.) For example, a trait might be based on a part of a game the user has not reached.
- the set of nearest profiles may also be found. These nearest neighbors may be used to give a distribution over users.
- the definition of this distance may be, for example, a vector norm or a custom distance that is learned using supervised machine learning techniques based on matches using saved event sequences for the stored user profiles.
- Various preprocessing techniques may be used to speed up these distance computations including, but not limited to, approximate matching algorithms. Approximate matching algorithms exploit the fact that the set of traits is redundant and that there should be a large separation between the profiles.
- the selected set of user traits may not distinctly identify the user over time. This may be due to the fact that the user's behaviors have changed, or additional user's collected events are now similar to the traits of the user. In such occurrences, the selected set of user traits may be updated. Traits that no longer distinctly identify the user may be removed from the selected set of traits and new traits that distinctly identify the user may be added to the selected set of traits. [0053]
- usage behavior may not reach points in an application where the traits are tested. For example, a trait may be determined by the event distribution in a certain area of a game. If the user does not enter that area, there may be insufficient information to classify the user.
- Another aspect of embodiments disclosed herein is the ability to help control the application to "push" users into areas to discriminate the user via a triggering mechanism that allows information to be sent to an active application session when certain conditions are met.
- a system may have enough information to determine that the identity of the current user is either user A (70% confidence), user B (20% confidence), or user C (10% confidence). If the probability that the current user is user A is not high enough to draw a conclusion (e.g. not above some confidence threshold), the application may operate to "transport" the current user to a new area or a new game state (e.g., a specific map or level in a game) where additional traits can be identified which may be useful for making a conclusive identification (e.g. for separating A from B and C).
- Another issue is that a user might slowly change his behavior over time. For example, as a user gets more skilled, he might start using more complex button combinations in a fighting game.
- the redundant nature of a profile means that the identity of a user can be confirmed and that it may be detected that certain aspects of the user's profile are changing. Based on these changes, the profile may be updated to capture the new behavior.
- FIG. 1 is a block diagram of a functional architecture of an exemplary system.
- FIG. 1 depicts the exemplary system 100 that includes a plurality of user devices 102 A and 102B, a wired or wireless network 104, a user traits learning module 106, a user prediction module 108, a traits models and profiles database 110, and a third party 112.
- a user's interactions with an application e.g. 'events' which convey a user's behavior in or interaction with the application while using a user device 102 A or 102B
- SDK or some other means
- This user traits learning module 106 may employ machine learning/data mining techniques for the purpose of discovering traits that can identify specific users with high accuracy. The discovery of these traits may be based on a number of explicit or implicit properties associated with the uploaded events. For example, context, event types, event sequences and patterns, timestamps, and values of some of the event attributes can be used for this purpose. [0056] Once the user traits learning module 106 is able to identify distinct user traits, profile models are generated and stored in the user behavior / models database 110. These models are then used by the user prediction module 108 for determining which model is aligned with current in-application events. The in-application events may be collected and provided to the user prediction module 108 in a similar fashion to which the events are collected and provided to the user traits learning module. Once this is done, this system can detect whether the end user behavior is consistent with the learned behavior for the same user and may take actions when either similarities or divergence is detected. Such actions may include sending a notification to third party services 112 or to the application itself.
- user traits learning 106 and user prediction 108 modules of FIG. 1 are depicted as separate entities, they can be part of the same entity in a different embodiment.
- embodiments disclosed herein are not limited to a single application.
- User traits may be computed across user interactions with multiple applications.
- the unique application name or ID may be used as one of the features used by the machine learning techniques for constructing traits that can discern users.
- Events may be collected from multiple applications and may be provided to the user traits learning module during the training/model forming stage, and may be provided to the user prediction module during the run-time stage. Each event may carry the application name and/or ID of the application which produced the event.
- the events may convey a user's behavior in or interaction with multiple applications. The user may be using the multiple applications concurrently, or the user may be using the multiple applications separately within some time period.
- FIG. 2 is a block diagram providing a more detailed illustration of application event processing by the user traits learning system shown in FIG. 1.
- FIG. 2 depicts the system 200 that includes an application events module 202, an event sequence analysis module 204, a feature extraction module 206, a user behavior learning module 208, and a user behavior database 210.
- the application events module 202 provides a sequence of collected events to the event sequence analysis module 204 that operates to consolidate duplicate instances (if applicable), to discard events which are not associated with specific user behavior (e.g. such events or event types could be specified as part of configuration information or determined by machine learning methods), and to associate context information with events (e.g., current timestamp, IP address of device where events originated).
- the feature extraction module 206 operates to compute measurable properties that can be used by the user behavior learning module 208.
- Such properties may include event sequences, timing between events, relationships between event properties, etc.
- feature computation may include the computation of event distributions during specific time periods. In another embodiment, time intervals between events may be used.
- Table 1 illustrates examples of computed features based on sequences of events with specific types (the symbol
- Table 2 illustrates examples of computed features based on sequences of events with specific types (the symbol
- the user behavior learning module 208 may operate to apply an ensemble of machine learning techniques (as discussed above) for constructing traits that can distinguish between users based on computed features.
- the models may then be stored in the user behavior / models database 210 and used by the user prediction module (shown in FIG 1). The specific representation of these models depends on the machine learning algorithm used.
- FIG. 3 is a flow diagram illustrating the steps performed in some embodiments for computing distinct user behaviors by the components shown in FIG. 2.
- FIG. 3 depicts the flow diagram 300 that includes a plurality of steps.
- Received application events (302) are filtered (304) for the purpose of discarding any events that may not have any material impact in the identification of distinct end user traits, such as periodic location events, or events that may always be generated at specific points in the app across all users. Event filtering may take place periodically instead of immediately after event receipt.
- Filtered events may be grouped based on a current application session ID associated with end user interactions.
- a user or device ID associated with these sessions may be included in such grouping.
- An explicit session ID may not always be associated with each processed application event. In these cases, different options are available for grouping together events belonging to the same session. For example, the IP address of the device used by the end user can be used for this purpose.
- Each event may contain a timestamp attribute that is populated using the current device timestamp at the time of event generation by the application. In cases where this is not available, the timestamp of event receipt by the proposed system can be used.
- Event sequences (grouped by session ID and ordered by timestamp) may be segmented (306) into sub-sequences. Several different ways in which such segmentation takes places can be used. For example, an event windowing approach may be used where a specific number of sequential events are considered in each window (e.g., 5 events). A different approach is to select event sequences that occur within a specific time interval (e.g., 60 seconds between the first and last event in a sequence). Yet another approach is to analyze event sequences that occur within specific start and end events (e.g., start of a game map and end of the game map).
- Behavior identification may be based on computation of traits from features that are extracted (308) by the feature extraction module of FIG. 2. Each sub-sequence is then used to determine whether a distinct end user behavior can be identified (312) based on previously identified user behaviors stored in a database and the ensemble of machine learning techniques. Such determination is performed by the user behavior learning module of FIG. 2, based on user behavior information identified previously by this module and stored in the user behavior database. Distinct behaviors are updated in the user behavior database (314). Note that such a determination may be probabilistic. In this case, the identification may have a confidence factor (e.g., score, or probability) associated with it. If no distinct behavior can be discerned, a different sub-sequence is considered next (316).
- a confidence factor e.g., score, or probability
- the above process may continue until distinct end user behaviors are identified (320) or no more event sub-sequences exist (318).
- the user behavior database is updated to include the identified behavior(s).
- all or some of the filtered events may be retained and used together with future and/or past application events during a subsequent invocation of the steps shown in FIG. 3.
- FIG. 4 is a flow chart illustrating steps that may be performed by the user prediction module of FIG. 1.
- FIG. 4 depicts the flow chart 400 that includes a series of steps.
- This module receives application events (402) either in batches or one at a time.
- a plurality of event patterns (404) are identified and an initial event pattern (406) is selected.
- the module buffers these events, and once the buffer exceeds a specific threshold (configuration based) or sufficient time elapses, the module attempts to determine whether event patterns (e.g. event sub-sequences) match one or more of the learned distinct user traits.
- event patterns e.g. event sub-sequences
- this module compares event patterns with learned distinct traits for the same user. Otherwise, the module may attempt to identify users that may share similar traits.
- the user prediction module For each distinct event trait in the received application events, the user prediction module identifies candidate user behavior (profile) data (408) that may match the event trait and then updates a match prediction confidence score (410). This may be repeated for each event pattern (412 and 414) until no more distinct event traits are present in the received application events.
- the prediction confidence score computed for each representative user profile may then be compared to a configurable threshold for the purpose of determining similarity or divergence (416). In either case, a notification may be triggered and delivered back to the application or to a third-party service.
- the triggered notification (418 and 420) may include information to be used by the application for the purpose of directing the user into a position where the user is more likely to exhibit specific traits (in terms of generated events) that can be then used for matching end user behavior to learned distinct user traits.
- modules that carry out (i.e., perform, execute, and the like) various functions that are described herein in connection with the respective modules.
- a module includes hardware (e.g., one or more processors, one or more microprocessors, one or more microcontrollers, one or more microchips, one or more application-specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs), one or more memory devices) deemed suitable by those of skill in the relevant art for a given implementation.
- ASICs application-specific integrated circuits
- FPGAs field programmable gate arrays
- Each described module may also include instructions executable for carrying out the one or more functions described as being carried out by the respective module, and it is noted that those instructions could take the form of or include hardware (i.e., hardwired) instructions, firmware instructions, software instructions, and/or the like, and may be stored in any suitable non-transitory computer-readable medium or media, such as commonly referred to as RAM, ROM, etc.
- Exemplary embodiments disclosed herein are implemented using one or more wired and/or wireless network nodes, such as a wireless transmit/receive unit (WTRU) or other network entity.
- WTRU wireless transmit/receive unit
- FIG. 5A depicts a first method, in accordance with some embodiments.
- FIG. 5A depicts the method 500 that includes collecting a sequence of events at 502, selecting a set of user traits at 504, and storing a user profile at 506.
- the method 500 may be performed using the systems, such as the systems 100 and 200 of FIGs. 1 and 2, respectively, or other suitable systems.
- a sequence of events is collected from a first plurality of users of an online software application. Each event represents a user's interaction with the application.
- a set of user traits is selected. The degree to which each trait is demonstrated by a user is determinable based on the sequence of events corresponding to that user. Also, the set of traits is selected such that the degree to which each respective user demonstrates the selected traits is substantially unique to that respective user.
- a user profile is stored for each of a second plurality of users of the software application.
- the user profiles identify an extent to which each of the selected traits is demonstrated by the respective user.
- FIG. 5B depicts a second method, in accordance with some embodiments.
- FIG. 5B depicts the method 510 that includes additional steps to the method 500.
- a first sequence of events representing a first user's interaction with the application are collected.
- the extent to which the first user demonstrates the selected traits is determined.
- the first user is identified by matching the extent to which the user demonstrates the selected traits with one of the stored user profiles.
- the method may further comprise selecting content based on the identification of the first user and delivering the selected content to the first user.
- the selected content may be advertising or marketing content, system notifications, and the like.
- FIG. 6 is a system diagram of an exemplary WTRU 602, which may be employed as a user device operating different mobile application or online software applications in embodiments described herein.
- the WTRU 602 may include a processor 618, a communication interface 619 including a transceiver 620, a transmit/receive element 622, a speaker/microphone 624, a keypad 626, a display/touchpad 628, a non-removable memory 630, a removable memory 632, a power source 634, a global positioning system (GPS) chipset 636, and sensors 638.
- GPS global positioning system
- the processor 618 may be a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Array (FPGAs) circuits, any other type of integrated circuit (IC), a state machine, and the like.
- the processor 618 may perform signal coding, data processing, power control, input/output processing, and/or any other functionality that enables the WTRU 602 to operate in a wireless environment.
- the processor 618 may be coupled to the transceiver 620, which may be coupled to the transmit/receive element 622. While FIG. 6 depicts the processor 618 and the transceiver 620 as separate components, it will be appreciated that the processor 618 and the transceiver 620 may be integrated together in an electronic package or chip.
- the transmit/receive element 622 may be configured to transmit signals to, or receive signals from, a base station over the air interface 616.
- the transmit/receive element 622 may be an antenna configured to transmit and/or receive RF signals.
- the transmit/receive element 622 may be an emitter/detector configured to transmit and/or receive IR, UV, or visible light signals, as examples.
- the transmit/receive element 622 may be configured to transmit and receive both RF and light signals. It will be appreciated that the transmit/receive element 622 may be configured to transmit and/or receive any combination of wireless signals.
- the WTRU 602 may include any number of transmit/receive elements 622. More specifically, the WTRU 602 may employ MFMO technology. Thus, in one embodiment, the WTRU 602 may include two or more transmit/receive elements 622 (e.g., multiple antennas) for transmitting and receiving wireless signals over the air interface 616.
- the WTRU 602 may include two or more transmit/receive elements 622 (e.g., multiple antennas) for transmitting and receiving wireless signals over the air interface 616.
- the transceiver 620 may be configured to modulate the signals that are to be transmitted by the transmit/receive element 622 and to demodulate the signals that are received by the transmit/receive element 622.
- the WTRU 602 may have multi-mode capabilities.
- the transceiver 620 may include multiple transceivers for enabling the WTRU 602 to communicate via multiple RATs, such as UTRA and IEEE 802.11, as examples.
- the processor 618 of the WTRU 602 may be coupled to, and may receive user input data from, the speaker/microphone 624, the keypad 626, and/or the display/touchpad 628 (e.g., a liquid crystal display (LCD) display unit or organic light-emitting diode (OLED) display unit).
- the processor 618 may also output user data to the speaker/microphone 624, the keypad 626, and/or the display/touchpad 628.
- the processor 618 may access information from, and store data in, any type of suitable memory, such as the non-removable memory 630 and/or the removable memory 632.
- the non-removable memory 630 may include random-access memory (RAM), read-only memory (ROM), a hard disk, or any other type of memory storage device.
- the removable memory 632 may include a subscriber identity module (SFM) card, a memory stick, a secure digital (SD) memory card, and the like.
- the processor 618 may access information from, and store data in, memory that is not physically located on the WTRU 602, such as on a server or a home computer (not shown).
- the processor 618 may receive power from the power source 634, and may be configured to distribute and/or control the power to the other components in the WTRU 602.
- the power source 634 may be any suitable device for powering the WTRU 602.
- the power source 634 may include one or more dry cell batteries (e.g., nickel- cadmium (NiCd), nickel-zinc (NiZn), nickel metal hydride (NiMH), lithium-ion (Li-ion), and the like), solar cells, fuel cells, and the like.
- the processor 618 may also be coupled to the GPS chipset 636, which may be configured to provide location information (e.g., longitude and latitude) regarding the current location of the WTRU 602.
- location information e.g., longitude and latitude
- the WTRU 602 may receive location information over the air interface 616 from a base station and/or determine its location based on the timing of the signals being received from two or more nearby base stations. It will be appreciated that the WTRU 602 may acquire location information by way of any suitable location-determination method while remaining consistent with an embodiment.
- the processor 618 may further be coupled to other peripherals 638, which may include one or more software and/or hardware modules that provide additional features, functionality and/or wired or wireless connectivity.
- the peripherals 638 may include sensors such as an accelerometer, an e-compass, a satellite transceiver, a digital camera (for photographs or video), a universal serial bus (USB) port, a vibration device, a television transceiver, a hands free headset, a Bluetooth® module, a frequency modulated (FM) radio unit, a digital music player, a media player, a video game player module, an Internet browser, and the like.
- sensors such as an accelerometer, an e-compass, a satellite transceiver, a digital camera (for photographs or video), a universal serial bus (USB) port, a vibration device, a television transceiver, a hands free headset, a Bluetooth® module, a frequency modulated (FM) radio unit, a digital music player, a media player, a video game player module
- FIG. 7 depicts an exemplary network entity 790 that may be used in embodiments of the present disclosure, for example as a user traits learning module, the user prediction module, storage databases, and the like.
- network entity 790 includes a communication interface 792, a processor 794, and non-transitory data storage 796, all of which are communicatively linked by a bus, network, or other communication path 798.
- Communication interface 792 may include one or more wired communication interfaces and/or one or more wireless-communication interfaces. With respect to wired communication, communication interface 792 may include one or more interfaces such as Ethernet interfaces, as an example. With respect to wireless communication, communication interface 792 may include components such as one or more antennae, one or more transceivers/chipsets designed and configured for one or more types of wireless (e.g., LTE) communication, and/or any other components deemed suitable by those of skill in the relevant art. And further with respect to wireless communication, communication interface 792 may be equipped at a scale and with a configuration appropriate for acting on the network side— as opposed to the client side— of wireless communications (e.g., LTE communications, Wi-Fi communications, and the like). Thus, communication interface 792 may include the appropriate equipment and circuitry (perhaps including multiple transceivers) for serving multiple mobile stations, UEs, or other access terminals in a coverage area.
- wireless communication interface 792 may include the appropriate equipment and circuitry (perhaps including multiple transceivers)
- Processor 794 may include one or more processors of any type deemed suitable by those of skill in the relevant art, some examples including a general-purpose microprocessor and a dedicated DSP.
- Data storage 796 may take the form of any non-transitory computer-readable medium or combination of such media, some examples including flash memory, read-only memory (ROM), and random-access memory (RAM) to name but a few, as any one or more types of non-transitory data storage deemed suitable by those of skill in the relevant art could be used. As depicted in FIG. 7, data storage 796 contains program instructions 797 executable by processor 794 for carrying out various combinations of the various network- entity functions described herein.
- ROM read only memory
- RAM random access memory
- register cache memory
- semiconductor memory devices magnetic media such as internal hard disks and removable disks, magneto- optical media, and optical media such as CD-ROM disks, and digital versatile disks (DVDs).
- a processor in association with software may be used to implement a radio frequency transceiver for use in a WTRU, UE, terminal, base station, RNC, or any host computer.
Landscapes
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Systems and methods are described for identifying mobile application users and/or predicting characteristics of the users based on mobile application usage behavior. In an exemplary method, for a first plurality of users of an online software application, collecting a sequence of events, wherein each event represents a user interaction with the application; selecting a set of user traits, wherein: the degree to which each trait is demonstrated by a user is determinable based on the sequence of events corresponding to that user, and the set of traits is selected such that the degree to which each respective user demonstrates the selected traits is substantially unique to that respective user; and for each of a second plurality of users of the software application, storing a user profile that identifies an extent to which each of the selected traits is demonstrated by the respective user.
Description
SYSTEM AND METHOD FOR USER TRAITS RECOGNITION AND PREDICTION BASED ON MOBILE APPLICATION USAGE BEHAVIOR
CLAIM OF PRIORITY AND RELATED APPLICATIONS
[0001] The present application is a non-provisional filing of, and claims benefit under 35 U.S.C. §119(e) from, U.S. Provisional Application Serial No. 62/350,053, entitled "System and Method for User Traits Recognition and Prediction Based on Mobile Application Usage Behavior," filed on June 14, 2016, the entirety of which is incorporated by reference herein.
BACKGROUND
[0002] The number of users utilizing mobile devices and interacting with various mobile applications has been growing at double-digit rates for the past several years. Mobile games have experienced a tremendous growth, and mobile games dominated all other applications in terms of revenues in 2015. Mobile game developers have started utilizing analytics for the purpose of better understanding player behaviors in order to offer engaging features and increase monetization opportunities. Existing analytics approaches are driven by event data collected via some form of instrumentation that records user actions and uploads recorded information to a service (such as a cloud service) for analysis. Most of such analytics offerings focus on measuring active users, new users, revenue, and specific actions users take, without offering any support for identifying user-specific behavior.
[0003] Predicting individual traits and attributes based on various cues, such as samples of written text, answers to a psychometric test, or the appearance of spaces people inhabit, has received a lot of attention in the literature. Recently, studies have shown that Web site browsing logs, social media content, and online user friendship networks can be used for predicting the age, gender, occupation, education, and even personality of a user. However, predicting user traits based on mobile application usage behavior has received minimal attention.
[0004] In systems using continuous mobile user authentication, user interactions with a mobile device and applications are monitored by focusing mostly on input interactions (e.g., keyboard, touch, orientation, pressure) rather than specific user interactions with an application. More advanced approaches use location information, additional sensor data (e.g., accelerometer), web browsing, and application usage in terms of how many times an application received focus within a time window.
SUMMARY
[0005] Exemplary methods described herein may be used to identify users of an online application, such as an online game, based on characteristics of the users' interactions with the application. In an exemplary embodiment, a first plurality of users interacts with the online software application. A sequence of events is collected, where each of the events represents an interaction of a corresponding user with the application. With reference to the sequence of events, a set of user traits is selected. Traits have the property that the degree to which a particular trait is demonstrated by a user can be determined based on the sequence of events corresponding to that user. The selected set of traits is selected (e.g. from among a plurality of available traits) such that the degree to which each respective user demonstrates the selected traits is substantially unique to that respective user. Respective user profiles are stored for each of a second plurality of users. Each of the user profiles identifies an extent to which the selected traits are demonstrated by the respective user. The second plurality of users (for which profiles are stored) may include all, some, or none of the users in the first plurality (who were used in selecting a set of traits). The selected set of traits and/or individual user profiles can be updated to reflect changing usage patterns, and new profiles can be added as events are collected from new users.
[0006] In some embodiments, the user profiles are used to identify users of online applications even without receiving other personally-identifiable information from the users. For example, in one such method, a first sequence of events is collected representing a first user's interaction with the application. Based on the first sequence of events, a determination is made regarding the extent to which the user demonstrates the selected traits. The first user is then identified by matching the extent to which the user demonstrates the selected traits with one of the stored user profiles. The matching may provide a means of authenticating the user of the mobile device, identifying a user to provide customized content, pairing different users of the mobile applications, and the like.
[0007] Further, the matching may also provide for determining divergence and similarities between the identified user and the traits stored in the user profiles. After detecting a divergence, the user may be directed to a back-up authentication method, the set of selected user traits stored in the profile may be updated, and the like.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] FIG. 1 is a block diagram illustrating the functional architecture of an exemplary embodiment.
[0009] FIG. 2 is a block diagram illustrating the functional architecture of a user traits learning system according to an exemplary embodiment.
[0010] FIG. 3 is a flow diagram illustrating the steps performed in some embodiments for computing distinct user behaviors.
[0011] FIG. 4 is a flow chart illustrating steps that may be performed by a user prediction module in some embodiments.
[0012] FIG. 5A depicts a first method performed in some embodiments.
[0013] FIG. 5B depicts a second method performed in some embodiments.
[0014] FIG. 6 illustrates an exemplary wireless transmit/receive unit (WTRU) that may be employed as a user device, such as a mobile device, in some embodiments.
[0015] FIG. 7 illustrates an exemplary network entity that may be employed as a user traits learning module and/or user prediction module in some embodiments.
DETAILED DESCRIPTION
[0016] Systems and methods disclosed herein address the discovery of interaction patterns between users and applications for the purpose of identifying traits that can be used for discriminating between different users. Such traits are typically associated with a user profile and, hence, this disclosure relates generally to the fields of user profiling, profile formulation and analysis. Systems and methods disclosed herein provide the ability to associate specific interaction behavior with distinct users.
[0017] Systems and methods that enable accurate identification of users based on the way those users interact with one or more applications running on a computing device (e.g., mobile phones, wearables, tablets, etc.) offer many advantages. For example, such systems and methods may be used to implement a continuous authentication service that compares current application interaction usage with previously-learned usage patterns for the purpose of identifying the user and deciding whether the user is authorized to carry out such interactions. Similarly, by mapping specific user application interactions to personality profiles, personalized services can be offered by predicting a user's personality profile based
on observed application usage information. In addition, in a multi-player gaming environment, users with similar (or dissimilar but complementary) traits may be dynamically paired for the purpose of enhancing the overall playing experience of the group or making the game more challenging.
[0018] Systems and methods disclosed herein perform automated and accurate recognition of distinguishing user characteristics, referred to as traits, using collected information related to mobile application or online software application usage behavior. Depending on the specific mobile applications users interact with, user traits may correspond to quantifiable character/personality characteristics (e.g., patient, persistent, leader, rude), interests and preferences, specific skills (e.g., attacking strategies in Clash of Clans), or specific interaction behavior (e.g., going to an easy game map to collect resources before moving to a more challenging map).
[0019] An exemplary method may include steps performed in the following phases: (1) a learning phase during which distinct mobile application interactions are identified and associated with specific user traits, and (2) a runtime phase during which current mobile application interactions are used for predicting user traits associated with these interactions. Exemplary embodiments employ ensembles of machine learning techniques for identifying user traits that can be consistently found in application usage behavior of single users, yet can discriminate between different users.
[0020] During the learning phase, a graphical user interface (GUI) may be utilized for allowing one to provide manual input with respect to specific associations between user traits and mobile application usage behavior, such as associating specific events or event sequences with specific user traits. By utilizing such a GUI, exemplary embodiments speed up machine learning by selecting which usage behavior to present to a user for manual tagging.
[0021] Various embodiments demonstrate one or more of the following features:
• Collection of mobile application usage behavior via the use of a software development kit (SDK) or other mechanism that enables collected information to be uploaded to a back- end system or service that implements methods described herein. Exemplary methods may also be implemented using a software component that either resides on the same device as the application itself or is part of the application itself.
• Machine learning models and methods process collected mobile application usage information (in batch or online mode) and construct user trait profiles.
• An optional input mechanism, such as a graphical user interface, allows an authorized user to associate specific application usage behavior with specific user traits or assign specific semantic labels to computed traits information.
• Machine learning models and methods process real-time mobile application usage information and predict user trait profiles associated with such information.
• A notification mechanism alerts the mobile application or a third party about divergence or similarity between recent mobile application usage information and a user trait profile.
[0022] Exemplary embodiments may be employed as a means to associate application usage behavior to specific individuals. Depending on the nature and complexity of mobile applications, user behaviors may be captured in the form of specific event sequences that are generated by the application(s) using an SDK or some other means. Application event sequences corresponding to user interactions may be processed by machine learning methods and algorithms for the purpose of identifying distinct patterns (with a confidence score) for each user. Such distinct patterns may then be used for predicting whether currently observed application behavior belongs to a specific user, subject to a confidence threshold.
[0023] A prediction of whether a currently observed application behavior belongs to a specific user may be used for several purposes, including one or more of the following.
o Providing an anomaly detection service where divergence from learned user traits for one or more applications triggers specific actions. For example, such service may be used for implementing a continuous active authentication mechanism where triggered actions may include the request for explicit user authenti cati on/ authorizati on .
o Offering customized content and/or application behavior to users whose learned traits are associated with specific user characteristics, such as preferences, likes, or physical abilities.
o Enabling dynamic formation of groups comprised of users either sharing common traits or having different traits. In the context of a multi-player game, such capability allows the game to pair similar or dissimilar players together for the purpose of enhancing the overall gaming experience or making the game more challenging.
[0024] Exemplary embodiments disclosed herein may be employed as a means to identify mobile application behavior shared among users. Mobile applications may interact with third
party services for the purpose of offering custom content and/or services to end users. Such interactions are typically driven by information collected about users, including specific user interactions with such applications. Collected information may, however, include sensitive data that is usable to uniquely identify an individual. To prevent this from occurring, users that exhibit similar application behavior can be grouped, and then the group's behavior may be shared with third party services. Embodiments disclosed herein make it possible to ensure that computed group behavior information cannot be used for identifying information that reflects specific user traits which may be associated with a physical entity, enabling user anonymity similar to the k-anonymity concept.
[0025] Systems and methods disclosed herein utilize a user profiling component. Machine learning and data mining techniques are proposed for computing subsets of event patterns generated by user actions within a game or application that identify distinct user behavior.
[0026] Exemplary embodiments may be employed in an online gaming context where distinct user traits may be associated with specific user game actions. Such associations may be used in numerous ways. For example, the associations may be used for adjusting a player's experience. Once the engagement style of players (e.g., competitive, collaborative) has been determined, gamers may be paired with other gamers who have similar (or dissimilar but complementary) styles for the purpose of enhancing gamer satisfaction. Furthermore, such information may be used for guiding future game offerings and incorporating monetization opportunities in a game.
[0027] Exemplary embodiments may further be used in an advertising and marketing context. For example, advertisement/marketing content may be selected that matches a user's traits profile. In this context, events generated in response to user interactions with a mobile application (e.g., browsing of specific items or query terms) are processed by the proposed solution and predictions are made with respect to the user traits that best match such interactions.
[0028] Exemplary embodiments may be applied in an education context where education applications generate events associated with achievements and progress made toward specific learning objectives. Educators may assess progress made by each individual student by receiving notifications related to divergence of current student activity from expected activity or similarity of current student activity with expected activity. Furthermore, methods
disclosed herein may be used for detecting cheating when current student interactions with an education application result in the prediction of user traits that are either not consistent with the traits of this student or common across a number of students.
[0029] Being able to identify a specific user interacting with one or more mobile applications with a high probability offers many benefits, which may include one or more of the following.
• Better understanding of application usage across users and devices.
• Customization of user experience and improved engagement based on distinct user
behaviors.
• Improve monetization by better segmentation and targeting.
• Outlier behavior detection that can be used for fraud detection or implicit user
authentication.
[0030] Existing approaches in the area of mobile application analytics focus on understanding overall user interactions and trends instead of analyzing individual users. Clustering is typically used for grouping users based on discovered common patterns. Specific application knowledge is used for understanding the behavior exhibited by each computed cluster.
[0031] Exemplary embodiments perform application-specific identification based on a user's interactions with a specific application, such as in-app purchase transactions, completion of a specific level in a game, actions taken before attacking an opponent, etc., rather than interaction based on device-level input (e.g., touch screen, mouse, gesture) or operating environment (e.g., GPS coordinates, active processes, time or date).
[0032] Systems and methods disclosed herein address the above-mentioned shortcoming of existing approaches by offering a solution that can identify unique user traits based on user interactions with mobile applications. Machine learning techniques may be used for learning distinct user behavior and associating such behavior to specific user trait profiles.
[0033] User behavior learning has been used in the past for understanding how end users interact with specific content and applications and detecting deviations from normal behavior. Such technologies are discussed in Iglesias, Jose Antonio, Plamen Angelov, Agapito Ledezma, and Araceli Sanchis. "Creating Evolving User Behavior Profiles Automatically." Knowledge and Data Engineering, IEEE Transactions on 24, no. 5 (2012): 854-867.
However, existing approaches focus on aggregate user behavior by grouping users with similar patterns and then using the group for subsequent analysis. In addition, some approaches focus only on back-end usage over different time windows for detecting abnormal situations, such as flash crowds, and system issues.
[0034] Existing work in the area of understanding user behavior in mobile applications focuses on clustering users that interact with an application in similar ways. Existing mobile application analytics offerings focus on analyzing collected information for the purpose of computing aggregate information about user interactions (e.g., number of daily active users, number of times a specific event was generated), instead of identifying distinct user interaction patterns.
[0035] Exemplary embodiments may make use of technology relating to recommendation services, such as those utilized by major retailers (e.g., Amazon). These services cluster users based mostly on their transactions (e.g., book purchases) instead of focusing on learning specific user traits. Example recommender systems are disclosed in Adomavicius, Gediminas, and Alexander Tuzhilin. "Toward the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions." Knowledge and Data Engineering, IEEE Transactions on 17, no. 6 (2005): 734-749. Typically, a recommender system estimates ratings for items that have not been seen by a user based on the ratings given by this user to other items and other information, such as similarity between users in terms of common item ratings, demographics, and preferences. Once ratings have been estimated, the recommender system recommends to the user items with the highest ratings. While some of the techniques used by recommender systems may be employed in embodiments disclosed herein, the goal of a recommender system may be different than the goal of an exemplary embodiment. In particular, recommender systems learn about past user behavior in order to suggest specific items (e.g., books or movies) that the user may be interested in. In contrast, at least some of the embodiments disclosed herein focus on identification of a specific user based on interactions with a mobile application.
[0036] Exemplary embodiments may make use of technology relating to characterizing user mobile application behavior by analyzing network traffic. Such technology is discussed in Xu, Qiang, Jeffrey Erman, Alexandre Gerber, Zhuoqing Mao, Jeffrey Pang, and Shobha Venkataraman. "Identifying diverse usage behaviors of smartphone apps." In Proceedings of the 2011 ACM SIGCOMM conference on Internet measurement conference, pp. 329-344. ACM, 2011 and also in Tongaonkar, Alok, Shuaifu Dai, Antonio Nucci, and Dawn Song.
"Understanding mobile app usage patterns using in-app advertisements." In Passive and Active Measurement, pp. 63-72. Springer Berlin Heidelberg, 2013.
[0037] Some of the proposed techniques are based on the User-Agent field in HTTP headers, while others use information associated with visited sites. Several publications address user personality characterization based on either specific user actions (e.g., Bachrach, Yoram, Michal Kosinski, Thore Graepel, Pushmeet Kohli, and David Stillwell. "Personality and Patterns of Facebook Usage." In Proceedings of the 4th Annual ACM Web Science Conference, pp. 24-32. ACM, 2012) or list of applications stored on their mobile devices (e.g., Seneviratne, Suranga, Aruna Seneviratne, Prasant Mohapatra, and Anirban Mahanti. "Predicting User Traits from a Snapshot of Apps Installed on a Smartphone. " ACM SIGMOBILE Mobile Computing and Communications Review 18, no. 2 (2014): 1-8.). Typically, the "Big Five" personality traits (openness to experience, conscientiousness, extraversion, agreeableness, and neuroticism) are used for such characterizations.
[0038] Exemplary embodiments may make use of technology from the area of continuous/active authentication using behavioral biometrics. One such technology is disclosed in PCT Patent Application Publication No. WO2014205148, "Continuous Authentication Tool." Existing research and proposed solutions focus on interactions between a user and the available input methods for a device (e.g., touch screen, keyboard, and gesture). In contrast, exemplary embodiments analyze how users interact with the various aspects of an application.
[0039] Exemplary embodiments may make use of technology from the area of utilizing an SDK for the purpose of collecting and analyzing application usage events. Such technologies are disclosed in Patro, Ashish, Shravan Rayanchu, Michael Griepentrog, Yadi Ma, and Suman Banerjee. "Capturing Mobile Experience in the Wild: A Tale of Two Apps." In Proceedings of the ninth ACM conference on Emerging networking experiments and technologies, pp. 199-210. ACM, 2013 and as used by Google Analytics. Exemplary embodiments relate to identifying user behavior under certain circumstances and using such information for either identifying a user interacting with an application on a specific device or identifying the same user across different devices.
[0040] Exemplary embodiments may make use of technology such as that described in U.S. Patent Application Publication No. 2014/0201120, "Generating Notifications Based on User Behavior". Such technology addresses user behavior by collecting user behavior data
from a device (based on user interaction with the device) and comparing such data against learned user behavior for the purpose of issuing alerts when a discrepancy is detected. User interactions include: grammar, punctuation, typing speeds, spelling errors, vocabulary, application usage, online activity, and communicating with third-party devices. In addition, sensor input can be used for this, including magnetometer, location, light, accelerometer, thermometer, proximity, or a touch screen.
[0041] Embodiments disclosed herein focus on identifying specific behavior patterns of individual users based on information collected about user actions within one or more applications. Such embodiments allow user-specific actions to be taken when required. Furthermore, while approaches disclosed herein may be used for human personality traits, the disclosure is not restricted to only such traits.
[0042] In exemplary embodiments, an application may be a software application or tool with one or more of the following characteristics.
• The application may be developed and managed by a third party called a developer that is separate from an end user.
• The application may be rendered on a computer device such as a gaming console, desktop computer, mobile device, etc.
• The application may be used by an end user by either downloading it to a mobile device (in the case of a native application) or interacting with it over a communications network using a Web browser or some other means.
• The application may be instrumented to send in-application events to a user traits management system.
• The application may be capable of receiving notification by the user traits management system and taking specific actions, if required.
[0043] The terms user, player, and gamer are employed herein to refer to the end user (depending on the embodiment). The term gameplay is used to refer to the act of engagement with the application by the user (where the application may be a game or some other form of information/entertainment). The terms user traits models and user profiles are used interchangeably. In addition, the term end user does not need to correspond to a specific physical entity. Rather, it corresponds to an entity that can be discerned from other entities based on application interactions. The term traits is used herein to refer to a collection of
measurable properties that are created by the developer or generated by machine learning techniques.
[0044] In embodiments disclosed herein, in-application events contain a property that can uniquely identify either the end user or the device the end user is using for interaction with the application. For example, the unique device ID value supported by iOS and Android devices can be used for this purpose. When the unique device ID changes from time to time (e.g., user resets the advertisement ID associated with a mobile device), systems and methods disclosed herein may detect that the same distinct user behavior is associated with two or more different device IDs and, therefore, may treat these IDs as aliases for the same end user. Furthermore, when two different end users use the same device at different times, embodiments disclosed herein are able to detect distinct behaviors. Embodiments described herein may be employed in, for example, systems such as those described in Falchuk, B., E. Panagos, K. C. Lee, S. Loeb, and Z. Yao. "Just-in-Time Reconnaissance and Assistance for Video Game Streams and Players." in 2016 13th IEEE Annual Consumer Communications & Networking Conference (CCNC), pp. 99-102. IEEE, 2016.
[0045] Exemplary embodiments employ one or more of the following components.
An SDK (or other means) for collecting events associated with specific user interactions with a mobile application and, optionally, for interacting with the application via a trigger feedback mechanism.
• Machine learning techniques for analyzing collected events and identifying distinct traits (e.g., event sequence patterns, event timing relationships).
Techniques for combining traits that can be used for identifying a specific end user with high probability.
• Probabilistic traits divergence detection using real-time event analytics techniques.
[0046] An ensemble of machine learning techniques may be used for identifying distinct traits that can be used for discriminating between users. Such techniques may include one or more of the following.
• Sequential pattern mining may be used for finding traits that appear in only a fraction of user application behavior. These traits are based on the event sequences including the timing information between events and the current context. For example, sequential pattern mining may detect patterns in user behavior, such as a
user having a pattern of selling merchandise within 5 minutes of completing a level.
• Statistical data mining may be used for measuring distributions of event sequences that differ between users. These distributions may be based on a subset of the events that may be located in critical locations of the application, timing between events, and any available context (e.g., time of day, location, device type). For example, the distribution of moves a player makes in a fighting game may be determined based on the context of the character selected in the game.
• Supervised learning may be used for using event patterns of interest, such as purchases, as labels to generate traits. These traits correspond to combinations of features that are learned from the supervised problem and can include context, event sequences, and timing information. These traits may be related to important aspects of the application based on their correlation with the labels.
[0047] In exemplary embodiments, traits that are identified and tracked are representative of a consistent property of some users, such that the traits appear repeatedly across user's events and sessions. In some embodiments, traits that show spurious correlation are identified and disregarded. This can be accomplished through various techniques such as using holdout sets of events as a means of confirming that a trait is consistent across a significant fraction of users. While it can be expensive and statistically problematic to test too many traits, limiting analysis to traits generated by the machine learning techniques makes the problem tractable.
[0048] Another exemplary criterion for selecting traits to be tracked is that the selected traits can discriminate between users. A trait is discriminative based on how it divides up the current users. For example, a trait can be true for 50% of the users and false for 50% of the users. Note that traits do not need to be binary, for example the distance between distributions used for statistical data mining traits will return a score. A score can be used to discriminate users by binning it into various ranges. These ranges can be automatically learned to control for consistency across user events.
[0049] Given a large set of traits, a set of traits may be selected that uniquely specifies a user. The degree to which each trait is demonstrated by a user is determinable based on a collected sequence of events. The traits may be selected such that the degree to which each respective user demonstrates the selected traits is substantially unique to that respective user. There are many ways this can be accomplished. For example, a "greedy" approach may be used by selecting the next trait that has maximum discriminative power by separating the
users into equal sized groups. This procedure may be continued until the users are uniquely determined. In order to give the procedure the ability to tolerate noise, this procedure may be repeated a number of times. Each time the procedure is repeated, any traits that were previously selected are removed from consideration. The developer may be allowed to add any traits that they deem useful based on personal domain knowledge. For each user, the values assigned to these traits create the profile of the user.
[0050] A subsequent step is to enable user identification. As applications are used, the values of the traits may be determined. These values may be refined as more information is received during the use of the applications. For any trait that cannot currently be computed, a default value may be used. (The default value can be computed using statistical techniques that include applying machine learning.) For example, a trait might be based on a part of a game the user has not reached. In addition to finding the closest profile, the set of nearest profiles may also be found. These nearest neighbors may be used to give a distribution over users. The definition of this distance may be, for example, a vector norm or a custom distance that is learned using supervised machine learning techniques based on matches using saved event sequences for the stored user profiles. Various preprocessing techniques may be used to speed up these distance computations including, but not limited to, approximate matching algorithms. Approximate matching algorithms exploit the fact that the set of traits is redundant and that there should be a large separation between the profiles.
[0051] There is the possibility that a new user is using an application and therefore no profile would be expected to match. Once a point in the evidence is reached where it can be determined with high probability that no user matches, a new profile may be created for this user. At some point in the application, a point may be reached in which there are many new users that the profiles are not sufficiently redundant. At this point, a batch process may be run to add more traits to ensure that users can be uniquely identified.
[0052] In some embodiments, the selected set of user traits may not distinctly identify the user over time. This may be due to the fact that the user's behaviors have changed, or additional user's collected events are now similar to the traits of the user. In such occurrences, the selected set of user traits may be updated. Traits that no longer distinctly identify the user may be removed from the selected set of traits and new traits that distinctly identify the user may be added to the selected set of traits.
[0053] One issue with user profiles is that usage behavior may not reach points in an application where the traits are tested. For example, a trait may be determined by the event distribution in a certain area of a game. If the user does not enter that area, there may be insufficient information to classify the user. Another aspect of embodiments disclosed herein is the ability to help control the application to "push" users into areas to discriminate the user via a triggering mechanism that allows information to be sent to an active application session when certain conditions are met. Note that this is context dependent. For example, a system may have enough information to determine that the identity of the current user is either user A (70% confidence), user B (20% confidence), or user C (10% confidence). If the probability that the current user is user A is not high enough to draw a conclusion (e.g. not above some confidence threshold), the application may operate to "transport" the current user to a new area or a new game state (e.g., a specific map or level in a game) where additional traits can be identified which may be useful for making a conclusive identification (e.g. for separating A from B and C).
[0054] Another issue is that a user might slowly change his behavior over time. For example, as a user gets more skilled, he might start using more complex button combinations in a fighting game. The redundant nature of a profile means that the identity of a user can be confirmed and that it may be detected that certain aspects of the user's profile are changing. Based on these changes, the profile may be updated to capture the new behavior.
[0055] FIG. 1 is a block diagram of a functional architecture of an exemplary system. FIG. 1 depicts the exemplary system 100 that includes a plurality of user devices 102 A and 102B, a wired or wireless network 104, a user traits learning module 106, a user prediction module 108, a traits models and profiles database 110, and a third party 112. A user's interactions with an application (e.g. 'events' which convey a user's behavior in or interaction with the application while using a user device 102 A or 102B) are collected by the SDK (or some other means) and sent via a wireless or wired network 104 to a user traits learning module 106. This user traits learning module 106 may employ machine learning/data mining techniques for the purpose of discovering traits that can identify specific users with high accuracy. The discovery of these traits may be based on a number of explicit or implicit properties associated with the uploaded events. For example, context, event types, event sequences and patterns, timestamps, and values of some of the event attributes can be used for this purpose.
[0056] Once the user traits learning module 106 is able to identify distinct user traits, profile models are generated and stored in the user behavior / models database 110. These models are then used by the user prediction module 108 for determining which model is aligned with current in-application events. The in-application events may be collected and provided to the user prediction module 108 in a similar fashion to which the events are collected and provided to the user traits learning module. Once this is done, this system can detect whether the end user behavior is consistent with the learned behavior for the same user and may take actions when either similarities or divergence is detected. Such actions may include sending a notification to third party services 112 or to the application itself.
[0057] It should be noted that while the user traits learning 106 and user prediction 108 modules of FIG. 1 are depicted as separate entities, they can be part of the same entity in a different embodiment. In addition, embodiments disclosed herein are not limited to a single application. User traits may be computed across user interactions with multiple applications. In this case, the unique application name or ID may be used as one of the features used by the machine learning techniques for constructing traits that can discern users. Events may be collected from multiple applications and may be provided to the user traits learning module during the training/model forming stage, and may be provided to the user prediction module during the run-time stage. Each event may carry the application name and/or ID of the application which produced the event. The events may convey a user's behavior in or interaction with multiple applications. The user may be using the multiple applications concurrently, or the user may be using the multiple applications separately within some time period.
[0058] FIG. 2 is a block diagram providing a more detailed illustration of application event processing by the user traits learning system shown in FIG. 1. In particular, FIG. 2 depicts the system 200 that includes an application events module 202, an event sequence analysis module 204, a feature extraction module 206, a user behavior learning module 208, and a user behavior database 210. The application events module 202 provides a sequence of collected events to the event sequence analysis module 204 that operates to consolidate duplicate instances (if applicable), to discard events which are not associated with specific user behavior (e.g. such events or event types could be specified as part of configuration information or determined by machine learning methods), and to associate context information with events (e.g., current timestamp, IP address of device where events originated).
[0059] The feature extraction module 206 operates to compute measurable properties that can be used by the user behavior learning module 208. Such properties (referred to as features in machine learning terminology) may include event sequences, timing between events, relationships between event properties, etc. In one embodiment, feature computation may include the computation of event distributions during specific time periods. In another embodiment, time intervals between events may be used.
[0060] Table 1 illustrates examples of computed features based on sequences of events with specific types (the symbol | denotes "followed by") for an application that allows users to compose and send personalized letters.
Table 1.
[0061] Table 2 illustrates examples of computed features based on sequences of events with specific types (the symbol | denotes followed by) and timing relationships between first and last event in the sequence for the same application mentioned above.
[0062] The user behavior learning module 208 may operate to apply an ensemble of machine learning techniques (as discussed above) for constructing traits that can distinguish between users based on computed features. The models may then be stored in the user behavior / models database 210 and used by the user prediction module (shown in FIG 1). The specific representation of these models depends on the machine learning algorithm used.
[0063] FIG. 3 is a flow diagram illustrating the steps performed in some embodiments for computing distinct user behaviors by the components shown in FIG. 2. In particular, FIG. 3 depicts the flow diagram 300 that includes a plurality of steps. Received application events
(302) are filtered (304) for the purpose of discarding any events that may not have any material impact in the identification of distinct end user traits, such as periodic location events, or events that may always be generated at specific points in the app across all users. Event filtering may take place periodically instead of immediately after event receipt.
[0064] Filtered events may be grouped based on a current application session ID associated with end user interactions. A user or device ID associated with these sessions may be included in such grouping. An explicit session ID may not always be associated with each processed application event. In these cases, different options are available for grouping together events belonging to the same session. For example, the IP address of the device used by the end user can be used for this purpose.
[0065] Each event may contain a timestamp attribute that is populated using the current device timestamp at the time of event generation by the application. In cases where this is not available, the timestamp of event receipt by the proposed system can be used. Event sequences (grouped by session ID and ordered by timestamp) may be segmented (306) into sub-sequences. Several different ways in which such segmentation takes places can be used. For example, an event windowing approach may be used where a specific number of sequential events are considered in each window (e.g., 5 events). A different approach is to select event sequences that occur within a specific time interval (e.g., 60 seconds between the first and last event in a sequence). Yet another approach is to analyze event sequences that occur within specific start and end events (e.g., start of a game map and end of the game map).
[0066] Behavior identification may be based on computation of traits from features that are extracted (308) by the feature extraction module of FIG. 2. Each sub-sequence is then used to determine whether a distinct end user behavior can be identified (312) based on previously identified user behaviors stored in a database and the ensemble of machine learning techniques. Such determination is performed by the user behavior learning module of FIG. 2, based on user behavior information identified previously by this module and stored in the user behavior database. Distinct behaviors are updated in the user behavior database (314). Note that such a determination may be probabilistic. In this case, the identification may have a confidence factor (e.g., score, or probability) associated with it. If no distinct behavior can be discerned, a different sub-sequence is considered next (316).
[0067] The above process may continue until distinct end user behaviors are identified (320) or no more event sub-sequences exist (318). In the former case, the user behavior database is updated to include the identified behavior(s). In the latter case, all or some of the filtered events may be retained and used together with future and/or past application events during a subsequent invocation of the steps shown in FIG. 3.
[0068] FIG. 4 is a flow chart illustrating steps that may be performed by the user prediction module of FIG. 1. In particular, FIG. 4 depicts the flow chart 400 that includes a series of steps. This module receives application events (402) either in batches or one at a time. A plurality of event patterns (404) are identified and an initial event pattern (406) is selected. In either case, the module buffers these events, and once the buffer exceeds a specific threshold (configuration based) or sufficient time elapses, the module attempts to determine whether event patterns (e.g. event sub-sequences) match one or more of the learned distinct user traits. When information in received events can be used to associate these events to a specific device or gamer, this module compares event patterns with learned distinct traits for the same user. Otherwise, the module may attempt to identify users that may share similar traits.
[0069] For each distinct event trait in the received application events, the user prediction module identifies candidate user behavior (profile) data (408) that may match the event trait and then updates a match prediction confidence score (410). This may be repeated for each event pattern (412 and 414) until no more distinct event traits are present in the received application events. The prediction confidence score computed for each representative user profile may then be compared to a configurable threshold for the purpose of determining similarity or divergence (416). In either case, a notification may be triggered and delivered back to the application or to a third-party service.
[0070] In the case of divergence, the triggered notification (418 and 420) may include information to be used by the application for the purpose of directing the user into a position where the user is more likely to exhibit specific traits (in terms of generated events) that can be then used for matching end user behavior to learned distinct user traits.
[0071] Note that various hardware elements of one or more of the described embodiments are referred to as "modules" that carry out (i.e., perform, execute, and the like) various functions that are described herein in connection with the respective modules. As used herein, a module includes hardware (e.g., one or more processors, one or more microprocessors, one
or more microcontrollers, one or more microchips, one or more application-specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs), one or more memory devices) deemed suitable by those of skill in the relevant art for a given implementation. Each described module may also include instructions executable for carrying out the one or more functions described as being carried out by the respective module, and it is noted that those instructions could take the form of or include hardware (i.e., hardwired) instructions, firmware instructions, software instructions, and/or the like, and may be stored in any suitable non-transitory computer-readable medium or media, such as commonly referred to as RAM, ROM, etc.
[0072] Exemplary embodiments disclosed herein are implemented using one or more wired and/or wireless network nodes, such as a wireless transmit/receive unit (WTRU) or other network entity.
[0073] FIG. 5A depicts a first method, in accordance with some embodiments. In particular, FIG. 5A depicts the method 500 that includes collecting a sequence of events at 502, selecting a set of user traits at 504, and storing a user profile at 506. The method 500 may be performed using the systems, such as the systems 100 and 200 of FIGs. 1 and 2, respectively, or other suitable systems.
[0074] At 502, a sequence of events is collected from a first plurality of users of an online software application. Each event represents a user's interaction with the application. At 504, a set of user traits is selected. The degree to which each trait is demonstrated by a user is determinable based on the sequence of events corresponding to that user. Also, the set of traits is selected such that the degree to which each respective user demonstrates the selected traits is substantially unique to that respective user.
[0075] At 506, a user profile is stored for each of a second plurality of users of the software application. The user profiles identify an extent to which each of the selected traits is demonstrated by the respective user.
[0076] FIG. 5B depicts a second method, in accordance with some embodiments. In particular, FIG. 5B depicts the method 510 that includes additional steps to the method 500. In the method 510, at 512, a first sequence of events representing a first user's interaction with the application are collected. Based on the first sequence of events, at 514, the extent to which the first user demonstrates the selected traits is determined. At 516, the first user is
identified by matching the extent to which the user demonstrates the selected traits with one of the stored user profiles.
[0077] In some embodiments, the method may further comprise selecting content based on the identification of the first user and delivering the selected content to the first user. As discussed herein, the selected content may be advertising or marketing content, system notifications, and the like.
[0078] FIG. 6 is a system diagram of an exemplary WTRU 602, which may be employed as a user device operating different mobile application or online software applications in embodiments described herein. As shown in FIG. 6, the WTRU 602 may include a processor 618, a communication interface 619 including a transceiver 620, a transmit/receive element 622, a speaker/microphone 624, a keypad 626, a display/touchpad 628, a non-removable memory 630, a removable memory 632, a power source 634, a global positioning system (GPS) chipset 636, and sensors 638. It will be appreciated that the WTRU 602 may include any sub-combination of the foregoing elements while remaining consistent with an embodiment.
[0079] The processor 618 may be a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Array (FPGAs) circuits, any other type of integrated circuit (IC), a state machine, and the like. The processor 618 may perform signal coding, data processing, power control, input/output processing, and/or any other functionality that enables the WTRU 602 to operate in a wireless environment. The processor 618 may be coupled to the transceiver 620, which may be coupled to the transmit/receive element 622. While FIG. 6 depicts the processor 618 and the transceiver 620 as separate components, it will be appreciated that the processor 618 and the transceiver 620 may be integrated together in an electronic package or chip.
[0080] The transmit/receive element 622 may be configured to transmit signals to, or receive signals from, a base station over the air interface 616. For example, in one embodiment, the transmit/receive element 622 may be an antenna configured to transmit and/or receive RF signals. In another embodiment, the transmit/receive element 622 may be an emitter/detector configured to transmit and/or receive IR, UV, or visible light signals, as examples. In yet another embodiment, the transmit/receive element 622 may be configured to
transmit and receive both RF and light signals. It will be appreciated that the transmit/receive element 622 may be configured to transmit and/or receive any combination of wireless signals.
[0081] In addition, although the transmit/receive element 622 is depicted in FIG. 6 as a single element, the WTRU 602 may include any number of transmit/receive elements 622. More specifically, the WTRU 602 may employ MFMO technology. Thus, in one embodiment, the WTRU 602 may include two or more transmit/receive elements 622 (e.g., multiple antennas) for transmitting and receiving wireless signals over the air interface 616.
[0082] The transceiver 620 may be configured to modulate the signals that are to be transmitted by the transmit/receive element 622 and to demodulate the signals that are received by the transmit/receive element 622. As noted above, the WTRU 602 may have multi-mode capabilities. Thus, the transceiver 620 may include multiple transceivers for enabling the WTRU 602 to communicate via multiple RATs, such as UTRA and IEEE 802.11, as examples.
[0083] The processor 618 of the WTRU 602 may be coupled to, and may receive user input data from, the speaker/microphone 624, the keypad 626, and/or the display/touchpad 628 (e.g., a liquid crystal display (LCD) display unit or organic light-emitting diode (OLED) display unit). The processor 618 may also output user data to the speaker/microphone 624, the keypad 626, and/or the display/touchpad 628. In addition, the processor 618 may access information from, and store data in, any type of suitable memory, such as the non-removable memory 630 and/or the removable memory 632. The non-removable memory 630 may include random-access memory (RAM), read-only memory (ROM), a hard disk, or any other type of memory storage device. The removable memory 632 may include a subscriber identity module (SFM) card, a memory stick, a secure digital (SD) memory card, and the like. In other embodiments, the processor 618 may access information from, and store data in, memory that is not physically located on the WTRU 602, such as on a server or a home computer (not shown).
[0084] The processor 618 may receive power from the power source 634, and may be configured to distribute and/or control the power to the other components in the WTRU 602. The power source 634 may be any suitable device for powering the WTRU 602. As examples, the power source 634 may include one or more dry cell batteries (e.g., nickel-
cadmium (NiCd), nickel-zinc (NiZn), nickel metal hydride (NiMH), lithium-ion (Li-ion), and the like), solar cells, fuel cells, and the like.
[0085] The processor 618 may also be coupled to the GPS chipset 636, which may be configured to provide location information (e.g., longitude and latitude) regarding the current location of the WTRU 602. In addition to, or in lieu of, the information from the GPS chipset 636, the WTRU 602 may receive location information over the air interface 616 from a base station and/or determine its location based on the timing of the signals being received from two or more nearby base stations. It will be appreciated that the WTRU 602 may acquire location information by way of any suitable location-determination method while remaining consistent with an embodiment.
[0086] The processor 618 may further be coupled to other peripherals 638, which may include one or more software and/or hardware modules that provide additional features, functionality and/or wired or wireless connectivity. For example, the peripherals 638 may include sensors such as an accelerometer, an e-compass, a satellite transceiver, a digital camera (for photographs or video), a universal serial bus (USB) port, a vibration device, a television transceiver, a hands free headset, a Bluetooth® module, a frequency modulated (FM) radio unit, a digital music player, a media player, a video game player module, an Internet browser, and the like.
[0087] FIG. 7 depicts an exemplary network entity 790 that may be used in embodiments of the present disclosure, for example as a user traits learning module, the user prediction module, storage databases, and the like. As depicted in FIG. 7, network entity 790 includes a communication interface 792, a processor 794, and non-transitory data storage 796, all of which are communicatively linked by a bus, network, or other communication path 798.
[0088] Communication interface 792 may include one or more wired communication interfaces and/or one or more wireless-communication interfaces. With respect to wired communication, communication interface 792 may include one or more interfaces such as Ethernet interfaces, as an example. With respect to wireless communication, communication interface 792 may include components such as one or more antennae, one or more transceivers/chipsets designed and configured for one or more types of wireless (e.g., LTE) communication, and/or any other components deemed suitable by those of skill in the relevant art. And further with respect to wireless communication, communication interface 792 may be equipped at a scale and with a configuration appropriate for acting on the
network side— as opposed to the client side— of wireless communications (e.g., LTE communications, Wi-Fi communications, and the like). Thus, communication interface 792 may include the appropriate equipment and circuitry (perhaps including multiple transceivers) for serving multiple mobile stations, UEs, or other access terminals in a coverage area.
[0089] Processor 794 may include one or more processors of any type deemed suitable by those of skill in the relevant art, some examples including a general-purpose microprocessor and a dedicated DSP.
[0090] Data storage 796 may take the form of any non-transitory computer-readable medium or combination of such media, some examples including flash memory, read-only memory (ROM), and random-access memory (RAM) to name but a few, as any one or more types of non-transitory data storage deemed suitable by those of skill in the relevant art could be used. As depicted in FIG. 7, data storage 796 contains program instructions 797 executable by processor 794 for carrying out various combinations of the various network- entity functions described herein.
[0091] Although features and elements are described above in particular combinations, one of ordinary skill in the art will appreciate that each feature or element can be used alone or in any combination with the other features and elements. In addition, the methods described herein may be implemented in a computer program, software, or firmware incorporated in a computer-readable medium for execution by a computer or processor. Examples of computer-readable storage media include, but are not limited to, a read only memory (ROM), a random access memory (RAM), a register, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto- optical media, and optical media such as CD-ROM disks, and digital versatile disks (DVDs). A processor in association with software may be used to implement a radio frequency transceiver for use in a WTRU, UE, terminal, base station, RNC, or any host computer.
Claims
1. A method comprising:
for a first plurality of users of an online software application, collecting a sequence of events, wherein each event represents a user interaction with the application;
selecting a set of user traits, wherein:
the degree to which each trait is demonstrated by a user is determinable based on the sequence of events corresponding to that user, and the set of traits is selected such that the degree to which each respective user demonstrates the selected traits is substantially unique to that respective user; and
for each of a second plurality of users of the software application, storing a user profile that identifies an extent to which each of the selected traits is demonstrated by the respective user.
2. The method of claim 1, further comprising:
collecting a first sequence of events representing a first user's interaction with the application;
based on the first sequence of events, determining the extent to which the first user demonstrates the selected traits; and
identifying the first user by matching the extent to which the user demonstrates the selected traits with one of the stored user profiles.
3. The method of claim 2, further comprising:
selecting content based on the identification of the first user; and delivering the selected content to the first user.
4. The method of claim 1, further comprising:
collecting a first sequence of events representing a current user's interaction with the application, wherein the current user purports to be a first user associated with a first user profile;
based on the first sequence of events, determining the extent to which the first user demonstrates the selected traits;
comparing the extent to which the first user demonstrates the selected traits with the first user profile to detect whether there is divergence; and
in response to detecting a divergence, requesting authentication from the first user.
5. The method of claim 4, wherein requesting authentication includes requesting that the current user enter a password.
6. The method of claim 4, further comprising, in response to detecting the divergence, updating the first user profile based on current interactions with the application.
7. The method of claim 1, wherein the software application is a game, further comprising:
collecting a first sequence of events representing a first user's interaction with the game;
based on the first sequence of events, determining the extent to which the first user demonstrates at least a first one of the selected traits;
collecting a second sequence of events representing a second user's interaction with the game;
based on the second sequence of events, determining the extent to which the second user demonstrates at least the first one of the selected traits; and
determining whether to pair the first and second user in the game based at least in part on the extent to which the first and second users demonstrate at least the first one of the selected traits.
8. The method of claim 1, further comprising:
collecting a first sequence of events representing a first user's interaction with the application;
based on the first sequence of events, determining the extent to which the first user demonstrates at least a first one of the selected traits;
selecting content based on the extent to which the first user demonstrates at least the first one of the selected traits; and
delivering the selected content to the first user.
9. The method of claim 1, wherein the application is a game, the method further comprising:
collecting a first sequence of events representing a first user's interaction with the game;
based on the first sequence of events, determining the extent to which the first user demonstrates at least a first one of the selected traits;
providing a game experience to the first user based at least in part on the extent to which the first user demonstrates at least the first one of the selected traits.
10. The method of claim 1, further comprising:
collecting a first sequence of events representing a first user's interaction with the application;
based on the first sequence of events, determining the extent to which the user demonstrates the selected traits;
determining whether any stored user profile matches the extent to which the user demonstrates the selected traits with one of the stored user profiles; and
in response to a determination that no stored profile matches the extent to which the user demonstrates the selected traits, storing a new profile for the first user, that identifies the extent to which each of the selected traits is demonstrated by the first user.
11. The method of claim 1, wherein the software application is a game having a plurality of areas, and wherein at least one of the traits is based on the sequence of events
corresponding to user interaction in a first game area, the method further comprising:
collecting a first sequence of events representing a first user's interaction with the game;
attempting to identify the first user by matching the extent to which the user demonstrates the selected traits with one of the stored user profiles;
in response to a determination that insufficient events have been collected to identify the first user, transporting the first user to the first game area.
12. A system comprising at least one processor and a non-transitory computer storage medium storing instructions operative, when executed on the at least one processor, to perform functions comprising:
for a first plurality of users of an online software application, collecting a sequence of events, wherein each event represents a user interaction with the application;
selecting a set of user traits, wherein:
the degree to which each trait is demonstrated by a user is determinable based on the sequence of events corresponding to that user, and the set of traits is selected such that the degree to which each respective user demonstrates the selected traits is substantially unique to that respective user; and
for each of a second plurality of users of the software application, storing a user profile that identifies an extent to which each of the selected traits is demonstrated by the respective user.
13. The system of claim 12, the set of functions further comprising:
collecting a first sequence of events representing a first user's interaction with the application;
based on the first sequence of events, determining the extent to which the user demonstrates the selected traits; and
identifying the first user by matching the extent to which the user demonstrates the selected traits with one of the stored user profiles.
14. The system of claim 12, the set of instructions further comprising:
collecting a first sequence of events representing a first user's interaction with the application;
based on the first sequence of events, determining the extent to which the first user demonstrates at least a first one of the selected traits;
selecting content based on the extent to which the first user demonstrates at least the first one of the selected traits; and
delivering the selected content to the first user.
15. The system of claim 12, the set of functions further comprising:
collecting a first sequence of events representing a first user's interaction with the application;
based on the first sequence of events, determining the extent to which the user demonstrates the selected traits;
determining whether any stored user profile matches the extent to which the user demonstrates the selected traits with one of the stored user profiles; and
in response to a determination that no stored profile matches the extent to which the user demonstrates the selected traits, storing a new profile for the first user, that identifies the extent to which each of the selected traits is demonstrated by the first user.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662350053P | 2016-06-14 | 2016-06-14 | |
US62/350,053 | 2016-06-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017218216A1 true WO2017218216A1 (en) | 2017-12-21 |
Family
ID=59062103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2017/035725 WO2017218216A1 (en) | 2016-06-14 | 2017-06-02 | System and method for user traits recognition and prediction based on mobile application usage behavior |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2017218216A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111242239A (en) * | 2020-01-21 | 2020-06-05 | 腾讯科技(深圳)有限公司 | Training sample selection method and device and computer storage medium |
US10742642B2 (en) * | 2016-12-07 | 2020-08-11 | International Business Machines Corporation | User authentication based on predictive applications |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060463B1 (en) * | 2005-03-30 | 2011-11-15 | Amazon Technologies, Inc. | Mining of user event data to identify users with common interests |
US20140201120A1 (en) * | 2013-01-17 | 2014-07-17 | Apple Inc. | Generating notifications based on user behavior |
US9185095B1 (en) * | 2012-03-20 | 2015-11-10 | United Services Automobile Association (Usaa) | Behavioral profiling method and system to authenticate a user |
-
2017
- 2017-06-02 WO PCT/US2017/035725 patent/WO2017218216A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060463B1 (en) * | 2005-03-30 | 2011-11-15 | Amazon Technologies, Inc. | Mining of user event data to identify users with common interests |
US9185095B1 (en) * | 2012-03-20 | 2015-11-10 | United Services Automobile Association (Usaa) | Behavioral profiling method and system to authenticate a user |
US20140201120A1 (en) * | 2013-01-17 | 2014-07-17 | Apple Inc. | Generating notifications based on user behavior |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10742642B2 (en) * | 2016-12-07 | 2020-08-11 | International Business Machines Corporation | User authentication based on predictive applications |
CN111242239A (en) * | 2020-01-21 | 2020-06-05 | 腾讯科技(深圳)有限公司 | Training sample selection method and device and computer storage medium |
CN111242239B (en) * | 2020-01-21 | 2023-05-30 | 腾讯科技(深圳)有限公司 | Training sample selection method, training sample selection device and computer storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11659050B2 (en) | Discovering signature of electronic social networks | |
US11449907B2 (en) | Personalized contextual suggestion engine | |
US11537744B2 (en) | Sharing user information with and between bots | |
Zimmeck et al. | A privacy analysis of cross-device tracking | |
US10726438B2 (en) | Personalized contextual coupon engine | |
US8631122B2 (en) | Determining demographics based on user interaction | |
CN108369665B (en) | Prediction of (mobile) application usage churn | |
TWI672598B (en) | Method and system for evaluating user satisfaction with respect to a user session | |
US20120311032A1 (en) | Emotion-based user identification for online experiences | |
US20130097246A1 (en) | Multilocal implicit social networking | |
IL256305A (en) | Multi-factor location verificaiton | |
US20200327821A1 (en) | Method and System For Establishing User Preference Patterns Through Machine Learning | |
US20190139063A1 (en) | Methodology of analyzing incidence and behavior of customer personas among users of digital environments | |
WO2017197826A1 (en) | Relationship-based image feature matching method, device, and system | |
US20230206034A1 (en) | Prediction of Next Place Visits on Online Social Networks | |
US20190180386A1 (en) | Cross-Validating Places on Online Social Networks | |
US10223462B2 (en) | Associating user logs using geo-point density | |
US20190007523A1 (en) | Automatic detection of human and non-human activity | |
US10425687B1 (en) | Systems and methods for determining television consumption behavior | |
WO2019005893A1 (en) | Multi-application user interest memory management | |
US10506383B2 (en) | Location prediction using wireless signals on online social networks | |
US20160275046A1 (en) | Method and system for personalized presentation of content | |
WO2017218216A1 (en) | System and method for user traits recognition and prediction based on mobile application usage behavior | |
Rachuri et al. | Beyond location check-ins: Exploring physical and soft sensing to augment social check-in apps | |
WO2016176376A1 (en) | Personalized contextual suggestion engine |
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: 17730322 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: 17730322 Country of ref document: EP Kind code of ref document: A1 |