System and method for generating and selecting local content to improve security and utilization of network resources

Through the client device generating and selecting content items on itself, the data security risks and excessive utilization of network resources caused by third-party content providers to obtain context information are solved, and higher network security and resource utilization efficiency are achieved.

CN113692585BActive Publication Date: 2025-05-13GOOGLE LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202080005446.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-03-13
Publication Date
2025-05-13
Estimated Expiration
2040-03-13

AI Technical Summary

Technical Problem

In a computer network environment, a third-party content provider acquires context information of the client device to provide relevant content items, resulting in data security risks and overuse of network resources.

Method used

Client devices reduce the need to transmit contextual information to third-party content providers by accessing their own content resources and category information, generating and selecting content items on the device. Using content generation models and selection models, client devices can generate and select content items in real time without external transmission of context information.

Benefits of technology

It reduces overall network utilization, power utilization and computing resource utilization, and increases the security of network systems and the privacy of client devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113692585B_ABST
    Figure CN113692585B_ABST
Patent Text Reader

Abstract

At least one aspect of the present disclosure is directed to a system and method for generating content items on a device to improve security, privacy, and network utilization. A client device may access content resources and category information from a data structure in a memory of the client device. The client device may generate content items on the device based on the content resources and category information. The client device may receive an indication to display the content items in an application executed on the client device. The client device may scan the client device for context information to create a relevant device context. The client device may select content items on the device based on the relevant device context. The client device may provide the selected item on the device to the application for display, detect interaction with the displayed content item, and update a content selection model or a content generation model.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] In a computer network environment such as the Internet, third-party content providers provide third-party content items for display on end-user computing devices. These third-party content items, such as advertisements, can be displayed on web pages associated with corresponding publishers. These third-party content items may include content that identifies the third-party content provider that provides the content item.

[0002] However, selecting and providing third-party content to a client device may present risks to data security and unnecessarily utilize network resources. To provide third-party content items, a client device may send context information to a third-party content provider, which may use the context information to select relevant content items to display on the client device. As a result, to display the relevant content items, at least two network transmissions must occur: one to provide the device context information, and another to provide the selected content to the client device. This may subject the client device to data security risks because the device context information is subject to the overall security of the network as long as it leaves the device. Frequent transmission of updated device context information to third-party content providers may result in excessive utilization of network and computing resources. Summary of the invention

[0003] The system and method discussed herein enables client devices to access their own context information and generate context information on the device, thereby reducing the number of data transmissions to third-party content providers. Different from other methods, the system and method described herein can utilize content generation model and selection model on the device to generate and select content items to display in the application on the client device. By using its own context information, the client device can generate one or more content items to display in real time without transmitting any context information outside the client device. By eliminating the requirement that data is sent to the third-party content provider, this technology can reduce overall network utilization, power utilization and computing resource utilization, while increasing the security of the overall network system. The technology described herein can also improve the overall privacy of the data present on the client device, and the privacy of the client device usually. In addition, the technology described herein can further improve the selection and generation model based on the user interaction information with the content items on the device.

[0004] At least one aspect of the present disclosure is directed to a method for generating on-device content items to improve security, privacy, and network resource utilization. The method may include accessing a plurality of content resources and a plurality of category information by a client device, wherein the client device includes one or more processors and a memory. The client device may access a plurality of resources of interest and the plurality of category information, for example, from a data structure in a memory of the client device. The method may include generating a plurality of on-device content items by the client device based on the plurality of content resources and the plurality of category information. The method may include receiving, by the client device, an indication to display content items from an application executed on the client device. The method may include scanning device context information by the client device to create a related device context. The method may include selecting, by the client device, a related on-device content item from the plurality of on-device content items based on the related device context. The method may include providing, by the client device, the related on-device content item to an application for display on the client device.

[0005] In some embodiments, the method may include detecting, by the client device, an interaction event associated with an on-device content item of interest. The method may include identifying, by the client device, interaction information based on the detected interaction event. The method may include transmitting, by the client device, the interaction information to a content provider server. In some embodiments, the method may include receiving, by the client device, additional content from a content provider server based on the interaction information. In some embodiments, the method may include receiving, by the client device, a plurality of content resources and a plurality of category information from a content provider server.

[0006] In some embodiments, the method may include providing, by the client device, the plurality of content resources and the plurality of category information to a content generation model executed on the client device. The method may include receiving, by the client device, a plurality of on-device content items from an output of the content generation model. In some embodiments, the method may include receiving, by the client device, the content generation model from a content provider server. In some embodiments, the method may include providing, by the client device, a relevant device context to a content selection model executed on the client device. The method may include receiving, by the client device, from an output of the content selection model, an indication of a relevant on-device content item among a plurality of on-device content items.

[0007] In some embodiments, the method may include receiving, by the client device, a content selection model from a content provider server. In some embodiments, the method may include detecting, by the client device, an interaction event associated with a content item on a related device. The method may include updating, by the client device, a content generation model based on at least one of the related contextual information or the interaction event. In some embodiments, the method may include detecting, by the client device, an interaction event associated with a content item on a related device. The method may include updating, by the client device, a content selection model based on at least one of the related contextual information or the interaction event.

[0008] At least another aspect of the present disclosure is directed to a system including a client device, the client device including one or more processors and a memory. The client device can access multiple content resources and multiple category information from a data structure in the memory of the client device. The client device can generate multiple on-device content items based on the multiple content resources and the multiple category information. The client device can receive an indication to display the content item from an application executed on the client device. The client device can scan device context information to create a related device context. The client device can select a related on-device content item from the multiple on-device content items based on the related device context. The client device can provide the application with the related on-device content item for display on the client device.

[0009] In some embodiments, the client device may detect an interaction event associated with a content item on a related device. The client device may identify interaction information based on the detected interaction event. The client device may transmit the interaction information to a content provider server. In some embodiments, the client device may receive additional content from the content provider server based on the interaction information. In some embodiments, the client device may receive multiple content resources and multiple category information from the content provider server.

[0010] In some embodiments, the client device may provide the plurality of content resources and the plurality of category information to a content generation model executed on the client device. The client device may receive a plurality of on-device content items from an output of the content generation model. In some embodiments, the client device may receive the content generation model from a content provider server. In some embodiments, the client device may provide the relevant device context to a content selection model executed on the client device. The client device may receive an indication of a relevant on-device content item from the output of the content selection model among the plurality of on-device content items.

[0011] In some embodiments, the client device may receive the content selection model from the content provider server. In some embodiments, the client device may detect an interaction event associated with an on-device content item of interest. The client device may update the content generation model based on at least one of the associated contextual information or the interaction event. In some embodiments, the client device may detect an interaction event associated with an on-device content item of interest. The client device may update the content selection model based on at least one of the associated contextual information or the interaction event.

[0012] These and other aspects and embodiments are discussed in detail below. The foregoing information and the following specific embodiments include illustrative examples of various aspects and embodiments, and provide an overview or framework for understanding the nature and characteristics of the claimed aspects and embodiments. The accompanying drawings provide illustrations and further understanding of various aspects and embodiments, and are incorporated into and constitute a part of this specification. Various aspects can be combined, and it will be easily appreciated that the features described in the context of one aspect of the present invention can be combined with other aspects. Various aspects can be implemented in any convenient form. For example, by a suitable computer program that can be carried on a suitable carrier medium (computer-readable medium), which can be a tangible carrier medium (such as a disk) or an intangible carrier medium (such as a communication signal). Suitable devices can also be used to implement various aspects, which can take the form of a programmable computer that runs a computer program that is arranged to implement the aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] The drawings are not intended to be drawn to scale. In the various drawings, like reference numbers and names refer to like elements. For purposes of clarity, not every component may be labeled in every drawing. In the drawings:

[0014] Figure 1 A block diagram depicting an example system for generating on-device content items to improve security, privacy, and network resource utilization is shown;

[0015] Figure 2 An illustrative diagram showing a content item on a device displayed in a content location of an application executing on a client device;

[0016] Figure 3 A schematic diagram showing generating content items on a device based on device context, content resources and category information;

[0017] Figure 4 A flow chart illustrating a method of generating content items on a device to improve security, privacy, and network resource utilization;

[0018] Figure 5A flow chart showing a method of updating a content selection model or a content generation model based on interaction information; and

[0019] Figure 6 Shown is a general architecture for an illustrative computer system that may be employed to implement any of the computers discussed herein. DETAILED DESCRIPTION

