Exposure filtering method, apparatus, device, and storage medium

CN116962892BActive Publication Date: 2026-09-08TENCENT TECH (BEIJING) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310252789.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-03-07
Publication Date
2026-09-08
Estimated Expiration
2043-03-07

AI Technical Summary

Technical Problem

[0004]然而,由于客户端采集真实曝光数据并发送至推荐系统存在一定延迟,容易导致推荐系统向用户提供的内容重复

Benefits of technology

通过采用真实曝光数据和后台曝光数据合并的方式,并根据合并后的曝光数据,对候选池中的内容进行曝光过滤。一方面通过对第一时间段内的真实曝光数据进行剔除,保留第一时间段内服务器提供给客户端,但是第一用户没有真实看到的曝光数据,在避免服务器将第一时间段内用户看到过的内容重复推荐给用户的同时,也避免了对第一时间段内的后台曝光数据进行曝光过滤而导致的误伤问题。另一方面通过对暂未获取到真实曝光数据的第二时间段内的后台曝光数据进行剔除,避免服务器向用户推荐重复的内容。综上所述,就能够达到在不向用户推荐重复的内容的前提下,尽可能少的产生误伤,避免候选池中一些用户未看到过的内容被过滤掉,而导致优质内容的浪费。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116962892B_ABST
    Figure CN116962892B_ABST
Patent Text Reader

Abstract

The application discloses an exposure filtering method and device, equipment and storage medium, and relates to the technical field of computers. The method comprises the following steps: acquiring real exposure data of a first user account in a first time period; acquiring background exposure data of the first user account in a second time period, the second time period being located after the first time period, and the starting moment of the second time period being the ending moment of the first time period, and the ending moment of the second time period being a current moment; and merging the real exposure data in the first time period and the background exposure data in the second time period to obtain merged exposure data, the merged exposure data being used for exposure filtering of content in a candidate pool when content is recommended to the first user account. The application filters the content in the candidate pool by merging the real exposure data and the background exposure data, avoids repeatedly recommending the content that has been exposed, and reduces the waste of exposure data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to an exposure filtering method, apparatus, device, and storage medium. Background Technology

[0002] Recommendation systems typically use exposure filtering to filter content in the candidate pool, preventing users from seeing content they have already viewed.

[0003] In related technologies, recommendation systems use real exposure data to filter the content in the candidate pool to avoid misrepresenting high-quality content.

[0004] However, due to the delay in the client collecting real exposure data and sending it to the recommendation system, the recommendation system may provide duplicate content to users. Summary of the Invention

[0005] This application provides an exposure filtering method, apparatus, device, and storage medium that can avoid recommending repetitive content to users and minimize false alarms. The technical solution is as follows: According to one aspect of the embodiments of this application, an exposure filtering method is provided, the method comprising: Obtain the actual exposure data of the first user account within the first time period, wherein the actual exposure data refers to the content displayed on the client that has been logged into by the first user account; Obtain the background exposure data of the first user account in the second time period. The background exposure data refers to the content that has been sent to the client logged in by the first user account. The second time period is after the first time period, and the start time of the second time period is the end time of the first time period. The end time of the second time period is the current time. The actual exposure data within the first time period and the background exposure data within the second time period are merged to obtain merged exposure data. The merged exposure data is used to filter the content in the candidate pool when recommending content to the first user account.

[0006] According to one aspect of the embodiments of this application, an exposure filtering device is provided, the device comprising: The real data acquisition module is used to acquire the real exposure data of the first user account within a first time period. The real exposure data refers to the content displayed on the client that has been logged into by the first user account. The background data acquisition module is used to acquire the background exposure data of the first user account in the second time period. The background exposure data refers to the content that has been sent to the client logged in by the first user account. The second time period is after the first time period, and the start time of the second time period is the end time of the first time period. The end time of the second time period is the current time. The merging module is used to merge the real exposure data in the first time period and the background exposure data in the second time period to obtain merged exposure data. The merged exposure data is used to filter the content in the candidate pool when recommending content to the first user account.

[0007] According to one aspect of the embodiments of this application, a server is provided, the server including a processor and a memory, the memory storing a computer program, the computer program being loaded and executed by the processor to implement the above-described exposure filtering method.

[0008] According to one aspect of the embodiments of this application, a computer-readable storage medium is provided, wherein a computer program is stored in the computer-readable storage medium, the computer program being loaded and executed by a processor to implement the above-described exposure filtering method.

[0009] According to one aspect of the embodiments of this application, a computer program product is provided, the computer program product including a computer program, the computer program being loaded and executed by a processor to implement the above-described exposure filtering method.

[0010] The technical solution provided in this application can bring the following beneficial effects: By merging real exposure data and background exposure data, and then filtering the content in the candidate pool based on the merged data, two approaches are taken. First, real exposure data from the first time period is removed, retaining only the data provided to the client by the server within that period but not actually seen by the first user. This avoids the server repeatedly recommending content already seen by the user in the first time period, and also avoids false positives caused by filtering background exposure data from the first time period. Second, background exposure data from the second time period, for which real exposure data has not yet been obtained, is removed, preventing the server from recommending duplicate content to users. In summary, this approach minimizes false positives while avoiding recommending duplicate content to users, preventing the filtering of content that users have not seen in the candidate pool and thus avoiding the waste of high-quality content. Attached Figure Description

[0011] Figure 1 This is a diagram illustrating the background exposure and actual exposure provided by the relevant technology; Figure 2 This is a schematic diagram of the exposure recovery process provided by related technologies; Figure 3 This is a schematic diagram of the implementation environment of a solution provided in one embodiment of this application; Figure 4 This is a flowchart of an exposure filtering method provided in one embodiment of this application; Figure 5 This is a schematic diagram of an embodiment of the exposure filtering system provided in this application; Figure 6 This is a schematic diagram of a storage unit provided in one embodiment of this application; Figure 7 This is a schematic diagram of three arrangement schemes of a Bloom filter provided in one embodiment of this application; Figure 8 This is a schematic diagram illustrating the merging of real exposure data and background exposure data according to an embodiment of this application; Figure 9 This is a schematic diagram illustrating the selection of exposure data from a candidate pool according to an embodiment of this application; Figure 10 This is a schematic diagram of the code for a server creating a new storage unit according to an embodiment of this application; Figure 11 This is a block diagram of an exposure filtering device provided in one embodiment of this application; Figure 12 This is a structural block diagram of a computer device provided in one embodiment of this application. Detailed Implementation

[0012] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.

[0013] Before introducing the embodiments of this application, the following explanations are provided for the terms appearing in this solution to facilitate understanding: 1. Exposure Filtering: This refers to a method of filtering content in a candidate pool using exposure data to prevent users from seeing content they have already seen. Exposure data includes actual exposure data and background exposure data.

[0014] 2. Background exposure: This refers to the process where the client requests content from the server, and the server provides recommended content to the client based on the request. The server records this content provided to the client for exposure filtering.

[0015] 3. Authentic Exposure: This refers to the content that users actually see on the client application.

[0016] 4. Exposure recycling: This refers to returning content that the server recommends to users but which the users do not see to the content candidate pool for re-recommendation to users.

