The present description relates generally to account sharing for electronic devices.
Users of electronic devices typically have one or more user accounts with one or more servers that communicate with the electronic devices. The user accounts can be associated with applications on an electronic device, secure storage for content generated with an electronic device of the user, streaming services for the user, and the like. Each user of each device typically has their own account for accessing the applications, content, and services.
Certain features of the subject technology are set forth in the appended claims. However, for purpose of explanation, several embodiments of the subject technology are set forth in the following figures.
The detailed description set forth below is intended as a description of various configurations of the subject technology and is not intended to represent the only configurations in which the subject technology can be practiced. The appended drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details for the purpose of providing a thorough understanding of the subject technology. However, the subject technology is not limited to the specific details set forth herein and can be practiced using one or more other implementations. In one or more implementations, structures and components are shown in block diagram form in order to avoid obscuring the concepts of the subject technology.
The subject technology provides machine learning models trained to use content that is local to a user's own device to identify potential group members for group sharing of applications, data, services, and/or content. Groups may include family groups, coworker groups, friend groups or the like.
In one or more implementations, initial identification of eligibility of a first user for group sharing can be determined by a server at which the user and another user have respective user accounts. In these implementations, once eligibility of the first user is determined at the server, the server instructs the user's device to perform on-device operations, such as machine learning operations, to identify potential group members. The user's device may perform the machine learning operations using content that is locally generated and/or stored at the user's device, to identify one or more potential group members for the user. The user's device may also use explicit trust signals at the user's device to verify a potential family member before suggesting sharing with that potential family member. Operations can be used for groups other than families.
The network environment 100 includes electronic devices 102, 103, 104, 105, 106 and 107 (hereinafter “the electronic devices 102-107”), a local area network (“LAN”) 108, a network 110, and a content provider 112 and one or more cloud-based service(s) 114 (hereinafter “the servers 112-114”).
Content provider 112 may provide access to content such as streaming content (e.g., video content, audio content) or other subscription-based content (e.g., electronic book content or the like) to user devices (e.g., to one or more of the electronic devices 102-107) that are associated with a user account that has been established with the content provider 112. Cloud-based service 114 may provide access to cloud-based storage, content (e.g., photos, videos, calendar information, etc.) stored in the cloud-based storage, applications (e.g., gaming applications, streaming applications, and/or any other application) to user devices (e.g., to one or more of the electronic devices 102-107) that are associated with a user account that has been established with the cloud-based service 114. Users of the electronic devices 102-107 may provide authentication information to that device, to log that device into one or more accounts that are maintained for that user at one or more of the servers 112-114).
In accordance with aspects of the subject disclosure, one or more of the servers 112-114 can provide group accounts that can grant multiple group members in the group access to the same applications, content, storage, photos, calendars, etc. However, it can be challenging to identify potential group members for group accounts, particularly in a way that preserves the privacy of each individual user. In accordance with aspects of the subject disclosure, privacy preserving group member identification is provided, using a machine learning engine that operates locally on the user's device, using the content stored at the user's device.
Various ones of the electronic devices 102-107 may be single user devices or multi-user devices. Single user devices (e.g., electronic devices 106 and 107) may have a single user and may be associated with a single user account such as an individual user account with one or more of the servers 112-114. Multi-user devices (e.g., electronic devices 102, 103, 104, and 105) may provide functionality to switch the current state of the device between the individual user accounts of one or more users and/or a group account of a group of users. In one or more implementations, the electronic devices 102-107 may form part of a connected home environment 116, and the LAN 108 may communicatively (directly or indirectly) couple any two or more of the electronic devices 102-107 within the connected home environment 116. Moreover, the network 110 may communicatively (directly or indirectly) couple any two or more of the electronic devices 102-107 with the content provider 112 and/or the cloud-based service 114, for example, in conjunction with the LAN 108.
In one or more implementations, the LAN 108 may include one or more different network devices/network medium and/or may utilize one or more different wireless and/or wired network technologies, such as Ethernet, optical, Wi-Fi, Bluetooth, Zigbee, Powerline over Ethernet, coaxial, Ethernet, Z-Wave, cellular, or generally any wireless and/or wired network technology that may communicatively couple two or more devices.
In one or more implementations, the network 110 may be an interconnected network of devices that may include, and/or may be communicatively coupled to, the Internet. For explanatory purposes, the network environment 100 is illustrated in
One or more of the electronic devices 102-107 may be, for example, a portable computing device such as a laptop computer, a smartphone, a smart speaker, a peripheral device (e.g., a digital camera, headphones), a digital media player, a tablet device, a wearable device such as a smartwatch or a band, a connected home device, such as a wireless camera, a router and/or wireless access point, a wireless access device (e.g., a door lock), a smart thermostat, smart light bulbs, home security devices (e.g., motion sensors, door/window sensors, etc.), smart outlets, smart switches, and the like, or any other appropriate device that includes and/or is communicatively coupled to, for example, one or more wired or wireless interfaces, such as WLAN radios, cellular radios, Bluetooth radios, Zigbee radios, near field communication (NFC) radios, and/or other wireless radios.
By way of example, in
In one or more implementations, the electronic devices 102-105 may correspond to multi-user devices, which are associated with a home account and usable to provide content and/or respond to requests (e.g., voice requests) for multiple individual users associated with respective individual user accounts of the connected home environment 116 (e.g., authorized users), and/or for multiple group members of a group account associated with the connected home environment. One of more of the electronic devices 102-107 may be configured to receive user authorization to access respective user account profiles for single user accounts and/or group accounts, in order to provide access to content, applications, or storage within the connected home environment 116.
In one or more implementations, the electronic device 106 may correspond to a personal device associated with a user account (e.g., of a user named “Alison”). Alison may reside in or be a guest of the home/residence (e.g., corresponding to the connected home environment 116), which is also the home of another user (e.g., named “Bob”). The electronic device 107 may be associated with a user account for Bob, and the electronic devices 102-105 may correspond to a home account for Bob. For example, the respective users may register and/or associate their respective electronic devices 102-106 to their respective user accounts and/or to a group account of which they are a group member, through a service provider, such as through the cloud-based service 114.
In one or more implementations, Bob may interact with the electronic device 107 in order to access and/or output content (e.g., video and/or music available through Bob's content library associated with Bob's individual user account and/or with a group account for which Bob is a group member) on one or more of the electronic devices 102-105. For multi-user devices, Allison's individual user account may be associated with, and accessible on, one or more of the electronic devices 102-105 (e.g., the multi-user devices) in Bob's connected home environment 116 and/or Allison may be a group member of the same group (e.g., a family group) for which Bob is a group member. Thus, Alison may use her electronic device 106 as a remote control in order to output content (e.g., content that is provided by the content provider 112 in association with her content library) on one or more of the electronic devices 102-105.
Alternatively, or in addition, Alison may access her media content (e.g., music and/or video) on one or more of the electronic devices 102-105 without using her electronic device 106. For example, the electronic devices 102-103 (e.g., smart speakers) may have a virtual assistant application running thereon, and Alison may provide a voice request to stream music (e.g., via the content provider 112) in association with her individual user account (e.g., an individual content library) and/or a group account for which she is a group member (e.g., a group content library). In another example, the electronic devices 104-105 (e.g., digital media players) may have respective remote control devices that Alison can use (e.g., via physical button(s) and/or voice requests spoken to the remote) to output video and/or music via the content provider 112 in association with her individual user account and/or the group account.
Bob's device 107 and/or the electronic devices 102-105 may also provide access to content, storage, applications, etc. associated with a group account established by Bob with one or more of the servers 112-114. In accordance with one or more implementations, Bob's electronic device 107 may identify Allison as a potential group member for a new or existing group account of Bob, and may suggest to Bob to add Allison as a group member. For example, if Bob has a single user account with one or more of the servers 112-114, electronic device 107 may suggest that Bob establish a group with Allison when Allison is identified as a potential group member for Bob. In another example, if Bob already has an existing group account, electronic device 107 may suggest that Bob add Allison to Bob's existing group account when Allison is identified as a potential group member for Bob. Further details of the processes for identifying Allison as a potential group member are provided below.
Moreover, based on an invitation from Bob (e.g., via the electronic device 107) and acceptance by Alison (e.g., via the electronic device 106), Alison may be added to a group account of Bob (e.g., by obtaining user information for Allison to be added to Bob's group account and/or by linking Allison's individual user account to Bob's single user account or Bob's group account). In one or more implementations, a group account may have more than one primary user. For example, a group account may be shared by two primary users (e.g., Bob and Dave). In this example, based on an invitation from Bob or an invitation from Dave (e.g., via the electronic device 107) and acceptance by Alison (e.g., via the electronic device 106 or another electronic device associated with Dave), Alison may be added to a group account of Bob and Dave (e.g., by obtaining user information for Allison to be added to Bob and Dave's group account and/or by linking Allison's individual user account to Bob and Dave's group account).
In one or more implementations, the cloud-based service 114 may be configured to perform operations in association with individual user accounts and/or group accounts such as: storing data (e.g., voice profiles, user settings/preferences, files such as documents and/or photos, etc.) with respect to individual user accounts and/or group accounts, sharing and/or sending data with other users with respect to individual user accounts and/or group accounts, backing up device data with respect to individual user accounts and/or group accounts, and/or associating devices and/or groups of devices (e.g., within the connected home environment 116) with individual user accounts and/or group accounts.
One or more of the servers 112-114 may be, and/or may include all or part of the device discussed below with respect to
The device 200 may include a processor 202, a memory 204, a communication interface 206 and an audio input device 208. The processor 202 may include suitable logic, circuitry, and/or code that enable processing data and/or controlling operations of the device 200. In this regard, the processor 202 may be enabled to provide control signals to various other components of the device 200. The processor 202 may also control transfers of data between various portions of the device 200. Additionally, the processor 202 may enable implementation of an operating system or otherwise execute code to manage operations of the device 200.
The memory 204 may include suitable logic, circuitry, and/or code that enable storage of various types of information such as received data, generated data, code, and/or configuration information. The memory 204 may include, for example, random access memory (RAM), read-only memory (ROM), flash, and/or magnetic storage.
In one or more implementations, in a case where the device 200 corresponds to one of the electronic devices 102-107, the memory 204 may store one or more components configured to operate a machine-learning engine, locally at the device 200, to identify one or more potential group members for a group account, using data stored locally in memory 204. Moreover, the audio input device 208 may include suitable logic, circuitry, and/or code for capturing audio input, such as voice requests. For example, the audio input device 208 may include one or more microphones and/or other devices for capturing audio input.
In one or more implementations, in a case where the device 200 corresponds to the cloud-based service, 114, the memory 204 may store user profile data (e.g., user profiles associated with individual and/or group accounts) and/or configuration settings associated with a home environment (e.g., the connected home environment 116).
The communication interface 206 may include suitable logic, circuitry, and/or code that enables wired or wireless communication, such as between any of the electronic devices 102-107 and/or the servers 112-114 over the network 110 (e.g., in conjunction with the LAN 108). The communication interface 206 may include, for example, one or more of a Bluetooth communication interface, a cellular interface, an NFC interface, a Zigbee communication interface, a WLAN communication interface, a USB communication interface, or generally any communication interface.
In one or more implementations, one or more of the processor 202, the memory 204, the communication interface 206, the audio input device 208, and/or one or more portions thereof, may be implemented in software (e.g., subroutines and code), may be implemented in hardware (e.g., an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gated logic, discrete hardware components, or any other suitable devices) and/or a combination of both.
In one or more implementations, group account 300 may be a data structure (e.g., a data structure that is associated with the group identifier 315) that stores an association between the individual user accounts 310 and 320. Once the association is established between the individual user accounts 310 and 320, either of users 101 and 332 may be provided with access to some or all of the games, applications, songs, movies, etc. purchased by the other of users 101 and 332 (e.g., and/or any other user with a user account that is associated with group account 300) using their respective individual user accounts 310 and 320 and/or via the common group account 300.
For example, if User A buys a game 312 using individual user account 310 (e.g., with electronic device 333), that game becomes associated with individual user account 310 and/or group identifier 315. If User B is part of a group with User A and wants to add that game on electronic device 334, User B may be provided with access to that game via group identifier 315 and/or group account 300. For example, when User B attempts to obtain that game with user device 334, user device 334 may display a notification such as, for example, “You can access this game through a purchase made by another member in your family”.
Portions of the information associated with group account 300 can be accessible to all members of the corresponding group, and/or other portions of the information associated with group account can be user specific. In one example, each of user accounts 310 and 320 can provide access to the same set of games 302 and applications 304, whether originally obtained using user account 310, user account 320, or group account 300. However, for some games and/or applications, cloud-based service 114 and/or electronic devices 333 and 334 may store profile information and/or configuration information separately for each group member (e.g., in association with the group account 300 and/or with the individual user accounts 310 and 320). In this way, each of users 101 and 332 can play the same game, accessed using group account 300, while the game progress, avatar or character selections, etc. are stored for each member in the group. Photos 306 may be stored in a group photo album that is accessible (e.g., for read and/or write of photos, videos, or the like) by all members in the group corresponding to group account 300. Cloud storage 308 may be a set amount of storage that can be used by the group corresponding to group account 300, and/or may be partitioned to include secure storage spaces for each member and/or for the entire group. Individual user accounts 310 and 320 may also include or be associated with individual photo albums and/or cloud storage that is not shared with other members of the group. In this way, and as illustrated in
In the example of
Each group and/or group account 300 may have one or more primary users, and one or more secondary users in one or more implementations. Group account 300 may be a family account for a family of users (e.g., for sharing access to applications, games, etc. across the family, such as for a group account where one parent or two parents can act as primary users for the group account), a co-worker account for a group of co-workers (e.g., for sharing access to common work-related applications and/or data), a friends group, and/or any other suitable group of users of a common set of applications, storage, content, etc.
In order to facilitate the formation and/or growth of the groups for a group account, while maintaining the privacy of each user, a user's device may be provided with the ability to identify potential group members for a group including that user, using the data that is stored locally at that user's device. The local data may include a list of contacts, designation information for those contacts, interaction information for those contacts, and/or other information stored locally at the user's device for those contacts. Once one or more potential group members have been identified locally at the user's device (e.g., from within the user's contacts), the user's device may provide an option to the user to form a new group with the identified potential group member or invite and/or add the identified potential group member to an existing group.
As shown in
Pre-filter 403 and/or other components and/or processors at electronic device 333 may also, and/or alternatively, pre-process the contact information 408 and/or the contacts 406 to extract specific contact features from the contact information, and to arrange the extracted contact information for input to the group candidate identification model 404.
Contact information 408 may include contact features in various categories of features for one or more of contacts 406 in the electronic device 333, for which evidence of the presence of these features can be found at electronic device 333. For example, data associated with contacts 406 and/or activity at the electronic device 333 can be pre-processed to form contact information 408, which may include interaction features that describes interactions (e.g., over a predetermined period of time such as over the preceding week, weeks, month, months, six months, year, or years), and/or contact profile features that describe stored features of one or more of the contacts. The interaction information and/or the contact profile information may be extracted from the data stored at electronic device 333 and/or provided to the group candidate identification model 404 to obtain one or more potential group members from the model.
The contact information 408 may also include explicit trust signals that can be used to verify the potential group members provided by the model, prior to suggesting the model-provided potential group members to the user. The explicit trust signals (also referred to herein as explicit user trust data) can be provided to group candidate identification model 404 as part of the input data to the model and/or that can be used by a (e.g., optional) verification module 405 to verify that one or more of the suggested group members from group candidate identification model 404 are trusted potential group members.
The explicit trust signals can include, for example, location information and/or time information. As illustrative examples, the location information may include co-habitation information or co-working information. For example, the co-habitation information may be generated based on proximity signals between electronic device 333 and another user's device (such as electronic device 334 of
The interaction information may include information associated with a social graph of the user (e.g., based on historical social interactions between the user and various contacts, as indicated by the data stored at the electronic device 333). For example, the interaction information may include, for each contact of a user, a total number of calls between the user and the contact, a duration of each call between the user and the contact, and/or or a total number of calls of (e.g., at least) a particular duration between the user and the contact. The particular duration may be defined relative to an average duration of calls to and/or from the electronic device 333 (e.g., a duration that is twice the average duration of all calls to and/or from the device). As another example, the interaction information may include, for each contact, a statistical description (e.g., an average, a standard deviation, a minimum, a maximum, or a median) of the number of calls (e.g., incoming calls and/or outgoing calls) between the user and the contact over a period of time (e.g., per week, per day, etc.). As another example, the interaction information may include, for each contact, a ratio of a number of days on which a call to and/or from the contact was made, to a total number of days logged.
As another example, the interaction information may include, for each contact, a ratio of a number and/or a duration of outgoing calls to the contact, to the number and/or duration of all calls to and/or from the electronic device. As another example, the interaction information may include, for each contact, a ratio of a number and/or a duration of calls to or from the contact during predetermined periods of time (e.g., time periods within a day and/or days within a week), to the number and/or duration of all calls to and/or from the electronic device. As another example, the interaction information may include, for each contact, a ratio of a number of calls greater than a predetermined length (e.g., within predetermined periods of time), to the number and/or duration of all calls to and/or from the electronic device. As another example, the interaction information may include, for each contact, a ratio of a number and/or a duration of calls over a recent period of time (e.g., over the preceding week, two weeks, several weeks, month, two months, three months, etc.), to the number and/or duration of all calls to and/or from the electronic device. As another example, the interaction information may include, for each contact, a total number of messages to and/or from the contact. As another example, the interaction information may include, for each contact, a statistical description (e.g., an average, a standard deviation, a minimum, a maximum, or a median) of the number of messages (e.g., incoming messages and/or outgoing messages) between the user and the contact over a period of time (e.g., per week, per day, etc.). As another example, the interaction information may include, for each contact, a number of days on which a message to and/or from the contact was exchanged, to a total number of days on which messages were logged.
As another example, the interaction information may include, for each contact, a ratio of a number of outgoing messages to the contact, to the number all messages to and/or from the electronic device. As another example, the interaction information may include, for each contact, a ratio of a number of replied messages, to the number of all messages to and/or from the electronic device. As another example, the interaction information may include, for each contact, a ratio of a number of messages to or from the contact during predetermined periods of time (e.g., time periods within a day and/or days within a week), to the number of all messages to and/or from the electronic device. As another example, the interaction information may include, for each contact, a ratio of a number of messages over a recent period of time (e.g., over the preceding week, two weeks, several weeks, month, two months, three months, etc.) to the number of all messages to and/or from the electronic device.
The number of calls to and/or from particular contacts, the total number of calls to and/or from a device, the number of messages to and/or from particular contacts, the total number of messages to and/or from the device, and/or ratios and/or statistical descriptions of these values may be determined (e.g., logged and/or computed) over a common recent period of time such as over the week, two weeks, several weeks, month, two months, three months preceding the time of analysis. Electronic device 333 may log and/or store call and/or message data over the common recent period of time, in various time segments, such as in hourly segments and/or day-of-week segments. The hourly segments may include, for example, a morning segment (e.g., from 6 AM until 12 PM), an afternoon segment (e.g., from 12 PM until 6 PM), an evening segment (e.g., from 6 PM until 12 AM), and a night segment (e.g., from 12 AM until 6 AM). The day-of-week segments may include, for example, a segment for each day of the week, or four day-of-week segments such as a weekdays segment (e.g., including Monday through Thursday), a Friday segment, a Saturday segment, and a Sunday segment. Logging and/or storing the calls and/or messaging in the various time segments can facilitate determining various aspects of the interaction information described above to form input data for the group candidate identification model 404.
The contact profile information may include attributes of one or more contacts that have been added by the user of the electronic device. The attributes may include, for example, an identification, at the electronic device 104, that a contact is an emergency contact for the user. As another example, these attributes may include an identification of a contact in connection with a connected home environment in common with the user. The contact profile information may include a feature (e.g., a flag value such as a binary feature) that indicates that the family name (e.g., surname) of a contact is the same as the family name of the user. The contact profile information may include a feature (e.g., a flag value such as a binary feature) that indicates that a contact is designated as a parent of the user (e.g., based on a contact name including a variant of “mom”, “dad”, “mother”, or “father” or another designator of a parent stored at the device). The contact profile information may include a feature (e.g., a flag value such as a binary feature) that indicates that a contact is a designated as a favorite contact at the electronic device. The contact profile information may include a feature (e.g., a flag value such as a binary feature) that indicates that the location of the electronic device has been shared with a contact and/or that the location of one or more electronic devices of a contact has been shared with the electronic device.
The contact profile information may include a feature (e.g., a flag value such as a binary feature) that indicates a call between the user and a contact, on a birthday of the user and/or on a birthday of the contact, where the birthday(s) are stored at the electronic device. The contact profile information may include a feature (e.g., a flag value such as a binary feature) that indicates that a contact is designated, at the electronic device, as an emergency contact for the user. The contact profile information may include a feature (e.g., a flag value such as a binary feature) that indicates that a contact has been designated with “family relationship” label at the electronic device. For example, a parent may add a new contact for their child and label the contact with a family relationship label (e.g., a daughter, a son, a child, etc.), or a contact may be added for any other family member and labeled as a generic family member or a specific family member (e.g., cousin, sibling, grandparent, aunt, uncle, etc.). The contact profile information may include a feature (e.g., a flag value such as a binary feature) that indicates that the contact is present in one or more photos stored at the electronic device (e.g., as marked by the user, such as in connection with photo album and/or a home application for the connected home network of the user, or as predicted by a computer vision model at the electronic device). The contact profile information may include a feature (e.g., a flag value such as a binary feature) that indicates that the contact is a member of a connected home environment in common with the user.
The interaction information, the contact profile information and/or the explicit trust signals can be combined (e.g., by pre-filter 403) into a vector, an array, a tensor or other data structure that can be provided as input to the group candidate identification model 404.
The group candidate identification model 404 may be trained based on training data that includes user-contact interaction data for training contacts and a training user. For example, the training data may be obtained from anonymized contacts and contact information for a set of training users. The training data may include anonymized interaction information, contact profile information and/or explicit trust signals for the training users.
Training data may include, for example, a binary label for each training contact based on whether they are part of a training user's group. Thus, for every training user, a training dataset can be provided in which, for example, each row of the training data corresponds to the feature representation for a single contact, and a binary label indicating whether the contact is part of the training user's group.
At block 502, a user device of a first user, such as electronic device 333 of user 101 as described above in connection with
At block 504, at least a portion of the contact information may be provided to a machine learning model (e.g., the group candidate identification model 404) at the user device, the machine learning model having been trained based on training data that includes user-contact interaction data for training contacts and a training user. Providing the portion of contact information may include pre-processing the list of contacts to identify a subset of the contacts to provide to the machine-learning model. The contact information may then be extracted for the subset of the contacts. The contact information may include at least one of interaction information, contact profile information, and explicit user trust signals as described herein.
In one or more implementations, the user device may pre-filter the list of contacts prior to providing at least the portion of the contact information to the machine learning model. Pre-filtering the list of contacts may include obtaining contacts from the list of contacts that have had at least one interaction with the first user over a predetermined amount of time (e.g., over the preceding several months, such as over the preceding six months). Pre-filtering the list of contacts may also, or alternatively, include pre-filtering the list of contacts based on a type of the group. As discussed herein, the type of the group may include a family group, a coworker group, a friends group, or a medical information sharing group. Pre-filtering based on the type of group may include filtering the contacts based on time and proximity information as described herein (e.g., by determining that the user's device is commonly co-located with another user's device in the morning and evening hours, for a family group).
Although the list of contacts may be pre-filtered to remove contacts with zero interactions with the first user over the predetermined amount of time, from the contacts that are provided to the machine learning model, the training data may include user-contact interaction data for training contacts with zero interactions with the training user over the predetermined amount of time. Including training contacts with zero interactions in the training data can help reduce false positive identifications of potential group members, whether or not contacts with zero interactions are included in the input to the trained model.
At block 506, the user device determines, using the machine learning model at the user device, at least one potential group member for the first user from the list of contacts. In one or more implementations, the user device may initiate the process of identifying a potential group member for the user when the user downloads or opens an application that can be accessed via a group account, or responsive to another trigger (e.g., a time-based trigger) generated at the user device.
In one or more implementations, the user device may initiate the process of identifying a potential group member responsive to a trigger from a remote server such as cloud-based service 114. For example, in one or more implementations, prior to determining the at least one potential group member, the remote server may identify the first user as a candidate group member (e.g., a candidate for establishing the group) at the remote server. For example, identifying the first user as the candidate may include identifying payment information for the first user that is stored at the remote server and that is shared with another user of the remote server. For example, the remote server may perform a blind credit card match that indicates that the first user and the other user of the remote server have each made a purchase with the same credit card, without being able to identify the credit card number or the identity of the other user of the remote server. The remote server may also identify a candidate group member using a blind surname match or a blind address match. Because the remote server cannot identify the other user (e.g., only that one may exist), the remote server then provides an indication to the user device that the first user is or may be a candidate group member (e.g., that the first user may be associated with the other user and/or that the first user may want to and/or be candidate to establish a group), which can trigger the user device to perform the operations of blocks 502, 504, and 506, to identify one or more potential group members for the candidate group member. In this way, determining the at least one potential group member may be performed responsive to a notification from the remote server to the user device that the first user is a candidate group member (e.g., in scenarios in which the first user is not already a member of a group).
At block 508, the user device may provide an option for the first user to include the at least one potential group member in a group including the first user. Providing the option may include providing a suggestion, such as the suggestion provided in option 400 of
Providing the option for the first user to include the at least one potential group member in the group may include an option to establish the group including the first user and the at least one potential group member, or may include an option to add the at least one potential group member to an existing group including the first user and at least one additional user.
In one or more implementations, prior to providing the option for the first user to establish the group including the first user and the at least one potential group member, the user device may confirm, based on explicit user trust data stored at the user device, that the at least one potential group member that has been provided by the machine learning model is a trusted potential group member. In these implementations, the explicit trust data is used to confirm the at least one potential group member that has been provided by the machine learning engine. For example, prior to providing the option to add the at least one potential group member suggested by the machine leaning engine to the first user, the user device may confirm that the at least one potential group member has been within the proximity (e.g., within NFC communications proximity) of the user device (e.g., at least a minimum number of times, with at least a minimum frequency, and/or within one or more particular periods of time), and/or that the at least one potential group member is listed in a “favorites” list of the contacts on the user device. In one or more other implementations the explicit user trust data stored at the user device can be provided to the machine learning engine together with at least the portion of the list of contacts so that the at least one potential group member that is provided by the machine learning engine is more likely to be a trusted potential group member (e.g., without then performing a separate verification operation).
At block 602, a user device such as electronic device 104 may extract interaction information for each of at least some of the contacts in the list of contacts from data stored at the user device. The user device may also extract contact profile information for each of the at least some of the contacts in the list of contacts from data stored at the user device. The user device may also extract explicit trust signals for each of the contacts in the list of contacts from data stored at the user device.
At block 604, the user device may provide an identifier of each contact in the at least some of the contacts, and the extracted interaction information for each contact in the at least some of the list of contacts to the machine learning model (e.g., the group candidate identification model 404). The user device may also provide the extracted contact profile information and/or the extracted explicit trust signals to the machine learning model.
At block 702, a selection of the option (e.g., option 400 of
At block 704, the user device (e.g., electronic device 333) may transmit, responsive to the selection, a request from the user device to the remote server (e.g., cloud-based service 114) to include the at least one potential group member (e.g., CONTACT A) in the group. The request may include an identifier (e.g., a telephone number, a name, etc.) of the at least one potential group member. The remote server may, for example, send an invitation to another electronic device (e.g., electronic device 334) of the at least one potential group member to join the group. Prior to including the at least one potential group member in the group, the remote server may receive consent (e.g., a positive response to the invitation) from the potential group member.
In another implementation, the invitation may be provided directly from the electronic device to the other electronic device of the at least one potential group member, and the request to the remote server to include the at least one potential group member in the group may be sent from the electronic device of the user or the other electronic device of the at least one potential group member to the remote server (e.g., including authorization information from both the user and the at least one potential group member to include the at least one potential group member in the group).
Including the at least one potential group member in the group, at the remote server, may include associating an identifier of the at least one potential group member and/or an identifier of the other electronic device (e.g., electronic device 334) with a group account corresponding to the group. Including the at least one potential group member in the group, at the remote server, may include providing access, by the user and the at least one potential group member, to one or more games (e.g., games 302), one or more applications (e.g., applications 304), one or more shared photo albums (e.g., including photos 306), and/or at least a portion of a shared cloud storage space (e.g., cloud storage 308).
At block 706, electronic device 104 may receive a confirmation from the remote server that the at least one potential group member has been included in the group.
As described above, one aspect of the present technology is the gathering and use of data available from specific and legitimate sources for identifying a potential group member for a group of a user. The present disclosure contemplates that in some instances, this gathered data may include personal information data that uniquely identifies or can be used to identify a specific person. Such personal information data can include demographic data, location-based data, online identifiers, telephone numbers, email addresses, home addresses, data or records relating to a user's health or level of fitness (e.g., vital signs measurements, medication information, exercise information), date of birth, or any other personal information.
The present disclosure recognizes that the use of such personal information data, in the present technology, can be used to the benefit of users. For example, the personal information data can be used for identifying a potential group member for a group of a user. Accordingly, use of such personal information data may facilitate transactions (e.g., on-line transactions). Further, other uses for personal information data that benefit the user are also contemplated by the present disclosure. For instance, health and fitness data may be used, in accordance with the user's preferences to provide insights into their general wellness, or may be used as positive feedback to individuals using technology to pursue wellness goals.
The present disclosure contemplates that those entities responsible for the collection, analysis, disclosure, transfer, storage, or other use of such personal information data will comply with well-established privacy policies and/or privacy practices. In particular, such entities would be expected to implement and consistently apply privacy practices that are generally recognized as meeting or exceeding industry or governmental requirements for maintaining the privacy of users. Such information regarding the use of personal data should be prominently and easily accessible by users, and should be updated as the collection and/or use of data changes. Personal information from users should be collected for legitimate uses only. Further, such collection/sharing should occur only after receiving the consent of the users or other legitimate basis specified in applicable law. Additionally, such entities should consider taking any needed steps for safeguarding and securing access to such personal information data and ensuring that others with access to the personal information data adhere to their privacy policies and procedures. Further, such entities can subject themselves to evaluation by third parties to certify their adherence to widely accepted privacy policies and practices. In addition, policies and practices should be adapted for the particular types of personal information data being collected and/or accessed and adapted to applicable laws and standards, including jurisdiction-specific considerations which may serve to impose a higher standard. For instance, in the US, collection of or access to certain health data may be governed by federal and/or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA); whereas health data in other countries may be subject to other regulations and policies and should be handled accordingly.
Despite the foregoing, the present disclosure also contemplates embodiments in which users selectively block the use of, or access to, personal information data. That is, the present disclosure contemplates that hardware and/or software elements can be provided to prevent or block access to such personal information data. For example, in the case of responding to a user request using a multi-user device within a home environment, the present technology can be configured to allow users to select to “opt in” or “opt out” of participation in the collection of personal information data during registration for services or anytime thereafter. In addition to providing “opt in” and “opt out” options, the present disclosure contemplates providing notifications relating to the access or use of personal information. For instance, a user may be notified upon downloading an app that their personal information data will be accessed and then reminded again just before personal information data is accessed by the app.
Moreover, it is the intent of the present disclosure that personal information data should be managed and handled in a way to minimize risks of unintentional or unauthorized access or use. Risk can be minimized by limiting the collection of data and deleting data once it is no longer needed. In addition, and when applicable, including in certain health related applications, data de-identification can be used to protect a user's privacy. De-identification may be facilitated, when appropriate, by removing identifiers, controlling the amount or specificity of data stored (e.g., collecting location data at city level rather than at an address level), controlling how data is stored (e.g., aggregating data across users), and/or other methods such as differential privacy.
Therefore, although the present disclosure broadly covers use of personal information data to implement one or more various disclosed embodiments, the present disclosure also contemplates that the various embodiments can also be implemented without the need for accessing such personal information data. That is, the various embodiments of the present technology are not rendered inoperable due to the lack of all or a portion of such personal information data.
The bus 808 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the electronic system 800. In one or more implementations, the bus 808 communicatively connects the one or more processing unit(s) 812 with the ROM 810, the system memory 804, and the permanent storage device 802. From these various memory units, the one or more processing unit(s) 812 retrieves instructions to execute and data to process in order to execute the processes of the subject disclosure. The one or more processing unit(s) 812 can be a single processor or a multi-core processor in different implementations.
The ROM 810 stores static data and instructions that are needed by the one or more processing unit(s) 812 and other modules of the electronic system 800. The permanent storage device 802, on the other hand, may be a read-and-write memory device. The permanent storage device 802 may be a non-volatile memory unit that stores instructions and data even when the electronic system 800 is off. In one or more implementations, a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) may be used as the permanent storage device 802.
In one or more implementations, a removable storage device (such as a floppy disk, flash drive, and its corresponding disk drive) may be used as the permanent storage device 802. Like the permanent storage device 802, the system memory 804 may be a read-and-write memory device. However, unlike the permanent storage device 802, the system memory 804 may be a volatile read-and-write memory, such as random access memory. The system memory 804 may store any of the instructions and data that one or more processing unit(s) 812 may need at runtime. In one or more implementations, the processes of the subject disclosure are stored in the system memory 804, the permanent storage device 802, and/or the ROM 810. From these various memory units, the one or more processing unit(s) 812 retrieves instructions to execute and data to process in order to execute the processes of one or more implementations.
The bus 808 also connects to the input and output device interfaces 814 and 806. The input device interface 814 enables a user to communicate information and select commands to the electronic system 800. Input devices that may be used with the input device interface 814 may include, for example, alphanumeric keyboards and pointing devices (also called “cursor control devices”). The output device interface 806 may enable, for example, the display of images generated by electronic system 800. Output devices that may be used with the output device interface 806 may include, for example, printers and display devices, such as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a flexible display, a flat panel display, a solid state display, a projector, or any other device for outputting information. One or more implementations may include devices that function as both input and output devices, such as a touchscreen. In these implementations, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
Finally, as shown in
In accordance with aspects of the disclosure, a method is provided that includes obtaining, with a user device of a first user, contact information for a plurality of contacts stored on the user device; providing at least a portion of the contact information to a machine learning model at the user device, the machine learning model having been trained based on training data that includes user-contact interaction data for training contacts and a training user; determining, using the machine learning model at the user device, at least one potential group member for the first user from the plurality of contacts; and providing, with the user device, an option for the first user to include the at least one potential group member in a group including the first user, where inclusion in the group provides shared access for the at least one potential group member to content associated with an account, with a remote server, of the first user.
In accordance with aspects of the disclosure, a non-transitory machine-readable medium is provided storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations that include obtaining, with a user device of a first user, contact information for a plurality of contacts stored on the user device; providing at least a portion of the contact information to a machine learning model at the user device, the machine learning model having been trained based on training data that includes user-contact interaction data for training contacts and a training user; determining, using the machine learning model at the user device, at least one potential group member for the first user from the plurality of contacts; and providing, with the user device, an option for the first user to include the at least one potential group member in a group including the first user, where inclusion in the group provides shared access for the at least one potential group member to content associated with an account, with a remote server, of the first user.
In accordance with aspects of the disclosure, an electronic device is provided that includes memory, and one or more processors, where the one or more processors are configured to obtain contact information for a plurality of contacts stored on in the memory; provide at least a portion of the contact information to a machine learning model at the electronic device, the machine learning model having been trained based on training data that includes user-contact interaction data for training contacts and a training user; determine, using the machine learning model at the electronic device, at least one potential group member for a group including a user of the electronic device, from the plurality of contacts; and provide an option for the user to include the at least one potential group member in the group including the user, where inclusion in the group provides shared access for the at least one potential group member to content associated with an account, with a remote server, of the user.
Implementations within the scope of the present disclosure can be partially or entirely realized using a tangible computer-readable storage medium (or multiple tangible computer-readable storage media of one or more types) encoding one or more instructions. The tangible computer-readable storage medium also can be non-transitory in nature.
The computer-readable storage medium can be any storage medium that can be read, written, or otherwise accessed by a general purpose or special purpose computing device, including any processing electronics and/or processing circuitry capable of executing instructions. For example, without limitation, the computer-readable medium can include any volatile semiconductor memory, such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. The computer-readable medium also can include any non-volatile semiconductor memory, such as ROM, PROM, EPROM, EEPROM, NVRAM, flash, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, racetrack memory, FJG, and Millipede memory.
Further, the computer-readable storage medium can include any non-semiconductor memory, such as optical disk storage, magnetic disk storage, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In one or more implementations, the tangible computer-readable storage medium can be directly coupled to a computing device, while in other implementations, the tangible computer-readable storage medium can be indirectly coupled to a computing device, e.g., via one or more wired connections, one or more wireless connections, or any combination thereof.
Instructions can be directly executable or can be used to develop executable instructions. For example, instructions can be realized as executable or non-executable machine code or as instructions in a high-level language that can be compiled to produce executable or non-executable machine code. Further, instructions also can be realized as or can include data. Computer-executable instructions also can be organized in any format, including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As recognized by those of skill in the art, details including, but not limited to, the number, structure, sequence, and organization of instructions can vary significantly without varying the underlying logic, function, processing, and output.
While the above discussion primarily refers to microprocessor or multi-core processors that execute software, one or more implementations are performed by one or more integrated circuits, such as ASICs or FPGAs. In one or more implementations, such integrated circuits execute instructions that are stored on the circuit itself.
Those of skill in the art would appreciate that the various illustrative blocks, modules, elements, components, methods, and algorithms described herein may be implemented as electronic hardware, computer software, or combinations of both. To illustrate this interchangeability of hardware and software, various illustrative blocks, modules, elements, components, methods, and algorithms have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application. Various components and blocks may be arranged differently (e.g., arranged in a different order, or partitioned in a different way) all without departing from the scope of the subject technology.
It is understood that any specific order or hierarchy of blocks in the processes disclosed is an illustration of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of blocks in the processes may be rearranged, or that all illustrated blocks be performed. Any of the blocks may be performed simultaneously. In one or more implementations, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
As used in this specification and any claims of this application, the terms “base station”, “receiver”, “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms “display” or “displaying” means displaying on an electronic device.
As used herein, the phrase “at least one of” preceding a series of items, with the term “and” or “or” to separate any of the items, modifies the list as a whole, rather than each member of the list (i.e., each item). The phrase “at least one of” does not require selection of at least one of each item listed; rather, the phrase allows a meaning that includes at least one of any one of the items, and/or at least one of any combination of the items, and/or at least one of each of the items. By way of example, the phrases “at least one of A, B, and C” or “at least one of A, B, or C” each refer to only A, only B, or only C; any combination of A, B, and C; and/or at least one of each of A, B, and C.
The predicate words “configured to”, “operable to”, and “programmed to” do not imply any particular tangible or intangible modification of a subject, but, rather, are intended to be used interchangeably. In one or more implementations, a processor configured to monitor and control an operation or a component may also mean the processor being programmed to monitor and control the operation or the processor being operable to monitor and control the operation. Likewise, a processor configured to execute code can be construed as a processor programmed to execute code or operable to execute code.
Phrases such as an aspect, the aspect, another aspect, some aspects, one or more aspects, an implementation, the implementation, another implementation, some implementations, one or more implementations, an embodiment, the embodiment, another embodiment, some implementations, one or more implementations, a configuration, the configuration, another configuration, some configurations, one or more configurations, the subject technology, the disclosure, the present disclosure, other variations thereof and alike are for convenience and do not imply that a disclosure relating to such phrase(s) is essential to the subject technology or that such disclosure applies to all configurations of the subject technology. A disclosure relating to such phrase(s) may apply to all configurations, or one or more configurations. A disclosure relating to such phrase(s) may provide one or more examples. A phrase such as an aspect or some aspects may refer to one or more aspects and vice versa, and this applies similarly to other foregoing phrases.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration”. Any embodiment described herein as “exemplary” or as an “example” is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, to the extent that the term “include”, “have”, or the like is used in the description or the claims, such term is intended to be inclusive in a manner similar to the term “comprise” as “comprise” is interpreted when employed as a transitional word in a claim.
All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. § 112(f) unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for”.
The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but are to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more”. Unless specifically stated otherwise, the term “some” refers to one or more. Pronouns in the masculine (e.g., his) include the feminine and neuter gender (e.g., her and its) and vice versa. Headings and subheadings, if any, are used for convenience only and do not limit the subject disclosure.
This application claims the benefit of priority to U.S. Provisional Patent Application No. 63/022,352, entitled “Group Identification Using Machine Learning,” filed on May 8, 2020, the disclosure of which is hereby incorporated herein in its entirety.
Number | Date | Country | |
---|---|---|---|
63022352 | May 2020 | US |