[0020] The following is a detailed description of various concepts related to methods, apparatus, and systems for generating privacy-preserving determinations for intersections of sets of user identifiers, and their implementation. As the described concepts are not limited to any particular manner of implementation, the various concepts introduced above and discussed in greater detail below may be implemented in any of a variety of ways.

[0021] The content provider platform can select and provide relevant content items based on client device context signals (such as cookies, application usage information, and displayed text, etc.) to be presented on the client device. The client device can provide context information to the content provider periodically or in real time to allow the content provider to select and provide content related to the context of the client device. For example, if the client device is displaying an article about tropical locations, the content provider can provide content items related to tropical vacations. In another example, in the case where the client device is located in an area close to many restaurants, the content provider can use the location information from the client device to provide one or more content items related to food or restaurants. Typically, the relevance of a content item to a particular device context is proportional to the amount of latest context information transmitted to the content provider.

[0022] However, client device context information, such as device location and on-screen text, may change rapidly. In order to provide content items relevant to the latest client device context, the client device must transmit or provide context information in real time, frequently, or every time the client device context changes. This frequent transmission of information, coupled with the transmission of content items from content providers, may result in unnecessary utilization of computing resources and network bandwidth. In addition, because the client device context may include personal or protected information, transmitting context information may compromise the overall security of the network system. When data is transmitted outside of a secure client device, it is vulnerable to man-in-the-middle attacks, data leaks, or other network vulnerabilities.

[0023] In order to solve the above problems, the system and method of the present technical solution broadly relate to a system for generating content items on a client device. In the case of interaction with the generated content items, a signal can be provided to the content provider, which includes information about the interaction, but may not include device context information. Based on the interaction information, the content provider can select additional content items and transmit them to the client device for display. By transmitting data to the content provider only in response to the interaction with the generated content, the client device does not need to regularly provide context information to the content provider, thereby reducing the overall network utilization of the system without hindering performance. In addition, on-device content items can be generated in real time based on the entire device context, thereby providing more relevant content without compromising the security of data in the system.

[0024] The system and method of the technical solution can scan the activities and information (such as interaction and text) on the screen and other device information to create a client device context. The client device context can be scanned in real time, regularly or only when the content item on the device must be generated. Using the context information of the client device, the system and method of the technical solution can use the content item model to generate one or more content items on the device. The content item model can include a machine learning model, a lookup table of string and category information, or any other type of content selection solution. The content item on the device can be generated to include text, links, images and videos and other types of content. After using the model to generate the content item on the device, the system and method of the technical solution can display the content item on the device on the client device. The client device can use, for example, a content selection model on the device to select the generated content item on the device for display. In response to the interaction with the generated content item on the device, the system and method can transmit the interaction data from the client device to the content provider computing device, while also updating the content selection model and the content generation model based on the interaction data. Therefore, without transmitting the context information to the content provider, the system and method of the technical solution can allow the client device to generate and display the content item related to the context on the device.

[0025] Therefore, when compared with other content selection systems, the technical solution described herein can thus provide increased computing performance and reduce overall network utilization. Instead of continuously or periodically transmitting context information from the client device to the content provider server, the technical solution can use the context on the device to generate content items, and transmit data in the case of interaction. This can reduce the computing load on the content provider computing system, and reduce the overall network business between the client device and the content provider. In addition, by only transmitting interactive data rather than device context information, the technical solution increases the overall security of the content selection solution, because protected or private context information will not leave the client device. Maintaining context on the client device provides the benefit of increasing privacy, because the client device does not need to share its context with any other party to select related content. Therefore, private or protected context information is not susceptible to data leakage or the impact of man-in-the-middle attacks, which is an improvement to other content provider systems.

[0026] Figure 1 A system 100 for generating content items on a device to improve security, privacy, and network resource utilization is depicted. The system 100 may include at least one computer network 110. The system 100 may include at least one content provider 115. The content provider 115 may include at least one stored interaction data 180. The content provider 115 may include at least one additional content 185. The system 100 may include at least one client device 105. The client device 105 may include at least one display 125, at least one content generation model 130, at least one content selection model 135, at least one storage 140, at least one application 160, at least one context scanner 165, at least one content generator 170, and at least one content selector 175. The storage 140 may include at least one resource 145, at least one event log 150, at least one category 155, and at least one context 158.

[0027] Each component of system 10 (e.g., network 110, content provider 115, stored interaction data 180, additional content 185, client device 105, display 125, content generation model 130, content selection model 135, storage 140, resources 145, event log 150, categories 155, context 158, application 160, context scanner 165, content generator 170, content selector 175) can use a combination of Figure 6 The hardware components or a combination of software and hardware components of the computing system 600 described in detail can be implemented. For example, the client device 105 can include one or more computing devices. The content provider 115 can include a server or other computing device. Each component of the client device 105 can perform the functionality described in detail herein.

[0028] The network 110 may include a computer network such as the Internet, a local area network, a wide area network, a metropolitan area network or other regional network, an intranet, a satellite network, other computer networks such as voice or data mobile phone communication networks, and combinations thereof. The client device 105 of the system 100 may communicate via the network 110, for example, with at least one content provider 115. The network 110 may be any form of computer network that relays information between content providers 115, client devices 105, one or more content sources such as web servers, and the like. In some embodiments, the network 110 may include the Internet and / or other types of data networks, such as a local area network (LAN), a wide area network (WAN), a cellular network, a satellite network, or other types of data networks. The network 110 may also include any number of computing devices (e.g., computers, servers, routers, network switches, etc.) configured to receive and / or transmit data within the network 110. The network 110 may further include any number of hardwired and / or wireless connections. The client device may communicate wirelessly (e.g., via WiFi, cellular, radio, etc.) with a transceiver that is hardwired (e.g., via fiber optic cable, CAT5 cable, etc.) to other computing devices in the network 110. The client device 105 may also communicate wirelessly with computing devices of the network 110 via a proxy device (e.g., a router, network switch, or gateway). The content provider 115 may communicate wirelessly (e.g., via WiFi, cellular, radio, etc.) with a transceiver that is hardwired (e.g., via fiber optic cable, CAT5 cable, etc.) to other computing devices in the network 110. The content provider 115 may also communicate wirelessly with computing devices of the network 110 via a proxy device (e.g., a router, network switch, or gateway).

[0029] The client device 105 may include at least one processor and memory, i.e., processing circuitry. The memory stores processor executable instructions that, when executed by the processor, cause the processor to perform one or more operations described herein. The processor may include a microprocessor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc., or a combination thereof. The memory may include, but is not limited to, electronic, optical, magnetic, or any other storage or transmission device capable of providing program instructions to the processor. The memory may further include a floppy disk, a CD-ROM, a DVD, a disk, a memory chip, an ASIC, an FPGA, a read-only memory (ROM), a random access memory (RAM), an electrically erasable programmable ROM (EEPROM), an erasable programmable ROM (EPROM), a flash memory, an optical medium, or any other suitable memory from which the processor can read instructions. The instructions may include code from any suitable computer programming language. The client device 105 may include one or more computing devices or servers that can perform various functions.

[0030] Content provider 115 may include a server or other computing device operated by a content provider entity to provide content items for display on an information resource. The content provided by content provider 115 may include third-party content items to display on an information resource, such as an information resource including a main content, for example, content provided by content provider 115. Content items may also be displayed on a search result web page. For example, content provider 115 may provide content items or be the source of content items to be displayed in a content position of an information resource, such as a company's web page, wherein the main content of the web page is provided by the company, or for display on a search result landing page provided by a search engine. Content items associated with content provider 115 may be displayed on an information resource other than a web page, such as content displayed as a part of executing an application on a smart phone or other client device. The functionality of content provider 115 in the context of system 100 will be described below.

[0031] The content provider 115 may include stored interaction data 180 received from one or more client devices 105. The stored interaction data 180 may include interaction information, such as timestamps, content types, content categories, resources, and other information about interactions with content items on the device. In some embodiments, the stored interaction data 180 does not include any identification information about the client device 105, and does not include any contextual information from the client device 105. Instead, the stored interaction data 180 may include information about generated on-device content items that interact with the client device 105. The client device 105 may transmit, communicate, or otherwise provide the stored interaction data 180. Based on the stored interaction data 180, the content provider may determine additional content 185 that may be associated with the on-device content item indicated in the stored interaction data 180.