[0017] Artificial intelligence (AI) is the theory, methods, technology, and application systems that use digital computers or machines controlled by digital computers to simulate, extend, and expand human intelligence, perceive the environment, acquire knowledge, and use that knowledge to achieve optimal results. In other words, AI is a comprehensive technology within computer science that attempts to understand the essence of intelligence and produce a new kind of intelligent machine that can react in a way similar to human intelligence. AI studies the design principles and implementation methods of various intelligent machines, enabling them to possess the functions of perception, reasoning, and decision-making.

[0018] Artificial intelligence (AI) is a comprehensive discipline encompassing a wide range of fields, including both hardware and software technologies. Fundamental AI technologies generally include sensors, dedicated AI chips, cloud computing, distributed storage, big data processing, operating / interactive systems, and mechatronics. AI software technologies primarily include computer vision, speech processing, natural language processing, and machine learning / deep learning.

[0019] With the research and advancement of artificial intelligence (AI) technology, AI is being studied and applied in various fields, such as smart homes, smart wearable devices, virtual assistants, smart speakers, smart marketing, autonomous driving, drones, robots, smart healthcare, and smart customer service. It is believed that with the development of technology, AI will be applied in more fields and play an increasingly important role.

[0020] The technical solution of this application mainly relates to exposure filtering technology in artificial intelligence technology, and mainly to server filtering technology for exposure data.

[0021] A diagram illustrating the background exposure and actual exposure of the user-logged-in client can be found here. Figure 1 .like Figure 1 As shown, the client's display screen can show 2-3 large cards 101 per screen, while the server can provide the client with 5 large cards 101 at a time, except for the first screen which displays different types of modules (such as...). Figure 1Apart from module 102 shown, each subsequent screen displays exposure content in the form of large cards. Of course, depending on the size of each screen, the large cards may start displaying on the first screen or not until the second screen. When a user is browsing the first screen of exposure content on the client, the server has often already provided the client with the first and second refreshes of exposure content. When the user browses the second screen of exposure content, the server has often already provided the client with the third refresh of exposure content. If the user browses the exposure content quickly, the client needs to wait for a period of time until it receives the server's pre-provided exposure content again, for example, it may take 1-2 seconds. The content already displayed on the user's logged-in client is the actual exposure data, and all content provided by the server to the client is the background exposure data. Here, the situation where there is exposure data in the background exposure data that has not been seen by the user, and that this unseen exposure data is filtered out, can be called false positives. The behavior of the server providing the next refresh of exposure data to the client in advance, and the client requesting the next refresh of exposure data in advance, can be called prefetching behavior. Prefetching behavior exacerbates the situation of false positives.

[0022] In related technologies, a scheme is provided for exposure filtering of content in a candidate pool using real exposure data. The specific process for exposure recovery can be found in [reference needed]. Figure 2 The server provides background exposure data to the client, which is used for both display and storage. After a user views the content on the client, the client reports the actual exposure data to the server, which can then delete such data from the candidate pool. However, due to a delay in the reporting process, even after the server filters the reported data, some data from the delayed period may still remain. This means that after exposure is recycled, the data recommended to the client again might include content the user has already seen, significantly impacting the browsing experience.

[0023] Please refer to Figure 3 This diagram illustrates an implementation environment for a solution provided in one embodiment of this application. This implementation environment can be implemented as an exposure filtering system. The implementation environment may include: a terminal device 10 and a server 20.

[0024] There can be one or more terminal devices 10. Terminal devices 10 can be electronic devices such as mobile phones, tablets, game consoles, e-book readers, multimedia playback devices, wearable devices, PCs (Personal Computers), and in-vehicle terminals. Client applications can be installed on terminal devices 10. This application does not limit the type of application, but includes, but is not limited to, video applications, news applications, game applications, search applications, etc. Server 20 can provide various types of data to the client running on terminal devices 10, including but not limited to video data, music data, text data, etc. The content requested by terminal device 10 from server 20 depends on the type of application. If the application is a video application, the content requested by terminal device 10 from server 20 is video data; if the application is a news application, the content requested by terminal device 10 from server 20 is news data. Server 20 provides the corresponding type of content to the terminal device according to the request of terminal device 10. This application will mainly describe the case where the application is a video application; optionally, terminal device 10 may have a client application running on it.

[0025] Server 20 provides background services for clients of applications installed and running on terminal device 10. For example, server 20 can be a background server for the aforementioned application. Server 20 can be a single server, a server cluster consisting of multiple servers, or a cloud computing service center. Optionally, server 20 can simultaneously provide background services for clients of applications on multiple terminal devices 10. Terminal devices 10 and server 20 can communicate with each other via a network.

[0026] Server 20 includes a service module 201, a storage module 202, and a recommendation module 203. Service module 201 primarily filters the candidate pool of exposure data based on the real exposure data uploaded by terminal device 10, allowing recommendation module 203 to provide the filtered exposure data back to terminal device 10. Recommendation module 203 responds to access requests from terminal device 10 and provides exposure data to terminal device 10. Storage module 202 stores records of background exposure data stored in storage when recommendation module 203 provides exposure data to terminal device 10. Storage module 202 can also provide the stored background exposure data to service module 201, allowing service module 201 to filter the candidate pool of exposure data based on the real exposure data uploaded by terminal device 10. Storage module 202 can store the background exposure data using a key-value (KV) storage method.

[0027] In this embodiment, when a user initiates a request to access content in the application client on the terminal device 10, the recommendation module 203 in the server 20 responds to the request, selects exposure data from the exposure data candidate pool and recommends it to the client. Simultaneously, the recommendation module 203 stores the exposure data recommended to the client in the storage module 202. While the user accesses the client, the client returns real exposure data to the server 20 in real time. The service module 201 in the server 20 performs exposure filtering on the background exposure data in the storage module 202 based on the real exposure data returned by the client and the background exposure data for the period when real exposure data has not yet been obtained. The filtered exposure data is then added to the exposure data candidate pool, resulting in an updated candidate pool. The recommendation module 203 can then select exposure data from the updated candidate pool to recommend to the client again.

[0028] Please refer to Figure 4 The diagram illustrates a flowchart of an exposure filtering method provided in an embodiment of this application. The execution entity for each step of this method can be a computer device, which can be the aforementioned terminal device 10 or server 20. The following description uses a server as an example. The method may include at least one of the following steps 410-430: Step 410: Obtain the actual exposure data of the first user account within the first time period. The actual exposure data refers to the content that has been displayed on the client that the first user account has logged in with.

[0029] The first user account refers to any user account that logs into the client. The first time period is a specific period within the historical time period, corresponding to the historical time period corresponding to the actual exposure data of the first user account that the server has obtained. The first time period can refer to the time period during which the first user accesses the client once, or it can refer to the overall time period during which the first user accesses the client several times.

[0030] The actual exposure data has been introduced above. The content displayed on the client where the first user account is logged in can refer to content that was displayed on the client where the first user account is logged in and that the first user actually saw on that client, or content that was displayed on the client where the first user account is logged in, regardless of whether the first user actually saw that displayed content on the logged-in client. Obtaining the actual exposure data of the first user account within a first time period means obtaining the actual exposure data of the first user account within the first time period in a historical time period.