[0032] The content provider 115 may include additional content 185. The additional content may be associated with one or more interactions or categories (e.g., category 155). Based on the stored interaction data 180, the content provider 115 may access the additional content 185 to identify and select one or more additional content 185 items to transmit, communicate, or otherwise provide to the client device 105 for display. The additional content 185 may include links, web pages, images, text, videos, or any other type of media. The additional content 185 may be associated with one or more keywords, metadata, or other information to facilitate content selection by the content provider 115. In some embodiments, based on the stored interaction data 180, the content provider 115 may generate one or more additional content 185 items for transmission to the client device 105. The content provider 115 may transmit the additional content 185 to the client device 105, for example, in response to one or more events. The one or more events may include receiving an indication of an interaction with a content item on the device; receiving information about the content generation model 130; receiving information about the content selection model 135; or receiving a request for additional content from the client device 105.

[0033] The content provider 115 may provide other information, data or applications to the client device 105. For example, the content provider 115 may provide resources 145, categories 155 and other information to the client device 105 to facilitate the generation of content items on the device. After receiving the other information, the client device 105 may store, update or otherwise maintain the other information in a memory of the client device 105, such as one or more data structures in the storage 140. The content provider 115 may provide one or more applications (e.g., application 160) or scripts to the client device 105. In some embodiments, the content provider 115 may provide one or more template scripts to the client device 105. The client device 105 or one of its components (e.g., content generator 170) may fill in the script template to facilitate the generation of content items on the device. The content provider 115 may provide one or more models to the client device 105, such as a content generation model 130 and a content selection model 135, etc. In response to receiving one or more models from content provider 115 , client device 105 may store, update, or otherwise maintain the models in memory of client device 105 , such as in storage 140 .

[0034] Storage 140 can be a database configured to store and / or maintain any information described herein. Storage 140 can be stored in a data structure of any appropriate type and form, such as an array, a flat file, a depicted file, or a database file of any other type and form. Storage 140 can maintain one or more data structures, which can contain and / or index each value, plural number, or threshold value described herein. In some embodiments, storage can be accessed using one or more memory addresses or index values. A module of a client device 105 or a content provider 115 can access storage 140 via a network 110. In some embodiments, storage 140 is inside a client device 105. In some embodiments, storage 140 can exist outside a client device 105 and can be accessed via a network 110 or another communication interface. In some embodiments, storage 140 can be distributed on many different computer systems or storage elements and can be accessed via a network 110 and / or a suitable computer bus interface. The client device 105 may store the results of any or all calculations, determinations, selections, identifications, or computations in one or more data structures indexed as appropriate values, each of which may be accessed by the client device 105 or content provider 115 to perform any of the functions described herein.

[0035] The client device 105 may be communicatively coupled to a display 125, which may be a liquid crystal display, an active matrix display, a light emitting diode-based display (LED), or an organic light emitting diode display (OLED), etc. The display 125 may be configured to display information to a user, for example, from an application 160 executed on the client device 105. The display 125 may include a touch-sensitive input device, which may be configured to provide one or more indications of input events to the client device 105. The input events may include tap events, swipe events, drag and drop events, double-click events, triple-click events, gesture events, or any other touch-based input events or interactions. The display 125 may display any information, images, or graphical representations stored in the client device 105, and may display generated or selected on-device content items.

[0036] The client device 105 can access one or more content resources 145 or one or more categories 155 from the data structure in the storage 140. The content resources 145 can include, for example, text strings, text assets, image information, vector information (e.g., scalable vector graphics information, other graphics or drawing information or instructions, etc.), videos, animated images, and other content that can be included in the content item on the generated device. Each of the content resources 145 can include keywords or other identifying metadata. The client device 105 can match the metadata to one or more query query conditions to access a specific content resource 145 or a range or category of content resources 145. The category 155 can include one or more content categories, such as locations, events, objects, interests, or other information related to content selection. In some embodiments, the category 155 can include a dependency graph, where each category 155 can point to one or more other related categories 155. Accessing the content resources 145 or categories 155 can include copying, extracting, or moving data from the storage 140 to different areas of computer memory on the client device 105, such as areas of working memory.

[0037] The content generator 170 can generate one or more on-device content items based on the content resources 145 and the categories 155. In order to generate the on-device content items, the client device 105 can iterate and select each of the resources 145. As described above, each of the resources 145 can include keywords, metadata, pointers to related categories 155, or other identification information. Based on the identification information, the content generator 170 can identify and access each category 155 that can be related, similar, or otherwise associated with the selected resource 145. The category 155 can include additional related information that can facilitate content selection, such as keywords, metadata, device information, location information, or any other information to identify the resource or associate the resource with a specific interest category. For each selected resource 145 that can include a text string, image, video, or other media information, the client device 105 can associate the category information identified from the category 155. For example, if the selected resource 145 includes information, metadata, keywords, or other information that identifies the selected resource 145 as a picture of a tropical beach, the content generator 170 can generate an on-device content item that includes the picture and text, such as the statement "Hawaiian vacation" or other text that can be related to the picture or resource 145.

[0038] The content generator 170 can generate one or more on-device content items by providing the content resources 145 and the categories 155 to the content generation model 130. In some embodiments, the content generator 170 can apply one or both of the content resources 145 or the categories 155 to the input of the content generation model 130. The content generation model 130 can include any type of machine learning model (e.g., neural network, convolutional neural network, recurrent neural network, linear regression, sparse vector machine, etc.). The content generation model 130 can include multiple layers of weights and biases applied to the input of the model, such as an indication of the resource 145 or the category 155. The content generation model 130 can output one or more indications of the resource, an indication of the keyword, a keyword, or any other information to be included in the on-device content item. The content generation model 130 can identify or output associations between the resource 145 and the category 155, and include those associations in the on-device content item. The on-device content item can include one or more scripts that, when activated by an event on the client device 105, can cause the client device to execute instructions to provide interactive information to the content provider 115.

[0039] The content generator 170 may receive one or more on-device content items from the output of the content generation model 130. The one or more on-device content items may include, for example, any number of images, text, resources 145, keywords, content selections, scripts, and computer media, among others. In some implementations, the client device may receive one or more indications from the content generation model 130 about which content will be included in the on-device content item. Based on these indications, which may be pointers to locations in a memory (e.g., storage 140) of the client device 105, the client device 105 may access the memory (e.g., storage 140) to select each of the resources 145 and categories 155 indicated by the content generation model 130. The content generator 170 may package the identified resources 145 and categories 155 into one or more on-device content items. Thus, based on the output of the content generation model 130, the content generator 170 may assemble, package, or otherwise generate on-device content items. After generating the on-device content items, the content generator 170 can access the memory (e.g., storage 140) of the client device 105 and store the generated on-device content items in one or more data structures. The on-device content items can be generated to include metadata, such as metadata associated with one or more selection keywords, context metadata, location information, or any other type of content selection data. The content selection data can be extracted from the resources 145, the categories 155, or from any other data accessed via the client device 105. The content selection data can be included in each generated on-device content item to facilitate selection of content items for display on the client device 105.

[0040] The client device 105 may execute an application 160, which may include one or more instructions to display content on the display 125. The application 160 may include, for example, a web browser, a game application, or another type of application executed on the client device. The application 160 may provide context information to other components on the client device 105 through an API interface or through other communication means with components of the client device 105. For example, the application 160 may provide a storage area of ​​the client device 105 including device context information to other components of the client device 105. Device context information may include text displayed to the user, text not displayed to the user, search queries (e.g., including one or more keywords, terms, etc.), historical search queries (e.g., including one or more keywords, terms, etc.), device input or interaction events (e.g., coordinates, associated applications, time of interaction or input, frequency of interaction, etc.), time values, periods of use of applications or other applications on the device, applications executing or resident on the device, metadata associated with applications executing or on the device (e.g., keywords, content items, interaction events, historical interaction events, profile information, timestamp information, etc.), web browsing history, interaction history, facial recognition information, biometric information (e.g., fingerprints, eye color, hair color, etc.), periods of regular device use, device charging information (e.g., power level, battery, regular charging time or seasonality, etc.), regular times when the device is not in use, communication history (e.g., text or SMS message history, call history, video call history, call information, video call information, etc.), and other information that may be used or accessed via application 160. Application 160 may include instructions to display content items or additional content external to application 160. The content item may fill one or more content item slots provided by the application 160. The application 160 executing on the client device 105 may provide one or more instructions to the client device 105 to display, generate, or select a content item to display in a content slot. In some implementations, the application 160 may provide the instructions to any one of the components of the client device 105.

[0041] The context scanner 165 may receive an indication to display a content item from an application 160 executing on the client device 105. The indication may include dimensions, context information, or a pointer to a memory area in the client device for placing the content item. The indication may include an indication to collect context information to select a specific content item, an indication to display a specific content item (e.g., an indication including a specific content item in the memory of the client device 105, or an indication of an additional content item received from the content provider 115). In some embodiments, the indication is a message transmitted to other components of the client device 105. The message may include information about the application 160, information about the content item location, information about the client device 105, or information about a series of user interactions preceding a request for a content item on the device. The indication may include generating a request for a content item on the device based on information provided by the application 160, including information displayed by the application 160, interaction information, query information, input information, or other information provided or accessed by the application 160.

[0042] The context scanner 165 can scan the device context 158 ​​of the client device 105 to create a device context 158 ​​data structure in the memory (e.g., storage 140) of the client device 105. In some implementations, the context scanner 165 can update the device context in the memory of the client device 105 in response to detected changes in the device context. The context scanner 165 can access each interface, data structure, memory location, or other information associated, stored, or accessed by the client device 105 to construct the device context in the memory (e.g., storage 140) of the client device 105. The context scanner 165 can create, update, or otherwise insert on-screen text information, interaction information, input information, past interaction information, past context information, location information, past location information, past on-screen text information, or any other type of information including a device identifier, device type, screen resolution information, hardware display information, or any other type of information for which the client device 105 can access the device context 158. The context scanner 165 can access the event log 150 of the storage 140 to access any interaction events, past content item interactions, or other event-based information to include in the device context 158. The context scanner 165 can associate a timestamp value with each entry in the device context 158 ​​data structure, wherein each timestamp indicates the time when the entry was created or updated by the context scanner 165. In some embodiments, the past information can be updated accordingly to a time threshold. If the difference between the current device time of the client device 105 and the timestamp of the entry in the device context 158 ​​exceeds the time threshold, the context scanner 165 can update the corresponding entry in the device context 158. In some embodiments, the context scanner 165 can scan the device to update or maintain the device context 158 ​​periodically, in real time, or when an indication of a request for content is received from the application 160.

[0043] The content selector 175 can select an on-device content item to display in the application 160. In some embodiments, the content selector 175 can select the on-device content in response to receiving an indication or request from the application 160 to display the content item. In some embodiments, in response to the context scanner 165 updating the device context 158, the content selector 175 can select the on-device content to display in the application 160. The content selector 175 can select the on-device content from the on-device content items generated by the content generator 170 and stored in the memory (e.g., storage, etc.) of the client device 105. The content selector 175 can access the storage 140 to retrieve the device context 158. The content selector 175 can use one or more entries in the device context 158 ​​to select the relevant content item. The content selector 175 can match one or more keywords, metadata, or selection information included in the on-device content item with the information included in the device context 158. For example, if the device context 158 ​​indicates that the text on the screen includes the words "tropical", "island", and "vacation", the content selector 175 may use these words to search for and select relevant on-device content items for display. Thus, the content selector 175 may select on-device content items including pictures of tropical islands and the title "Hawaiian Vacation!" for display based on contextual information. In another example, the location information in the device context 158 ​​may indicate that the client device 105 is near many restaurants or food stores. In response, the content selector 175 may select content related to food or restaurants. Although described here only in a limited capacity, it should be understood that the content selector may select content based on any possible metadata stored in the on-device content items generated by the content generator 170 based on any contextual information type described herein. By selecting on-device content items based on the device context 158, the content selector may select the latest and relevant on-device content items for display.

[0044] The content selector 175 may provide the selected content to the application 160 for display in one or more content locations on the display 125 of the client device 105. Providing the on-device content item may include copying the on-device content item to a memory area specified by the application 160, or to another type of memory or memory area specified by the application 160. After moving or copying the on-device content item data to the memory area specified by the application 160, the content selector 175 may provide a signal to the application 160 indicating that the on-device content item is ready for display. The content selector 175 may provide a pointer to the location of the on-device content item to the application 160. The application 160 may access the location pointed to by the pointer to load the on-device content item into the display memory 158 and display the on-device content item in one or more content locations in the application 160. In response to receiving the on-device content item, the application 160 may transmit a confirmation signal to other components of the client device 105 to indicate that the on-device content item has been displayed. In some embodiments, the application 160 may record the on-device content item display event in the storage 140, such as in the event log 150. Thus, the application 160 may record each time a content item is displayed on the device in the application 160 , along with an identifier of the generated content item, an identifier of the application, or other information that may facilitate training of the content selection model 135 or the content generation model 130 .

[0045] The content selector 175 may provide the device context 158 ​​and any other relevant information to a content selection model 135 executing on the client device 105. The content selection model 135 may include any type of machine learning model (e.g., a neural network, a convolutional neural network, a recurrent neural network, a linear regression, a sparse vector machine, etc.). The content selection model 135 may include multiple weight and bias layers applied to the input of the model, such as the context 158 ​​information retrieved from the storage 140. The content selection model 135 may output one or more indications of on-device content items, thereby selecting the on-device content items for display in the application 160 of the client device 105. The content selection model 135 may identify one or more on-device content items for display in the application 160. In some implementations, the content selection model 135 may aggregate or combine one or more on-device content items into a single on-device content item for display in the application 160. For example, the content selection model 135 may select several smaller on-device content items, each of which contains related or common selection information (e.g., keywords, metadata, other associated information, etc.), and combine them into a single larger content item. The content selection model 135 can combine content items in a grid format or a list format, where the list can be iterated based on input events, time-based events, or other information. Thus, the content selector 175 can receive one or more selected on-device content items from the output of the content selection model 135, or one or more aggregated selected on-device content items.

[0046] The application 160 executed on the client device 105 can record any or all events in the event log 150 in the storage 140, including interactive events, input events, internal application events, operating system events, or other events. Therefore, the application 160 can detect any or all input or interactive events with any link, content item on the device, or other information in the event log 150. The application 160 can detect interactive events associated with any displayed content item on the device. The interactive event can be a click, a tap, a swipe, or any other type of input described herein for the content item on the device displayed in the application 160. In response to the interactive event, the application 160 can execute one or more scripts associated with each corresponding content item on the device. These scripts may include instructions for providing or transmitting information related to the interaction to the content provider 115 via the network 110.

[0047] The application 160 may identify interaction information related to the detected interaction event in response to the detected interaction event. The interaction information may include any or all data associated with the corresponding on-device content item, including relevant keywords, metadata, or other information. The interaction information may further include information about the interaction, such as the time of the interaction, the location on the screen of the interaction, the type of interaction, or any other interaction information described herein. The application 160 may record any or all interaction events and related interaction information in the event log 150 of the storage 140. In some embodiments, in response to the detected device interaction event, the application may transmit an indication of the detected interaction together with the interaction information to the content provider 115. The application 160 may record any device context information associated with the interaction event in the event log 150, so as to facilitate training of the content generation model 130 or the content selection model 135. The application 160 is capable of maintaining one or more event logs 150 in one or more data structures in the storage 140.

[0048] In response to the training conditions, the client device 105 can train the content generation model 130 or the content selection model 135 based on the content of the event log. In order to facilitate the generation and selection of relevant content items, the content generation model 130 and the content selection model 135 can be updated based on the recorded interaction events with the generated on-device content items. In this way, the content generation model 130 and the content selection model 135 can be improved based on the input events received by the client device 105. The training conditions can be an indication that the client device 105 is charging, a message received from the content provider 115 or another external computing device via the network 110, or a request received on the input interface or application interface of the client device 105, etc. The client device 105 can train the model using any suitable machine learning model training algorithm, including gradient descent, etc. In addition, the client device can access the interaction events recorded in the event log 150 in batches. When the device is not in use, these batches can be used to train each of the content generation model 130 and the content selection model 135, for example, in a batch process. In some embodiments, the client device 105 can train each model in real time in response to the interaction events. In addition to interaction information, the client device 105 may also access the device context 158 ​​to train the content generation model 130 or the content selection model 135. Training may include updating each model based on input events, interaction events, information received from the content provider 115, or other such information.

[0049] Reference now Figure 2, depicts an environment 200 illustrating an example diagram of displaying a generated on-device content item in a content slot 205 of an application 160. First, the application 160 is displayed on the display 125 of the client device 105. The application 160, as illustrated in this example embodiment, includes a content slot 205 that can be used to display generated on-device content. Although depicted as a rectangular area in the application 160 here, it should be understood that the content slot 205 can occupy any shape, area, or position in the application 160. In some embodiments, the content slot 205 can be hidden and not displayed on the application 160. In some embodiments, the content slot itself will not be displayed until the content item has been provided to the application 160 on the device.