[0031] In some embodiments, the content actually seen by the first user on the logged-in client does not represent all the content displayed on the client, but rather personalized content recommended based on the user's browsing habits, in addition to the basic application settings applicable to all users. Figure 1 The content displayed on the client's screen, specifically the fixed module on the first screen, cannot be included in the actual exposure data, while the content of the large card 101 can be included. The client's screen prioritizes displaying the content of the fixed module, followed by the content of the large card 101. Therefore, the large card 101 can be displayed to the user starting from the first screen, or it can be displayed starting from another screen after the first screen, depending on the screen size, which this application does not limit. If the screen size is small, the user needs to see the personalized recommendation content from after the first screen, such as the second or third screen; if the screen size is large, the user may see the personalized recommendation content on the first screen.

[0032] A schematic diagram of the exposure filtering system in this application can be referenced. Figure 5 The client 501, logged in with the first user account, reports the real exposure data for the recent period to the service module on the server, enabling the server to obtain the real exposure data of the first user account within the first time period. It should be noted that the real exposure data of the first user account within the first time period is obtained with the user's authorization or with full authorization from all parties involved, and the collection, use, and processing of related information and data must comply with the relevant laws, regulations, and standards of the relevant countries and regions.

[0033] Step 420: Obtain the background exposure data of the first user account in the second time period. The background exposure data refers to the content that has been sent to the client logged in by the first user account. The second time period is after the first time period, and the start time of the second time period is the end time of the first time period, and the end time of the second time period is the current time.

[0034] The background exposure data has been described above. This data can contain a portion of exposure data that is actually seen by users, and another portion that is not. Alternatively, all background exposure data can be actually seen by users, or none of it can be seen. In other words, background exposure data can include actual exposure data, be equivalent to actual exposure data, or have zero actual exposure data, meaning it contains no actual exposure data. The amount of actual exposure data in the background exposure data is related to the user's actual browsing behavior, and this application does not impose any limitations on this.

[0035] It's important to note that the first user may log in to different clients simultaneously or at different times using the same account. Therefore, the background exposure data obtained by the server for the first user account during the second time period refers to the content sent by the server to any client on which the first user account logged in during the second time period. If the first user logs in to other clients using the same account, the background exposure data will correspondingly refer to the content sent by the server to those other clients where the first user account logged in.

[0036] Optionally, if the first user does not log in to the client with a first user account, but randomly browses content on any client, the actual exposure data corresponding to the client can be recorded based on the client's identification information. For example, a GUID (Globally Unique Identifier) ​​can be used as the client's identification information to record the actual exposure data corresponding to the GUID.

[0037] like Figure 5 As shown, while the recommendation system sends the exposure data to the client 501 logged in by the first user account, it also stores all the sent exposure data separately in the storage module, so that the storage module contains the background exposure data of the first user account within the historical time period. The service module can retrieve the background exposure data of the first user account in the second time period from the background exposure data of the first user account within the historical time period based on the start and end times of the second time period.

[0038] It's important to note that when the server obtains the actual exposure data of the first user account within the first time period, and also obtains the background exposure data of the first user account within the second time period, the server has not yet obtained the actual exposure data of the first user account within the second time period. At this point, the background exposure data within the second time period may contain actual exposure data from the second time period, may consist entirely of actual exposure data, or may not contain any actual exposure data from the second time period.

[0039] It should be noted that the background exposure data of the first user account in the second time period was obtained with the user's authorization or with full authorization from all parties, and the collection, use and processing of relevant information and data must comply with the relevant laws, regulations and standards of the relevant countries and regions.

[0040] In some embodiments, the background exposure data of the first user account within a historical time period is stored using at least one storage unit, and the number of storage units is scalable.

[0041] The historical time period refers to the period including both the first and second time periods. For example, the historical time period can be one month or three months. Based on the volume of background exposure data within this historical time period, at least one storage unit is used for storage. If the volume of background exposure data for the first user account within the historical time period exceeds the storage capacity of the first storage unit, a new storage unit can be created for storage.

[0042] Optionally, the capacity of the newly created storage unit can be the same as or greater than the capacity of the already created storage unit. If the capacity of the newly created storage unit is greater than the capacity of the already created storage unit, a schematic diagram of the storage unit can be referenced. Figure 6 Storage units, such as storage unit 1, storage unit 2, and storage unit 3, are created sequentially according to time. The capacity of each newly created storage unit is greater than the capacity of the previously created storage unit. Figure 6 Storage unit 2 has a larger capacity than storage unit 1, storage unit 3 has a larger capacity than storage unit 2, storage unit 4 has a larger capacity than storage unit 3, and so on. The capacity of a storage unit here refers to the amount of exposure data it can store; for example, it could be the amount of video data it can store.

[0043] Each storage unit stores at least one piece of background exposure data. It can store the identification information corresponding to each piece of background exposure data, such as the link information for each piece. This identification information can be stored in plaintext or in the form of a hash function. The storage format of the hash function can be found in [reference needed]. Figure 6 As shown.

[0044] The capacity of storage units can be set using a linearly adaptive growth arrangement scheme. For example, if the capacity of the first storage unit is M, then after the first storage unit is full, the capacity of the newly created second storage unit will be 2M, and the capacity of the newly created i-th storage unit will be i. M. For example, Figure 6 In this example, if storage unit 1 has a capacity of 125, then storage unit 2 has a capacity of 250, storage unit 3 has a capacity of 375, and so on, to meet the storage needs of background exposure data within different historical time periods with varying data volumes. `i` has a maximum upper limit. When no new storage units can be created, it means that the capacity of all storage units has reached its maximum limit. At this point, older storage units can be rolled out to free up storage space.

[0045] The value of 'i' is related to the frequency and duration of the first user's access to the client. If the first user accesses the client frequently or for a long time each time, the corresponding volume of background exposure data will be larger, and the value of 'i' will also be larger, so as to enable the storage of background exposure data within a historical time period. If the first user accesses the client infrequently or for a short time each time, the corresponding volume of background exposure data will be smaller, and the value of 'i' will also be smaller. This application does not impose any limitations on this.

[0046] In some embodiments, the storage unit is a Bloom filter. A Bloom filter is a data structure consisting of a bit array of length m bits and k independent hash functions. The bit array is initialized to 0. All hash functions can distribute the input data as evenly as possible, and can be used to detect the existence of a specific element in the set. When querying an element, the element is processed through a hash function to generate a hash value. Then, the bit values ​​corresponding to the k hash functions are checked. If any bit is 0, it indicates that the element is not in the set; if all bits are 1, it indicates that the element is in the set. Here, m and k are positive integers.

[0047] One storage unit corresponds to one Bloom filter, and the storage capacity of each Bloom filter follows the linearly adaptive growth orchestration scheme described above. If each storage unit is a Bloom filter, then the storage unit uses a hash function storage method, mapping the background exposure data to a large bitmap. The bit value at the corresponding position of each background exposure data item is either 0 or 1, which can greatly reduce the storage space of background exposure data within a historical time period. Taking video data storage as an example, a single video clip is approximately 30 bytes, and storing 10,000 video clips requires 300KB of storage space. However, using a Bloom filter for storage only requires 8-12KB of storage space, significantly reducing storage space.