[0050] Next, the application 160 has requested and received the on-device content item 210 for display in the content slot 205. The on-device content item can be displayed among other information resources in the application 160, and can be inserted into a web page, an application slot, or any other type of content slot. The application 160 can be configured to detect any or all input events and record these input events in the memory of the client device 105. The input event can include a click, a tap, a swipe, or other input events or actions. If the input event is for the on-device content item 210, the application 160 can execute one or more scripts to identify the interaction information.

[0051] The interaction information may include information about content items on the device, information about the type of interaction, the duration of the interaction, or other types of information. In some embodiments, the interaction may simply include displaying content items on the device within a predetermined time period. In response to the interaction event information, the application 160 may provide the interaction information to a content provider, such as a content provider 115. The content provider 115 may receive the interaction information. Based on the received interaction information, the content provider 115 may select additional content 185 and transmit it to the application 160 executed on the client device 105. In response to receiving the additional content, the application may display the additional content in the application 160. Although described herein as additional content that occupies the entire display 125 of the client device 105, it should be understood that the additional content 185 may include any form of content and may occupy any shape, size, area or position in the application 160.

[0052] In some embodiments, the additional content 185 may include a script, command, or uniform resource identifier (URI) to launch a different application 160. The additional content 185 may include instructions to navigate the application 160 to a web page, or a different menu or state of the application 160. In this way, the application 160 can facilitate the selection of relevant additional content 185 from the content provider 115 to be displayed on the client device 105 without providing updated device context 158 ​​information to the content provider 115. This has the effect of reducing the total number of network transmissions to the content provider, improving network resource utilization and computing resource utilization. In addition, by not allowing the device context 158 ​​information to be transmitted over the network, the risk of data leakage or man-in-the-middle attacks that the device context 158 ​​information will experience is reduced.

[0053] Reference now Figure 3 , a block diagram 300 is illustrated, which depicts the generation of content items on a device based on context 158 ​​information, categories 155, and resources 145. As depicted here, context 158 ​​may include on-screen text 310, user actions 315, past actions 320, location data 325, and device information 327, among others. Category 155 may include multiple strings indicating certain categories of content, and may include additional metadata and keywords to select content based on each enumerated category. As depicted here in this example illustration, each of the categories 155 may be identified by a string value. Resource 145 may contain both text strings 330 and cached images 335. Each image data 340A-N (sometimes commonly referred to as image data 340) may include any format of video, audio, image, or other content, including JPEG, GIF, PNG, TIFF, MP4, M4V, MKV, and other media formats. Although not shown here, each image data 340 may include associated metadata and keywords, which may facilitate the selection and generation of content.

[0054] Diagram 300 illustrates various portions of an on-device content item 210 and how they may be generated by a content generator 170 and a content generation model 130. Although the diagram shows an on-device content item 210 generated using a context 158, a content category 155, and a content resource 145, it should be understood that an on-device content item may be generated, for example by a content generator 170 or a content generation model 130, using any combination of these elements or none of these elements.

[0055] As illustrated in the figure, the on-device content item 210 can be generated based on the device context 158, the category 155, and the resource 145. For example, each of these items can be accessed from the storage 140 of the client device 105. The category of the content can be picked or selected based on the context 158. The context information can include on-screen text 310, user actions 315, past actions 320, location data 325, and device information 327. Based on this information, the content generator 170 can select the relevant category 155. In this example, the on-screen text includes information about tropical islands and vacations. Therefore, the content generator 170 has selected the "vacation" and "tropical" categories. Based on these categories 155 and context 158 ​​information, the content generator 170 can select the relevant resources. In this example, the content generator 170 has matched the relevant keyword "Hawaiian vacation" with the image data 140B, which includes keywords or metadata related to islands, vacations, or tropical locations. The content generator 170 may package each selected resource into an on-device content item 210 , thereby generating an on-device content item.

[0056] Reference now Figure 4 , illustrates a flow chart of an exemplary method 400 for generating content items on a device to improve security, privacy, and network resource utilization. The method 400 may be performed by a client device 105, Figure 6 The computer system 600 described, or any other computing device described herein, performs or otherwise performs. A client device (e.g., client device 105) can access content categories (action 402). The client device can access content resources (action 404). The client device can generate content items on the device (action 406). The client device can determine whether the counter register j is equal to the number n of categories and resources (determination 408). The client device can increment the counter register j. The client device can receive an indication of display content (action 412). The client device can scan the device context (action 414). The client device can select content on the device (action 416). The client device can provide content on the device for display (action 418).

[0057] A client device (e.g., client device 105) may access content categories (act 402). To generate on-device content items for each category (e.g., category 155) stored on the client device, the client device may iteratively loop through each content category based on a counter register j. Each of the content categories may be indexed in a data structure by an index value (e.g., index 0, index 1, index 2, etc.). To process a content category, the client device may select a content category that includes an index value equal to counter register j. If it is the first iteration of the loop, the counter register j may be initialized to an initialization value (e.g., j=0) before selecting the jth content category. Accessing the category may include copying data associated with the selected content category to a different area of ​​computer memory, e.g., a working area of ​​the memory.

[0058] The client device can access content resources (action 404). The content category selected by the client device can be associated with one or more keywords, metadata, location information or other content selection criteria. In order to properly identify resources that can be used to generate content related to the selected category, the client device can compare the keywords, metadata, location information or content selection criteria of the selected category with the information in the content resource. The content resource can include text, metadata and other information that helps to select. The content resource can also include images, videos or audio, wherein each of these non-text media can be associated with one or more keywords describing the media or metadata indicating association with the content category. The client device can identify which content resources are related to the selected category and select each related resource. Selecting related resources can include copying data associated with the identified resource to different areas of the computer memory, for example, the working area of ​​the memory.

[0059] The client device may generate an on-device content item (action 406). In order to generate the on-device content item, the client device may package each identified resource into a single content item. In some embodiments, the client device may generate a single on-device content item for each resource selected by the client device based on the selected category. In such an embodiment, each on-device content item may include one or more text strings and one or more images. The client device may associate each generated on-device content item with resources, metadata, keywords, and other content selection information to facilitate content selection. After generating each on-device content item, the client device may store the generated on-device content item in a data structure in the memory of the client device. In some embodiments, the client device may associate each generated on-device content item with a selected content category. In some embodiments, the client device may merge a script into the on-device content item. The script may be configured to cause the client device to communicate the interaction information to a content provider (e.g., content provider 115) in response to interaction with the on-device content item. The interaction information may include information about the on-device content item, such as associated categories, keywords, metadata, and other content selection information, and information about the interaction, such as the time of the interaction, the duration of the interaction, the type of interaction, and other event information. In some implementations, the client device can generate content using a content generation model, such as content generation model 130. The client device can provide the selected category and the selected content resource as inputs to the content generation model and receive the generated on-device content item at the output of the model.

[0060] The client device may determine whether the counter register j is equal to the number n of categories and resources (decision 408). To determine whether the client device has generated on-device content items for each content resource and content category, the client device may compare the counter register used to select each content category with the total number n of content categories. If the counter register j is not equal to (e.g., less than) the total number n of content categories, the client device may perform (action 410). If the counter register j is equal to (e.g., equal to or greater than) the total number n of content categories, the client device may perform (action 412).

[0061] The client device may increment a counter register j. The client device may add a count to the counter register j to indicate a next unprocessed category in a data structure of content categories. In some implementations, the client device may set the counter register j to a memory address value (e.g., a location in a computer memory) of the next unprocessed content category. In some implementations, the memory address value of the next unprocessed content category may be included in a data structure at the location of a current (e.g., selected) retrieval token. After incrementing the value of the counter register j, the client device may perform (act 402) of method 400.

[0062] The client device may receive an indication to display content (action 412). The indication may include information such as dimensions, duration, location, and context information. The client device may receive an indication to display content from an application (e.g., application 160) executed on the client device. The indication may include additional information, such as an identifier corresponding to the application (e.g., an application identifier) ​​and other content item information. In some embodiments, the indication to display content may include an indication to display a content item on a specific device. In such an embodiment, because a device context is not required, the client device may execute (action 416) and skip (action 414). Otherwise, the client device may execute (action 414).

[0063] The client device may scan for device contexts (act 414). Scanning the device context may include collecting data about applications, services, and operating systems executing on the client device and storing this information in one or more data structures in a memory of the client device. Scanning the device context may include requesting information from one or more applications executing on the client device, wherein each request is for information about each application. The device context may include collecting location information, on-screen text information, off-screen text information, audio information, microphone information, device state information (e.g., battery level, Internet connectivity, cellular connectivity, etc.), interaction information, application event information, operating system event information, and other information related to the client device.