[0048] The above-mentioned Bloom filter orchestration scheme with linearly adaptive growth of storage unit capacity is based on the following two considerations. Firstly, server execution time. The computational complexity of a server for a Bloom filter can be expressed as N·K, where N represents the number of Bloom filters and K represents the number of hash functions in each Bloom filter. Here, the number of hash functions K in a Bloom filter is related to the performance settings of the Bloom filter, not to the actual data capacity that can be stored within the Bloom filter. Therefore, the computational complexity of a Bloom filter mainly depends on its number. When the server verifies and judges the background exposure data in the Bloom filters, the server's computing resources are mainly used for calculating multiple hash functions. Too many Bloom filters will increase the computational complexity of the server for Bloom filters, and the execution time will increase accordingly. Therefore, the number of Bloom filters should be minimized as much as possible. Secondly, storage utilization. Since the storage capacity of a Bloom filter cannot be changed after its creation, the storage capacity of the initially created Bloom filter should not be too large. If the amount of background exposure data to be stored within a historical time period is small, an excessively large Bloom filter can easily lead to a waste of storage resources.

[0049] The settings for a Bloom filter can be: Figure 7 Of the three arrangement schemes shown, this application can adopt... Figure 7 Any of the orchestration schemes shown. In some embodiments, a third orchestration scheme can be adopted. If the first scheme is adopted, the storage capacity of each Bloom filter is the same. This may result in low storage utilization and wasted storage resources when the volume of background exposure data within the required historical time period is small, even if only one Bloom filter is used for storage. If the second scheme is adopted, the storage capacity of each Bloom filter is the same and small, which is beneficial for improving storage utilization. However, if a large volume of background exposure data needs to be stored, more Bloom filters are required, which increases the computational complexity of the server for Bloom filters and increases the server execution time. Therefore, the third scheme is a more reasonable orchestration method. On the one hand, it can make full use of the storage space of Bloom filters when the volume of background exposure data is small, reducing the waste of storage resources. On the other hand, it can effectively control the computational complexity of the server for Bloom filters when the volume of background exposure data is large, thereby controlling the server execution time. This allows it to adapt to the volume distribution of background exposure data in different business scenarios, while simultaneously controlling execution time and improving storage utilization.

[0050] Alternatively, the storage unit is not limited to an scalable Bloom filter, but can be other storage units that can balance the server's execution time and the storage rate of the storage unit, such as a cuckoo filter.

[0051] Step 430: Merge the real exposure data in the first time period and the background exposure data in the second time period to obtain the merged exposure data. The merged exposure data is used to filter the content in the candidate pool when recommending content to the first user account.

[0052] A candidate pool is a database of exposure data sent by the server to the first user to log in. The exposure data in the candidate pool is generated based on the nature of the application and can contain hundreds of thousands of exposure data items. For example, for video applications, various types of video data can be generated, and the candidate pool includes, but is not limited to, humorous video data, sports video data, game video data, movie video data, and so on.

[0053] like Figure 5 As shown, after obtaining the actual exposure data for the first time period and the background exposure data for the second time period, the server's service module merges the two sets of exposure data to obtain the merged exposure data. The merged exposure data is the exposure data that needs to be filtered out from the candidate pool. The candidate pool before filtering contains the merged exposure data, while the candidate pool after filtering no longer contains the merged exposure data.

[0054] Figure 8 This illustrates the process by which the server merges real exposure data for a first time period and background exposure data for a second time period. The server's service module obtains the real exposure data for the first time period sent by the client, as well as the background exposure data stored in the storage module by the recommendation module. The background exposure data is stored in the storage unit. (Reference) Figure 8 The gray sub-blocks represent the actual exposure data in the background exposure data for different time periods, while the white sub-blocks represent the exposure data in the background exposure data that was not actually seen by the user. Figure 8 The "actual exposure data" for the first time period indicates that actual exposure data exists in the background exposure data set, including some exposure data that was not seen by users. It does not mean that the actual exposure data for the first time period was obtained from the background exposure data set. The background exposure data for the second time period can be obtained from the historical background exposure data stored in the storage unit, thus obtaining the merged exposure data.

[0055] In some embodiments, the content contained in the merged exposure data is removed from the content contained in the candidate pool to obtain the remaining content; content is selected from the remaining content to be provided to the first user account.

[0056] The process of filtering and merging exposure data from the candidate pool can occur at multiple stages. For example, after obtaining the actual exposure data for the first time period, this data can be immediately merged with the background exposure data for the second time period. After obtaining the merged exposure data, the content in the candidate pool can be filtered for exposure. Then, when the first user revisits the client logged in with their account, the recommendation module can directly select exposure data from the remaining content and provide it to the client logged in with that account. Alternatively, the exposure filtering process can be temporarily suspended. When the first user revisits the client logged in with their account, the server's service module can then merge the actual exposure data for the first time period and the background exposure data for the second time period. Based on the merged exposure data, the content in the candidate pool can then be filtered for exposure to obtain the remaining content. The recommendation module can then select exposure data from the remaining content and provide it to the client logged in with the first account.

[0057] While the recommendation module selects exposure data from the remaining content and provides it to the client logged in by the first user account, the recommendation module will repeat the aforementioned steps, storing the exposure data sent to the client as background exposure data for that time in the storage module for exposure filtering in the next instance.

[0058] The process by which the recommendation module selects exposure data from the candidate pool is as follows: Figure 9 As shown, the application is a video application. First, the server trains a user model based on the user's continuous browsing behavior to obtain a user model of the user's browsing preferences. This user model helps the recommendation module select video data that matches the user's preferences from the candidate pool. The first step, the filtering stage, filters the merged exposure data from the candidate pool based on the user model. The second step, the coarse ranking stage, further filters the thousands of videos obtained from the filtering stage based on the user model. For example, it filters video data that does not match the user's preferences, such as video types that the user has never viewed, and video types that the user has viewed infrequently, resulting in hundreds of videos after coarse ranking. The third step includes fine ranking, re-ranking, and mixed ranking stages. Based on the user model, it further refines and filters the hundreds of videos after coarse ranking, selecting video data that better matches the user's preferences. The selected video data is then rearranged in terms of position and arrangement, resulting in dozens of integrated video data recommended to the user's logged-in client.

[0059] For example, if the first user tends to browse humorous video clips more often, browses a small amount of game video clips, and doesn't browse sports video clips at all, the recommendation module's process of selecting exposure data from the candidate pool can first filter out the merged exposure data in the candidate pool. The second step can filter out sports video data and most of the game video data, retaining a small amount of game video data. The third step can further select an appropriate number of humorous and game video data based on the user's browsing preferences, and rearrange and mix the selected data. The processed video data can then be sent to the client logged into the user's account.

[0060] By filtering the content in the candidate pool through exposure, content that users have actually seen is removed, ensuring that the exposure data in the candidate pool consists of content that users have not seen, thus preventing users from repeatedly seeing recommended content.

[0061] In some embodiments, when the actual exposure data of the first user account within the first time period cannot be obtained, the content in the candidate pool is filtered for exposure based on the background exposure data of the first user account within the historical time period.

[0062] Since the server obtains the actual exposure data of the first user account within the first time period, it relies on the client logged in by the first user account actively reporting its actual exposure data. Therefore, if the client logged in by the first user account does not support the function of reporting actual exposure data, the server cannot obtain the client's actual exposure data. For example, this could be because the client logged in by the first user account does not have the function of obtaining the exposure data actually seen by the first user, or it could be because the client logged in by the first user account does not have the function of transmitting actual exposure data to the server.

[0063] The server can only obtain the background exposure data of the first user account within the historical time period. In order to avoid the candidate pool containing content that the first user has already seen, and thus to avoid recommending content that the first user has already seen to the first user again, the server can perform exposure filtering on the content in the candidate pool, removing the background exposure data of the first user account within the historical time period, so as to ensure that the exposure data in the candidate pool is all content that the user has not seen.

[0064] The technical solution provided in this application combines real exposure data and background exposure data, and then filters the content in the candidate pool based on the combined exposure data. On one hand, by removing real exposure data from the first time period, it retains exposure data provided by the server to the client within that time period, but which the first user did not actually see. This avoids the server repeatedly recommending content seen by the user within the first time period, and also avoids false positives caused by filtering background exposure data from the first time period. On the other hand, by removing background exposure data from the second time period where real exposure data has not yet been obtained, it prevents the server from recommending duplicate content to the user. In summary, this achieves the goal of minimizing false positives while avoiding recommending duplicate content to users, and preventing the filtering of content that users have not seen in the candidate pool, thus avoiding the waste of high-quality content.

[0065] The process of obtaining the background exposure data of the first user account during the second time period, as mentioned above, may include the following steps.

[0066] In some embodiments, a second time period determined based on the synchronization delay time of the actual exposure data is obtained, where the synchronization delay time refers to the delay time for the actual exposure data to be synchronized from the client to the server; background exposure data within the second time period is obtained from the background exposure data of the first user account within the historical time period.

[0067] Synchronization latency refers to the delay in synchronizing real exposure data from the client to the server. Specifically, it's the time difference between the client sending the real exposure data and the server writing it. The length of the synchronization latency is related to factors such as the version and performance of the client used by the first user account, the complexity of the network link between the client and the server, and the smoothness of the data flow forwarding path for the real exposure data. Therefore, different users logging into different clients correspond to different synchronization latency times. The P99 value can be used to obtain the synchronization latency time corresponding to the client on the terminal device of 99% of users, and then the synchronization latency time applicable to most users can be obtained based on the P99 value. Alternatively, different users can log into different clients to obtain the synchronization latency time corresponding to each client.

[0068] The second time period can be determined based on the synchronization delay time of the actual exposure data. Optionally, the second time period can be longer than or equal to the synchronization delay time, but it cannot be shorter than the synchronization delay time. The second time period can be freely adjusted according to the actual needs of merging and removing exposure data. For example, if the network environment is relatively smooth, when the first user frequently accesses the client logged in with the first user's account, the server will frequently receive actual exposure data sent by the client. To save server computing resources, the second time period can be shortened to improve the speed of server exposure filtering. If the network environment is relatively slow, the second time period can be lengthened to avoid the server recommending duplicate content to the first user due to an excessively long synchronization delay time.

[0069] From the background exposure data of the first user account in the historical time period, obtain the background exposure data of the second time period before the current moment, and then obtain the real exposure data of the first time period before the second time period from the real exposure data sent by the client.

[0070] By using a second time period determined by the synchronization delay time of real exposure data, it is ensured that the real exposure data within the first time period can be obtained in a timely manner. This ensures that the merged exposure data includes all the content that users have already seen, and the exposure data recommended by the server to the client will not contain duplicate content.

[0071] In some embodiments, the exposure time period corresponding to at least one storage unit used to store background exposure data of a first user account within a historical time period is obtained, wherein the exposure time period refers to the exposure time period of the background exposure data stored in the storage unit; the state corresponding to each storage unit is determined according to the second time period and the exposure time period corresponding to each storage unit, wherein the state is a valid state or an invalid state; the background exposure data within the second time period is determined according to the background exposure data stored in the storage unit in the valid state.

[0072] The exposure period refers to the time period during which the storage unit writes background exposure data. Specifically, after the first storage unit is created, or after a new storage unit is created, background exposure data is written to the storage unit. When the capacity of a storage unit is full, a new storage unit is created. The exposure period corresponding to the storage unit refers to the time period from the creation time of the storage unit to the time when the storage unit is full, or it can be understood as the time period from the creation time of the storage unit to the creation time of the next storage unit, or it can refer to the time period during which the storage unit writes background exposure data.