[0064] The client device may select content on the device (action 416). In order to select one or more content items on the device associated with the device context, the client device may access the device context. Using the accessed device context, the client device may compare device context information (e.g., text on the screen, position information, and other information about the client device) with one or more generated content items on the device stored in the memory of the client device. If keywords, metadata, or other content selection information associated with content items on one or more devices match keywords, metadata, or other content selection information of the device context, the client device may select those content items. Selecting a content item may include copying the identified content item to different areas of the memory, such as a working area of ​​the memory on the client device. In some embodiments, the client device may use a content selection model (e.g., content selection model 135) to select one or more content items. For example, the client device may provide device context information to the input of the content selection model.

[0065] The client device may provide on-device content for display (action 418). Providing on-device content for display may include providing one or more selected on-device content items to the application 160. The application may load each content item into a display memory and display each on-device content item in a corresponding content item position. In some embodiments, the client device may aggregate more than on-device content items into a single on-device content item, and include on-device content items aggregated in a single content item position. The provided on-device content items may be configured to communicate interaction information to a content provider server in response to an interaction with the content item. The client device may receive additional content (e.g., additional content 185) from the server. The additional content may be related to one or more categories, which are associated with the generated on-device content corresponding to the interaction. The additional content may, for example, cause the client device to launch different applications, navigate to a web page, or otherwise display the additional content in an application executed on the client device.

[0066] Reference now Figure 5 , illustrates a flow chart of an example method 500 for updating a content selection model or a content generation model based on interaction information. The method 500 may be performed by a client device 105, Figure 6The computer system 600 described herein or any other computing device described herein may be executed or otherwise executed. A client device (e.g., client device 105) may detect a user action (action 502). The client device may determine whether to log the action (decision 504). The client device may increment a counter register k (action 506). The client device may log the user action (action 508). The client device may determine whether the action is a training condition (decision 510). The client device may identify the user action from the log (action 512). The client device may use the action information to train the model (action 512). The client device may determine whether the counter register k is equal to zero (decision 516). The client device may decrement the counter register k (action 518). The client device may complete the training (action 520).

[0067] A client device (e.g., client device 105) can detect a user action (action 502). Detecting a user action can include utilizing one or more event listeners in an application (e.g., application 160) that displays device content on the client device. The event listener can be configured to detect interactions with one or more interactive elements displayed by the application, such as links, buttons, or content items on the device. The event listener can also detect other device events, such as charging events (e.g., the client device has been plugged in for charging), inactivity events (e.g., inactive for a predetermined period of time, the current device time is within a specific period of time during the day or night, etc.), temperature events (e.g., the temperature of the device has exceeded a certain value, etc.). The detected action can include information about the action type, the duration of the action, and any associated links, buttons, objects, or content items on the device.

[0068] The client device may determine whether to log an action (decision 504). In order to determine whether to log an operation, the client device may access internal settings, user-defined settings, or default profile information. For example, the client device may access one or more data structures in the memory of the client device, which include settings or configuration information associated with the client device. These settings may indicate certain types of actions to be logged and certain types of actions to be ignored. If the setting indicates that the interaction with the content item on the device should be logged, the client device may determine that it should log all actions associated with the content item on the device (e.g., interactions, etc.). Similarly, if any other type of action is indicated as an action that should be logged in the setting, the client device may determine that the action types identified should be logged. In some embodiments, the client device may determine that there is no action related to the log. For example, the client device may determine that the situation where there is a lack of interaction with the content item on the displayed device should be logged. In such an embodiment, the client device may create an "inactive" action that describes different parameters (e.g., duration of display, associated keywords, etc.) about the content item on the device and inactive parameters (e.g., duration of inactivity, other detected interactions (if any) and the like). If the client device determines that the detected user action should be logged, the client device may perform (act 506). If the client device determines that the detected action should not be logged, the client device may perform (act 510).

[0069] The client device may increment a counter register k (action 506). In order to log the total number of interactions used as training data for the content model, the client device may add a count to the counter register k to indicate the total count of logged user actions. In some embodiments, the client device may set the counter register k to the memory address value of the next location in a memory (e.g., a location in a computer memory) for recording the user action, for example, in a data structure. If this is the first iteration of the loop, the client device may initialize the counter register k to an initial value, such as zero, before incrementing the counter register. After incrementing the value of the counter register k, the client device may execute (action 508) of method 500.

[0070] The client device may log user actions (action 508). Logging user actions may include logging any information associated with any detected action, including device information, interaction information (e.g., type of interaction, duration of interaction, content involved in interaction, frequency of interaction, timestamp of interaction, etc.). User actions may include actions taken by the operating system of the client device or by an application executed on the client device. Therefore, the client device may log any action, interaction, input event, or other type of event that occurs, as well as any information or parameters associated with the event. In some embodiments, the client device may generate a data structure in the memory of the client device and store the event in the data structure. The client device may update the data structure when a new event is detected, or update the data structure in other ways. Logging user actions may include logging whether there are inactive events, including parameters of content items on the corresponding device (e.g., duration of display, associated keywords, etc.) and inactive parameters (e.g., duration of inactivity, other detected interactions (if any), etc.). After logging user actions, the client device may perform (action 502) of method 500. In some implementations, after performing (act 508 ), the client device may perform (act 512 ) of method 500 .

[0071] The client device may determine whether the action is a training condition (decision 510). The training condition may include an action indicating that a model stored on the client device (e.g., content generation model 130, content selection model 135, etc.) may be updated. The training condition may be an action detected by the client device (e.g., a user interaction, an indication that the device is charging, an application event, or an automatic action, etc.). In order to determine whether the detected action is a training condition, the client device may compare the most recently detected action (e.g., by a timestamp, etc.) with a training condition configuration setting. The client device may store the training condition configuration setting in a memory of the client device, such as in a data structure. The client device may access the data structure to determine whether the most recently detected action is a training condition. The configuration setting may include one or more rules indicating whether the recorded action of any log record includes a training condition. If the most recently detected action (or another detected action specified by the configuration setting) is not determined to be a training condition, the client device may perform (action 502). If it is determined that the most recently detected action (or other detected action, as specified by the configuration setting) is a training condition, the client device may perform (action 512).

[0072] The client device may identify user actions from the log (action 512). In order to train the model stored in the memory of the client device, the client device may identify training data stored in the memory of the client device. The training data may include, for example, interactions detected when displaying content items on the device or inactivity detected when displaying content items on the device, etc. In order to properly train the model, the client device must use the actions recorded in the log as input to the model to perform a training algorithm on one or more models. Therefore, the client device may iteratively loop through and identify each logged user action based on a counter register k. Each user action may be indexed in a data structure in the memory of the client device by an index value (e.g., index 0, index 1, index 2, etc.). In order to access the user action for training, the client device may select a user action including an index value equal to the counter register k. As previously established in method 500, the counter register may maintain a count of the total number of user actions recorded in the log since the last training condition. Identifying a user action from the log may include copying data associated with the identified user action to different areas of the computer memory, such as a working area of ​​the memory.

[0073] The client device may use the action information to train a model (action 512). Training the model may include executing a training algorithm (e.g., supervised learning, unsupervised learning, reinforcement learning, gradient descent algorithm, etc.). The client device may apply the identified user action and information about the device context, other detected actions, timestamps, input information, on-device content information, or other information as feedback to the model. By training the model stored in the memory, the client device may facilitate relevant content selection based on the additional information about the content item. Training the model based on the detected action may include adjusting the weights, biases, or parameters of the model to facilitate the generation or selection of relevant on-device content.

[0074] The client device may determine whether the counter register k is equal to zero (decision 516). To determine whether the client device has trained the model using the action of each log record, the client device may compare the counter register k used to select the action of each log record with a zero value. Once the counter register k is equal to zero, the client device may complete training each model. If the counter register j is not equal to (e.g., greater than) a value of zero, the client device may perform (action 518). If the counter register j is equal to (e.g., equal to or less than) a value of zero, the client device may perform (action 520).

[0075] The client device may decrement the counter register k (act 518). In order to train the content model using each action logged by the client device, the client device may subtract a count from the counter register k to indicate the next unprocessed logged user action in the memory of the client device. In some implementations, the client device may set the counter register k to the memory address value (e.g., a location in a computer memory) of the next unprocessed logged user action. After decrementing the value of the counter register k, the client device may perform (act 512) of method 500.

[0076] The client device may complete the training (act 520). Completing the training may perform one or more operations to reinitialize the model. For example, changes to the model generated by the training steps may be stored in a different area of ​​memory on the client device, such as a non-volatile memory of the client device (e.g., storage 140). In some embodiments, the client device may transmit a message to a content provider (e.g., content provider 115) indicating that the client device has performed training on the model. In some embodiments, the client device may transmit changes to the model to the content provider.