[0073] A code diagram illustrating the server creating a new storage unit can be found here. Figure 10As shown, when a new storage unit is created, the creation time of that storage unit is recorded (i.e., Figure 10 The current time in the memory), and the exposure time of each background exposure data written to this storage unit (i.e., the exposure time in the memory). Figure 10 The content time in the middle), and the second time period determined by the synchronization delay time based on the actual exposure data (i.e., Figure 10 The expiration time in the data allows us to determine whether each storage unit is valid or invalid based on its creation time and the second time period. Alternatively, it can be described as determining whether each storage unit has expired. Storage units that are invalid can be called expired storage units.

[0074] By obtaining the exposure time period corresponding to each storage unit, the background exposure data in the second time period can be determined based on the relationship between the exposure time period corresponding to each storage unit and the second time period. This allows the server's service module to obtain the background exposure data in the second time period from the background exposure data in the historical time period.

[0075] Based on the second time period and the exposure period corresponding to each storage unit, the state corresponding to each storage unit is determined, which is either a valid state or an invalid state. In some embodiments, the state corresponding to the storage unit whose exposure period overlaps with the second time period is determined as a valid state; or, the state corresponding to the storage unit whose exposure period does not overlap with the second time period is determined as an invalid state.

[0076] For example, if the current time is 12:00, and the second time period is a period preceding the current time, which can be assumed to be one hour, i.e., the second time period is from 11:00 to 12:00. Then, when the exposure period of a storage unit overlaps with the second time period (i.e., the end time of the exposure period is between 11:00 and 12:00—for example, if the end time of the exposure period is 12:00, then the exposure period of the storage unit could be from 11:00 to 12:00; if the end time of the exposure period is 11:30, then the exposure period of the storage unit could be from 10:00 to 11:00; and if the end time of the exposure period is 11:30, then the exposure period of the storage unit could be from 9:00 to 10:50), the state corresponding to the storage unit that overlaps with the second time period can be determined as a valid state. When the exposure period of a storage unit does not overlap with the second time period (i.e., the end time of the exposure period is before 11:00—for example, the exposure period of the storage unit could be from 10:00 to 11:00 or from 9:00 to 10:50), the state corresponding to the storage unit that overlaps with the second time period can be determined as an invalid state.

[0077] The number of storage cells in a valid state can be one or several. The number of storage cells in a valid state can be obtained by determining whether the exposure time of each storage cell overlaps with the second time period.

[0078] Based on the various valid storage units stored in the storage module, the background exposure data for the second time period can be determined from the background exposure data stored in the valid storage units.

[0079] In some embodiments, background exposure data stored in a valid storage unit is determined as background exposure data for the second time period.

[0080] Optionally, all background exposure data stored in valid storage units can be directly identified as background exposure data for the second time period. This means that background exposure data in storage units where the exposure period overlaps with the second time period can be identified as background exposure data for the second time period. For example, if the second time period is from 11:00 to 12:00, then background exposure data in all storage units whose exposure period ends between 11:00 and 12:00 can be identified as background exposure data for the second time period.

[0081] The background exposure data determined by the above method in the second time period may include some background exposure data that the first user did not actually see on the client. When the server removes the background exposure data in the second time period, it will also remove this part of the exposure data, resulting in a small waste of exposure data. However, the above method can ensure that the content recommended by the server to the user is not repeated as much as possible, so that the user can browse fresh and non-repeating exposure content every time.

[0082] In some embodiments, the exposure time of each content in the background exposure data stored in the storage unit in the valid state is obtained; from the background exposure data stored in the storage unit in the valid state, the content whose exposure time is within the second time period is selected and determined as the background exposure data within the second time period.

[0083] Optionally, after determining the state of each storage unit, the exposure time of each background exposure data stored in the valid storage unit can be obtained. The exposure time of each background exposure data item can refer to the time when the recommendation system sends the data to the client, or the time when the recommendation system writes the data into the storage unit of the storage module. Then, based on the exposure time of each background exposure data item, background exposure data with exposure times within the second time period can be precisely selected from the background exposure data stored in the valid storage units, and this background exposure data with exposure times within the second time period is defined as the background exposure data within the second time period.

[0084] For example, if the second time period is from 11:00 to 12:00, then the background exposure data in the storage unit whose exposure time is between 11:00 and 12:00 can be identified as the background exposure data within the second time period. In other words, if a portion of the background exposure data stored in a valid storage unit is within the second time period and another portion is before the second time period, then the background exposure data before the second time period can be discarded, and the background exposure data within the second time period can be identified as the background exposure data within the second time period.

[0085] By obtaining the exposure time of various background exposure data stored in the storage unit that is in a valid state, the content in the storage unit whose exposure time is within the second time period can be accurately identified as the background exposure data of the second time period. This avoids including content that did not have real exposure in the first time period into the background exposure data of the second time period, causing erroneous removal. This helps to avoid the server recommending duplicate content to users while minimizing the waste of exposure data.

[0086] The above-mentioned method of obtaining the actual exposure data of the first user account within the first time period may include the following steps.

[0087] In some embodiments, valid exposure data reported by the first user account at every first interval is obtained. Valid exposure data refers to the content displayed on the client based on the display strategy of the client logged in by the first user account. The valid exposure data is cleaned and filtered to obtain cleaned valid exposure data. At every second interval, the cleaned valid exposure data from at least one first interval included in the second interval is aggregated to obtain the real exposure data of the first user account in the second interval, and the real exposure data is stored using a storage unit.

[0088] The server cannot directly obtain the actual exposure data of the first user account within the first time period. The exposure data sent by the client to the server still needs to be processed to obtain the actual exposure data mentioned in this application.

[0089] First, the client logged in with the first user account sends the content actually displayed on the client to the server at a first interval. The first interval is the interval at which the client logged in with the first user account sends valid exposure data to the server. The first interval can be set independently according to the network link between the client and the server. It can be set to 1 second or 60 seconds. That is, the client can report valid exposure data to the server every 1 second or every 60 seconds, etc. This application does not limit it in this way.

[0090] Effective exposure data refers to the content actually displayed by the client logged in by the first user account within the first interval. The volume of effective exposure data is related to the display strategy of the client logged in by the first user account.

[0091] In some embodiments, the display strategy includes at least one of the following: the screen size of the terminal screen running the client; the display format of the background exposure data; and the display duration of the background exposure data.

[0092] For example, if the terminal screen running the client has a large screen size, then the amount of content displayed per screen will be more, and the volume of effective exposure data per screen will also be correspondingly larger. If the terminal screen running the client has a small screen size, then the amount of content displayed per screen will be less, and the volume of effective exposure data per screen will also be correspondingly smaller.

[0093] If the display format of the background exposure data is Figure 1 As shown in the large card 101 format, if each large card occupies a large proportion of the screen, the number of large cards displayed per screen will be smaller, and correspondingly, the volume of effective exposure data per screen will also be smaller. If each large card occupies a small proportion of the screen, the number of large cards displayed per screen will be larger, and correspondingly, the volume of effective exposure data per screen will be larger. Background exposure data can also be displayed in other forms, such as as titles or images. The volume of effective exposure data per screen is related to the number of background exposure data items displayed per screen.

[0094] Optionally, the exposure data already displayed on the client can be filtered based on the display duration of the background exposure data. The volume of effective exposure data per screen is related to the time the first user views each screen. For example, if the display duration of the background exposure data on the client does not reach the threshold, it will not be included in the effective exposure data; if the display duration of the background exposure data on the client reaches the threshold, it can be included in the effective exposure data.

[0095] The different clients logged into by the first user account correspond to different display strategies. Therefore, the effective exposure data needs to be obtained specifically based on the display strategies of the clients logged into by the user account in the first time period, so that the effective exposure data matches the actual usage of each client.

[0096] Secondly, the client can upload the valid exposure data to the server's data processing platform. After receiving the valid exposure data reported by the client at each first interval, the server cleans and filters the valid exposure data within the first interval, removing other program data that may be carried during the data reporting process, or related data carried by the client when displaying exposure data, and obtains the cleaned valid exposure data within the first interval.

[0097] Finally, as the cleaned effective exposure data accumulates on the server's data processing platform, the cleaned effective exposure data within at least one first interval can be aggregated at every second interval to obtain the real exposure data of the first user account within the second interval. The second interval is the interval at which the server aggregates the cleaned effective exposure data. The second interval is longer than the first interval, and each second interval contains at least one first interval. The second interval can be set independently according to the server's processing performance. For example, if the first interval is 1 second, the second interval can be set to 1 minute; if the first interval is 60 seconds, the second interval can be set to 10 minutes, and so on. This application does not limit this. The server writes the real exposure data obtained from the data processing platform into the server's service module, so that the real exposure data is synchronized from the client to the server. Accordingly, the synchronization delay time mentioned above can specifically refer to the time difference between the reporting time of the effective exposure data within the first first interval reported by the client and the time difference between the server's service module writing the real exposure data within the second interval.

[0098] Optionally, when writing the actual exposure data within the second interval to the server's service module, it can be written directly in plaintext, or a separate storage unit can be created in the storage module to write the actual exposure data into the storage unit.

[0099] By cleaning and filtering the valid exposure data reported by the client, and then aggregating the cleaned valid exposure data every second time interval, and storing the aggregated valid exposure data, the system avoids putting a heavy burden on the server's processing performance by writing data in real time, and makes reasonable use of the server's processing resources.

[0100] In some embodiments, the storage of real exposure data using a storage unit includes at least one of the following: real exposure data is stored in real time; real exposure data within a fixed period is stored as a whole.

[0101] Real-time storage of actual exposure data can be performed by storing the cleaned effective exposure data at each first time interval, or by storing the aggregated actual exposure data at each second time interval.

[0102] The storage of real exposure data within a fixed period can be done by storing the real exposure data within a fixed period (e.g., the second interval duration) as a whole, or by storing the real exposure data within a fixed period longer than the second interval duration. For example, if the second interval duration is 10 minutes, the real exposure data within that 30 minutes can be stored as a whole every 30 minutes.

[0103] Optionally, the storage unit can be used to store real exposure data in real time, store real exposure data as a whole within a fixed period, or combine real exposure data storage in real time with storage of real exposure data as a whole within a fixed period.

[0104] By combining these two methods for storage, we can further ensure that the real exposure data is successfully written into the storage unit, avoiding issues such as the complexity of the network link from the client to the server and the smoothness of the data flow forwarding path of the real exposure data, which may affect the successful writing of the real exposure data.

[0105] The following are embodiments of the apparatus described in this application, which can be used to execute the embodiments of the method described in this application. For details not disclosed in the apparatus embodiments of this application, please refer to the embodiments of the method described in this application.

[0106] Please refer to Figure 11 This diagram illustrates a block diagram of an exposure filtering apparatus according to an embodiment of this application. The apparatus has the function of implementing the above-described exposure filtering method. Figure 11 As shown, the device 1100 may include: a real data acquisition module 1110, a background data acquisition module 1120, and a merging module 1130.

[0107] The real data acquisition module 1110 is used to acquire the real exposure data of the first user account within a first time period. The real exposure data refers to the content displayed on the client that has been logged into by the first user account.

[0108] The background data acquisition module 1120 is used to acquire the background exposure data of the first user account in the second time period. The background exposure data refers to the content that has been sent to the client logged in by the first user account. The second time period is after the first time period, and the start time of the second time period is the end time of the first time period, and the end time of the second time period is the current time.

[0109] The merging module 1130 is used to merge the real exposure data in the first time period and the background exposure data in the second time period to obtain merged exposure data. The merged exposure data is used to filter the content in the candidate pool when recommending content to the first user account.

[0110] In some embodiments, the background data acquisition module 1120 includes: The first acquisition unit is used to acquire the second time period determined based on the synchronization delay time of the real exposure data, wherein the synchronization delay time refers to the delay time for the real exposure data to be synchronized from the client to the server.

[0111] The second acquisition unit is used to acquire the background exposure data for the second time period from the background exposure data of the first user account in the historical time period.

[0112] In some embodiments, the second acquisition unit includes: The time acquisition subunit is used to acquire the creation time of at least one storage unit that stores the background exposure data of the first user account within a historical time period.

[0113] The status determination subunit is used to determine the status of each storage unit according to the second time period and the creation time of each storage unit, wherein the status is a valid status or an invalid status.

[0114] The data determination subunit is used to determine the background exposure data within the second time period based on the background exposure data stored in the storage unit in the effective state.

[0115] In some embodiments, the state determination subunit is configured to: The status of the storage unit whose creation time is within the second time period is determined as the valid status; or, The state corresponding to the storage unit whose creation time is not within the second time period is determined as the invalid state.

[0116] In some embodiments, the data determining subunit is configured to: The background exposure data stored in the storage unit that is in the effective state is determined as the background exposure data for the second time period.

[0117] In some embodiments, the data determining subunit is configured to: Obtain the exposure time of each item contained in the background exposure data stored in the storage unit that is in the effective state; From the background exposure data stored in the storage unit that is in the effective state, select the content whose exposure time is within the second time period and determine it as the background exposure data within the second time period.

[0118] In some embodiments, the background exposure data of the first user account within a historical time period is stored using at least one storage unit, and the number of storage units is scalable, with the capacity of newly created storage units being greater than the capacity of already created storage units.

[0119] In some embodiments, the storage unit is a Bloom filter.

[0120] In some embodiments, the real data acquisition module 1110 is configured to: Obtain valid exposure data reported by the first user account at every first interval. The valid exposure data refers to the content displayed on the client based on the display strategy of the client logged in by the first user account. The effective exposure data is cleaned and filtered to obtain cleaned effective exposure data; Every second interval, the cleaned effective exposure data within at least one first interval included in the second interval is aggregated to obtain the real exposure data of the first user account within the second interval, and the real exposure data is stored using a storage unit.

[0121] In some embodiments, the method of storing the actual exposure data using a storage unit includes at least one of the following: The actual exposure data is stored in real time; The actual exposure data within a fixed period is stored as a whole.

[0122] In some embodiments, the display strategy includes at least one of the following: The screen size of the terminal screen running the client; The display format of the background exposure data; The display duration of the background exposure data.

[0123] In some embodiments, the device 1100 further includes: The filtering module is used to filter the content in the candidate pool based on the background exposure data of the first user account in the historical time period when the actual exposure data of the first user account in the first time period cannot be obtained.

[0124] In some embodiments, the filtering module is further configured to: From the contents of the candidate pool, remove the contents contained in the merged exposure data to obtain the remaining contents; Select content from the remaining content to provide to the first user account.

[0125] By merging real exposure data and background exposure data, and then filtering the content in the candidate pool based on the merged data, two approaches are taken. First, real exposure data from the first time period is removed, retaining only the data provided to the client by the server within that period but not actually seen by the first user. This avoids the server repeatedly recommending content already seen by the user in the first time period, and also avoids false positives caused by filtering background exposure data from the first time period. Second, background exposure data from the second time period, for which real exposure data has not yet been obtained, is removed, preventing the server from recommending duplicate content to users. In summary, this approach minimizes false positives while avoiding recommending duplicate content to users, preventing the filtering of content that users have not seen in the candidate pool and thus avoiding the waste of high-quality content.

[0126] It should be noted that the apparatus provided in the above embodiments is only illustrated by the division of the above functional modules when implementing its functions. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the content structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the apparatus and method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be repeated here.

[0127] Please refer to Figure 12 This diagram illustrates a structural block diagram of a computer device 1200 provided in one embodiment of this application. The computer device 1200 can be any electronic device capable of data calculation, processing, and storage. The computer device 1200 can be used to implement the exposure filtering method provided in the above embodiments.

[0128] Typically, computer device 1200 includes a processor 1201 and a memory 1202.

[0129] Processor 1201 may include one or more processing cores, such as a quad-core processor, an octa-core processor, etc. Processor 1201 may be implemented using at least one hardware form selected from DSP (Digital Signal Processing), FPGA (Field Programmable Gate Array), and PLA (Programmable Logic Array). Processor 1201 may also include a main processor and a coprocessor. The main processor, also known as a CPU (Central Processing Unit), is used to process data in the wake-up state; the coprocessor is a low-power processor used to process data in the standby state. In some embodiments, processor 1201 may integrate a GPU (Graphics Processing Unit), which is responsible for rendering and drawing the content to be displayed on the screen. In some embodiments, processor 1201 may also include an AI processor for handling computational operations related to machine learning.

[0130] The memory 1202 may include one or more computer-readable storage media, which may be non-transitory. The memory 1202 may also include high-speed random access memory and non-volatile memory, such as one or more disk storage devices or flash memory devices. In some embodiments, the non-transitory computer-readable storage media in the memory 1202 are used to store a computer program configured to be executed by one or more processors to implement the exposure filtering method described above.

[0131] Those skilled in the art will understand that Figure 12 The structure shown does not constitute a limitation on the computer device 1200 and may include more or fewer components than shown, or combine certain components, or use different component arrangements.

[0132] In an illustrative embodiment, a computer-readable storage medium is also provided, wherein a computer program is stored in the storage medium, and the computer program, when executed by a processor of a computer device, implements the above-described exposure filtering method. Optionally, the above-described computer-readable storage medium may be ROM (Read-Only Memory), RAM (Random Access Memory), CD-ROM (Compact Disc Read-Only Memory), magnetic tape, floppy disk, and optical data storage device, etc.

[0133] In an exemplary embodiment, a computer program product is also provided, comprising a computer program stored in a computer-readable storage medium. A processor of a computer device reads the computer program from the computer-readable storage medium and executes the computer program, causing the computer device to perform the exposure filtering method described above.

[0134] It should be noted that this application may display prompt interfaces, pop-ups, or output voice prompts before and during the collection of user data. These prompt interfaces, pop-ups, or voice prompts are used to inform the user that their relevant data is being collected. This ensures that the application only begins the steps to collect user data after receiving confirmation from the user regarding the prompt interface or pop-up; otherwise (i.e., without confirmation from the user), the steps to collect user data end, meaning no user data is collected. In other words, all information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.), and signals involved in this application are authorized by the user or fully authorized by all parties, and the collection, use, and processing of related data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the actual exposure data of user accounts on the client and the background exposure data involved in this application are obtained with full authorization.

[0135] It should be understood that "multiple" as used herein refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. Furthermore, the step numbers described herein are merely illustrative of one possible execution order. In some other embodiments, the steps may not be executed in numerical order, such as two steps with different numbers being executed simultaneously, or two steps with different numbers being executed in the reverse order of the illustration. This application does not limit this.

[0136] The above description is merely an exemplary embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

Claims

1. An exposure filtering method, characterized in that, The method includes: Obtain the actual exposure data of the first user account within the first time period, wherein the actual exposure data refers to the content displayed on the client that has been logged into by the first user account; Obtain the background exposure data of the first user account in the second time period. The background exposure data refers to the content that has been sent to the client logged in by the first user account. The second time period is after the first time period, and the start time of the second time period is the end time of the first time period. The end time of the second time period is the current time. The actual exposure data within the first time period and the background exposure data within the second time period are merged to obtain merged exposure data. The merged exposure data is used to filter the content in the candidate pool when recommending content to the first user account.

2. The method according to claim 1, characterized in that, The step of obtaining the background exposure data of the first user account during the second time period includes: Obtain the second time period determined based on the synchronization delay time of the actual exposure data, wherein the synchronization delay time refers to the delay time for the actual exposure data to be synchronized from the client to the server; Obtain the background exposure data for the second time period from the background exposure data of the first user account within the historical time period.