[0077] Figure 6 Shown is the overall architecture of an illustrative computer system 600 that can be employed to implement any of the computer systems discussed herein in accordance with some embodiments. Computer system 600 can be used to provide information via network 110 for display. Figure 6 The computer system 600 includes one or more processors 620 communicatively coupled to a memory 625, one or more communication interfaces 605, and one or more output devices 610 (e.g., one or more display units) and one or more input devices 615. The processor 620 may be included in the client device 105.

[0078] exist Figure 6 In the computer system 600 of FIG. 600 , the memory 625 may include any computer-readable storage medium and may store computer instructions (such as processor-executable instructions for implementing the various functionalities described herein for the corresponding system), as well as any data related thereto, generated thereby, or received via a communication interface or input device (if any). Referring again to FIG. Figure 6 In the system 600 , the client device 105 may include a memory 625 to store information related to the set of user identifiers, the generated vectors, etc. Figure 6 The processor 620 shown in FIG. 6 can be used to execute instructions stored in the memory 625 , and in doing so can also read from or write to the memory various information processed and / or generated according to the execution of the instructions.

[0079] Figure 6 The processor 620 of the computer system 600 shown in FIG. 600 may also be communicatively coupled to the communication interface 605 or control the communication interface 605 to transmit or receive various information in accordance with the execution of the instructions. For example, the communication interface 605 may be coupled to a wired or wireless network, bus, or other communication means, and thus may allow the computer system 600 to transmit information to or receive information from other devices (e.g., other computer systems). Although in FIG. Figure 6 Although not explicitly shown in the system 600, one or more communication interfaces facilitate the flow of information between components of the system 600. In some implementations, the communication interface can be configured (e.g., via various hardware components or software components) to provide a website as a portal to access at least some aspects of the computing system 600. Examples of communication interface 605 include a user interface (e.g., a web page) through which a user can communicate with the data processing system 600.

[0080] For example, you can provide Figure 6 Output devices 610 of the computer system 600 are shown to allow viewing or otherwise perceiving various information in conjunction with the execution of instructions. Input devices 615 may be provided, for example, to allow a user to make manual adjustments, make selections, enter data, or interact with the processor in any of a variety of ways during the execution of instructions. Additional information related to a general computer system architecture that can be used for the various systems discussed herein is further provided herein.

[0081] The embodiments of the subject matter and operations described in this specification may be implemented in digital electronic circuits or in computer software embodied in tangible media, firmware or hardware including the structures disclosed in this specification and their equivalent structures, or in a combination of one or more thereof. The embodiments of the subject matter described in this specification may be implemented as one or more computer programs, i.e., one or more components of computer program instructions, which are encoded on a computer storage medium to be executed by a data processing device or to control the operation of a data processing device. Program instructions may be encoded on an artificially generated propagation signal, such as a machine-generated electrical, optical or electromagnetic signal, which is generated to encode information for transmission to a suitable receiver device for execution by a data processing device. The computer storage medium may be or be included in a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more thereof. In addition, although the computer storage medium is not a propagation signal, the computer storage medium may include a source or destination of computer program instructions encoded in an artificially generated propagation signal. The computer storage medium may also be one or more separate physical components or media (e.g., multiple CDs, disks or other storage devices) or contained therein.

[0082] Features disclosed herein can be implemented on a smart TV module (or a connected TV module, a hybrid TV module, etc.), which may include a processing module configured to integrate Internet connectivity with more traditional TV program sources (e.g., via cable, satellite, wireless or other signal reception). The smart TV module may be physically incorporated into a TV set, or may include separate devices such as a set-top box, a blue-ray or other digital media player, a game console, a hotel TV system, and other supporting equipment. The smart TV module may be configured to allow viewers to search and find videos, movies, photos, and other content on the web, on local cable TV channels, on satellite TV channels, or stored on a local hard drive. A set-top box (STB) or a set-top unit (STU) may include an information appliance device, which may include a tuner and be connected to a TV set and an external signal source, tune the signal to content, and then display the content on a TV screen or other display device. The smart TV module may be configured to provide a home screen or a top-level screen, which includes icons for multiple different applications such as a web browser and multiple streaming services, a connected cable or satellite media source, other web "channels", and the like. The Smart TV module may be further configured to provide an electronic program guide to the user. A companion application for the Smart TV module may operate on the mobile computing device to provide the user with additional information about available programming, to allow the user to control the Smart TV module, etc. In alternative embodiments, features may be implemented on a laptop or other personal computer, smartphone, other mobile phone, palmtop, tablet computer, or other computing device.

[0083] The operations described in this specification may be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

[0084] The terms "data processing apparatus", "data processing system", "user device", "client device" or "computing device" cover all types of apparatus, equipment and machines for processing data, including, for example, the aforementioned programmable processors, computers, systems on chips, or multiple or combinations thereof. The apparatus may include dedicated logic circuits, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, the apparatus may also include code that creates an execution environment for the computer program in question, such as code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more thereof. The apparatus and execution environment may implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.

[0085] A computer program (also referred to as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), a single file dedicated to the program in question, or multiple coordination files (e.g., files storing one or more modules, subroutines, or partial codes). A computer program may be deployed to execute on a computer or multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.

[0086] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and the apparatus can also be implemented as, special purpose logic circuitry, for example, an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

[0087] For example, processors suitable for executing computer programs include general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The elements of a computer include a processor for performing actions according to instructions and one or more memory devices for storing instructions and data. Typically, the computer will also include one or more mass storage devices for storing data or operatively coupled to receive data from or transmit data to the one or more mass storage devices, or both, the one or more mass storage devices, such as magnetic disks, magneto-optical disks, or optical disks. However, the computer does not have to have such devices. In addition, the computer can be embedded in another device, such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive). Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, such as semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0088] To provide interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device for displaying information to the user, such as a CRT (cathode ray tube), plasma, or LCD (liquid crystal display) monitor, and a keyboard and pointing device through which the user can provide input to the computer, such as a mouse and trackball. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can include 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 sound, voice, or tactile input. In addition, the computer can interact with the user by sending documents to and receiving documents from a device used by the user; for example, by sending a web page to a web browser on a user's client device in response to a request received from the web browser.

[0089] Implementations of the subject matter described in this specification may be implemented in a computing system that includes a back-end component (e.g., as a data server) or includes a middleware component (e.g., an application server) or includes a front-end component (e.g., a client computer with a graphical user interface or a web browser through which a user can interact with implementations of the subject matter described in this specification) or a combination of one or more such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), internetworks (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0090] A computing system such as client device 105 may include a client and a server. For example, client device 105 may include one or more servers in one or more data centers or server farms. Clients and servers are typically remote from each other and typically interact through a communication network. The relationship between a client and a server is generated by computer programs that run on respective computers and have a client-server relationship with each other. In some embodiments, a server transmits data (e.g., an HTML page) to a client device (e.g., for the purpose of displaying data to a user interacting with the client device and receiving user input therefrom). Data generated at a client device (e.g., a result of a user interaction) may be received from a client device at a server.

[0091] Although this specification contains many specific implementation details, these should not be interpreted as limitations on any invention or the scope of protection that can be claimed, but should be interpreted as descriptions of features specific to specific embodiments of the systems and methods described herein. Certain features described in the context of separate embodiments in this specification may also be implemented in combination in a single embodiment. Conversely, the various features described in the context of a single embodiment may also be implemented in multiple embodiments individually or in any suitable sub-combination. Moreover, although features may be described above as working in certain combinations and even initially claimed as such, in some cases one or more features in the claimed combination may be cut out from the combination, and the claimed combination may be directed to a sub-combination or a variant of the sub-combination.

[0092] Similarly, although operations are depicted in a particular order in the drawings, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed to achieve the desired results. In some cases, the actions cited in the claims may be performed in a different order and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require the particular order shown or sequential order to achieve the desired results.

[0093] In some cases, multitasking and parallel processing may be advantageous. In addition, the separation of various system components in the above-described embodiments should not be understood as requiring such separation in all embodiments, 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. For example, the client device 105 can be a single module, a logical device with one or more processing modules, one or more servers, or part of a search engine.

[0094] Now that some illustrative embodiments and implementations have been described, it is apparent that the foregoing is illustrative rather than restrictive and has been presented by way of example. In particular, although many of the examples presented herein relate to specific combinations of method actions or system elements, those actions and those elements may be combined in other ways to achieve the same goals. The actions, elements, and features discussed only in conjunction with one embodiment are not intended to be excluded from similar effects in other embodiments or implementations.