3. The method according to claim 2, characterized in that, The step of obtaining the background exposure data for the second time period from the background exposure data of the first user account within the historical time period includes: Obtain the exposure time period corresponding to at least one storage unit used to store the background exposure data of the first user account within a historical time period, wherein the exposure time period refers to the exposure time period of the background exposure data stored in the storage unit; Based on the second time period and the exposure time period corresponding to each of the storage units, the state corresponding to each of the storage units is determined, and the state is either a valid state or an invalid state. Based on the background exposure data stored in the storage unit that is in the effective state, determine the background exposure data for the second time period.

4. The method according to claim 3, characterized in that, The step of determining the state corresponding to each storage unit based on the second time period and the exposure time period corresponding to each storage unit includes: The state corresponding to the storage unit where the exposure period overlaps with the second time period is determined as the valid state; or, The state corresponding to the storage unit where the exposure period does not overlap with the second time period is determined as the invalid state.

5. The method according to claim 3, characterized in that, The step of determining the background exposure data within the second time period based on the background exposure data stored in the storage unit in the effective state includes: The background exposure data stored in the storage unit that is in the effective state is determined as the background exposure data for the second time period.

6. The method according to claim 3, characterized in that, The step of determining the background exposure data within the second time period based on the background exposure data stored in the storage unit in the effective state includes: Obtain the exposure time of each item contained in the background exposure data stored in the storage unit that is in the effective state; From the background exposure data stored in the storage unit that is in the effective state, select the content whose exposure time is within the second time period and determine it as the background exposure data within the second time period.

7. The method according to claim 1, characterized in that, The background exposure data of the first user account within a historical time period is stored using at least one storage unit, and the number of storage units is expandable, with the capacity of newly created storage units being greater than that of already created storage units.

8. The method according to claim 7, characterized in that, The storage unit is a Bloom filter; each piece of background exposure data is processed by k hash functions to obtain k hash values ​​corresponding to the k hash functions, and the k hash values ​​are stored in the Bloom filter, where k is a positive integer.

9. The method according to claim 1, characterized in that, The method further includes: Obtain valid exposure data reported by the first user account at every first interval. The valid exposure data refers to the content displayed on the client based on the display strategy of the client logged in by the first user account. The effective exposure data is cleaned and filtered to obtain cleaned effective exposure data; Every second interval, the cleaned effective exposure data within at least one first interval included in the second interval is aggregated to obtain the real exposure data of the first user account within the second interval, and the real exposure data is stored using a storage unit.

10. The method according to claim 9, characterized in that, The method of storing the actual exposure data using a storage unit includes at least one of the following: The actual exposure data is stored in real time; The actual exposure data within a fixed period is stored as a whole.

11. The method according to claim 9, characterized in that, The display strategy includes at least one of the following: The screen size of the terminal screen running the client; The display format of the background exposure data; The display duration of the background exposure data.

12. The method according to claim 1, characterized in that, The method further includes: If the actual exposure data of the first user account within the first time period cannot be obtained, the content in the candidate pool is filtered for exposure based on the background exposure data of the first user account within the historical time period.

13. The method according to claim 1, characterized in that, After merging the actual exposure data within the first time period and the background exposure data within the second time period to obtain the merged exposure data, the process further includes: From the contents of the candidate pool, remove the contents contained in the merged exposure data to obtain the remaining contents; Select content from the remaining content to provide to the first user account.

14. An exposure filtering device, characterized in that, The device includes: The real data acquisition module is used to acquire the real exposure data of the first user account within a first time period. The real exposure data refers to the content displayed on the client that has been logged into by the first user account. The background data acquisition module is used to acquire the background exposure data of the first user account in the second time period. The background exposure data refers to the content that has been sent to the client logged in by the first user account. The second time period is after the first time period, and the start time of the second time period is the end time of the first time period. The end time of the second time period is the current time. The merging module is used to merge the real exposure data in the first time period and the background exposure data in the second time period to obtain merged exposure data. The merged exposure data is used to filter the content in the candidate pool when recommending content to the first user account.

15. A computer device, characterized in that, The computer device includes a processor and a memory, the memory storing a computer program that is loaded and executed by the processor to implement the exposure filtering method as described in any one of claims 1 to 13.

16. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, which is loaded and executed by a processor to implement the exposure filtering method as described in any one of claims 1 to 13.

17. A computer program product, characterized in that, The computer program product includes a computer program that is loaded and executed by a processor to implement the exposure filtering method as described in any one of claims 1 to 13.

Citation Information

Patent Citations

  • Page display method and device

    CN110427234A

  • Display device and content recommendation method

    WO2021197068A1