[0095] The phraseology and terminology used herein are for descriptive purposes and should not be considered limiting. The use of "including," "comprising," "having," "containing," "involving," "characterized by," "characterized in that," and variations thereof herein are intended to encompass the items listed thereafter, their equivalents, and additional items, as well as alternative embodiments consisting solely of the items listed thereafter. In one embodiment, the systems and methods described herein consist of one, more than one, each combination, or all of the described elements, acts, or components.

[0096] Any reference to an embodiment or element or action of the system and method mentioned in the singular form herein may also include an embodiment including a plurality of these elements, and any reference to any embodiment or element or action in the plural form herein may also include an embodiment including only a single element. References in the singular or plural form are not intended to limit the currently disclosed system or method, their components, actions or elements to a single or multiple configurations. References to any action or element based on any information, action or element may include an embodiment in which the action or element is at least partially based on any information, action or element.

[0097] Any embodiment disclosed herein may be combined with any other embodiment, and references to "an embodiment," "some embodiments," "alternative embodiments," "various embodiments," "one embodiment," etc. are not necessarily mutually exclusive and are intended to indicate that a particular feature, structure, or characteristic described in conjunction with an embodiment may be included in at least one embodiment. Such terms as used herein do not necessarily all refer to the same embodiment. Any embodiment may be inclusively or exclusively combined with any other embodiment in any manner consistent with the aspects and embodiments disclosed herein.

[0098] References to "or" may be construed as inclusive such that any term described using "or" may refer to any of a single, more than one, and all of the described terms.

[0099] Where a technical feature in the drawings, detailed description or any claims is followed by a reference numeral, the reference numeral has been included to increase the intelligibility of the drawings, detailed description and claims. Therefore, the reference numeral or its absence has no limiting effect on the scope of any claim element.

[0100] Without departing from its characteristics, the system and method described herein can be realized in other specific forms. Although the example provided herein relates to the display of controlling information resource content, the system and method described herein can include being applied to other environments. The aforementioned implementation is illustrative, rather than limiting the described system and method. Therefore, the scope of the system and method described herein is indicated by the appended claims rather than the preceding description, and the changes in the equivalent meanings and scope of the claims are included therein.

Claims

1. A method for generating multiple on-device content items to improve security, privacy, and network resource utilization, the method comprising: accessing, by a client device including one or more processors and memory, a plurality of content resources and a plurality of category information from a data structure in the memory of the client device; generating, by the client device, the plurality of on-device content items based on the plurality of content resources and the plurality of category information; receiving, by the client device from an application executing on the client device, an indication to display a content item; Scanning the on-device context information by the client device to create a related on-device context; selecting, by the client device, a relevant on-device content item from the plurality of on-device content items based on the relevant on-device context; providing, by the client device, the associated on-device content item to the application for display on the client device; detecting, by the client device, an interaction event associated with the associated on-device content item; identifying, by the client device, interaction information based on the detected interaction event; as well as The client device transmits the interaction information to a content provider server.

2. The method according to claim 1, further comprising: Additional content is received, by the client device, from the content provider server based on the interaction information.

3. The method according to claim 1, further comprising: The plurality of content resources and the plurality of category information are received by the client device from a content provider server.

4. A method for generating multiple on-device content items to improve security and network resource utilization, the method comprising: accessing, by a client device including one or more processors and memory, a plurality of content resources and a plurality of category information from a data structure in the memory of the client device; generating, by the client device, the plurality of on-device content items based on the plurality of content resources and the plurality of category information; receiving, by the client device from an application executing on the client device, an indication to display a content item; Scanning the on-device context information by the client device to create a related on-device context; selecting, by the client device, a relevant on-device content item from the plurality of on-device content items based on the relevant on-device context; providing, by the client device, the associated on-device content item to the application for display on the client device, The step of generating the plurality of content items on the device further comprises: providing, by the client device, the plurality of content resources and the plurality of category information to a content generation model executed on the client device; and The plurality of on-device content items are received by the client device from an output of the content generation model.

5. The method according to claim 4, further comprising: The content generation model is received by the client device from a content provider server.

6. The method according to claim 4, further comprising: detecting, by the client device, an interaction event associated with the associated on-device content item; as well as The content generation model is updated by the client device based on at least one of the relevant on-device context or the interaction event.

7. A method for generating multiple on-device content items to improve security and network resource utilization, the method comprising: accessing, by a client device including one or more processors and memory, a plurality of content resources and a plurality of category information from a data structure in the memory of the client device; generating, by the client device, the plurality of on-device content items based on the plurality of content resources and the plurality of category information; receiving, by the client device from an application executing on the client device, an indication to display a content item; Scanning the on-device context information by the client device to create a related on-device context; selecting, by the client device, a relevant on-device content item from the plurality of on-device content items based on the relevant on-device context; providing, by the client device, the associated on-device content item to the application for display on the client device, Wherein, selecting the related on-device content item further comprises: providing, by the client device, the associated on-device context to a content selection model executing on the client device; and An indication of the relevant on-device content item of the plurality of on-device content items is received by the client device from an output of the content selection model.

8. The method according to claim 7, further comprising: The content selection model is received by the client device from a content provider server.

9. The method according to claim 7, further comprising: detecting, by the client device, an interaction event associated with the associated on-device content item; as well as The content selection model is updated by the client device based on at least one of the relevant on-device context or the interaction event.

10. A system for generating multiple on-device content items to improve security, privacy, and network resource utilization, the system comprising a client device, the client device comprising one or more processors and memory, the one or more processors configured to: accessing a plurality of content resources and a plurality of category information from a data structure in the memory of the client device; generating the plurality of on-device content items based on the plurality of content resources and the plurality of category information; receiving an instruction to display a content item from an application executing on the client device; Scanning on-device context information to create relevant on-device context; selecting a relevant on-device content item from the plurality of on-device content items based on the relevant on-device context; providing the associated on-device content item to the application for display on the client device; detecting an interaction event associated with the associated on-device content item; identifying interaction information based on the detected interaction events; as well as The interaction information is transmitted to a content provider server.

11. The system according to claim 10, wherein: The one or more processors are further configured to: Additional content is received from the content provider server based on the interaction information.

12. The system according to claim 10, wherein: The one or more processors are further configured to: The plurality of content resources and the plurality of category information are received from a content provider server.

13. A system for generating multiple on-device content items to improve security and network resource utilization, the system comprising a client device, the client device comprising one or more processors and memory, the one or more processors being configured to: accessing a plurality of content resources and a plurality of category information from a data structure in the memory of the client device; The plurality of on-device content items are generated based on the plurality of content resources and the plurality of category information by at least: providing the plurality of content resources and the plurality of category information to a content generation model executing on the client device; and receiving the plurality of on-device content items from an output of the content generation model; receiving an instruction to display a content item from an application executing on the client device; Scanning on-device context information to create relevant on-device context; selecting a relevant on-device content item from the plurality of on-device content items based on the relevant on-device context; as well as The associated on-device content item is provided to the application for display on the client device.

14. The system according to claim 13, wherein: The one or more processors are further configured to: The content generation model is received from a content provider server.

15. The system of claim 13, wherein: The one or more processors are further configured to: detecting an interaction event associated with the associated on-device content item; and The content generation model is updated based on at least one of the relevant on-device context or the interaction event.

16. A system for generating multiple on-device content items to improve security and network resource utilization, the system comprising a client device, the client device comprising one or more processors and memory, the one or more processors further configured to: accessing a plurality of content resources and a plurality of category information from a data structure in the memory of the client device; The plurality of on-device content items are generated based on the plurality of content resources and the plurality of category information by at least: receiving an instruction to display a content item from an application executing on the client device; Scanning on-device context information to create relevant on-device context; Selecting a relevant on-device content item from the plurality of on-device content items based on the relevant on-device context by at least: providing the relevant on-device context to a content selection model executing on the client device; and receiving, from an output of the content selection model, an indication of the relevant on-device content item among the plurality of on-device content items; as well as The associated on-device content item is provided to the application for display on the client device.

17. The system of claim 16, wherein: The one or more processors are further configured to: The content selection model is received from a content provider server.

18. The system of claim 16, wherein: The one or more processors are further configured to: detecting an interaction event associated with the associated on-device content item; and The content selection model is updated based on at least one of the relevant on-device context or the interaction event.

Citation Information

Patent Citations

  • Content presentation based on user preferences

    US20080004949A1