Methods, systems, electronic devices, and storage media for identifying target populations

By automatically generating search statements using an ElasticSearch cluster, the problem of low efficiency in target audience selection in existing technologies is solved, achieving efficient and accurate identification of target audience data and lowering the technical threshold.

CN114896263BActive Publication Date: 2026-03-13BEIJING BAIDU NETCOM SCI & TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-03-28
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

Existing technologies require rewriting structured query languages ​​or domain-specific languages ​​when the requirements for target audience selection change, resulting in low efficiency and a high risk of errors in identifying target audiences.

Method used

The system uses an ElasticSearch cluster to automatically generate ElasticSearch DSL search statements and uses a user segmentation system to automatically generate search statements and perform target user data selection, thus lowering the barrier to entry.

Benefits of technology

It improves the efficiency and accuracy of target audience selection, lowers the technical threshold, and enables non-technical personnel to easily identify target audience data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114896263B_ABST
    Figure CN114896263B_ABST
Patent Text Reader

Abstract

This disclosure provides a method, system, electronic device, and storage medium for identifying target audiences, relating to the field of big data technology, and particularly to the field of user profiling technology. The specific implementation scheme includes: determining target audience selection requirements; generating corresponding search statements based on the target audience selection requirements; executing the search statements to obtain target audience data that meets the target audience selection requirements; and saving the target audience data. This disclosure can efficiently identify target audience data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of big data technology, and in particular to the field of user profiling technology. Background Technology

[0002] With the continuous development of big data technology, big data-based applications and services are expanding in various scenarios. User profiling services, based on big data platforms, provide service providers with complete, rapid, and accurate descriptions and tags of user groups to support needs such as precision marketing.

[0003] Targeted push notifications are a key application of refined operations, with wide applications in news apps and media promotion. Efficiently identifying target audience data is a crucial technical challenge that needs to be addressed. Summary of the Invention

[0004] This disclosure provides a method, system, electronic device, and storage medium for identifying a target population.

[0005] According to one aspect of this disclosure, a method for identifying a target population is provided, comprising:

[0006] Define the requirements for selecting the target audience;

[0007] Generate corresponding search statements based on the target audience selection criteria;

[0008] Execute the search query to obtain target audience data that meets the selection criteria.

[0009] Save target audience data.

[0010] According to another aspect of this disclosure, a system for identifying a target population is provided, comprising:

[0011] The interface module is used to determine the target audience selection requirements and generate corresponding search statements based on those requirements.

[0012] The storage module is used to execute search statements to obtain target population data that meets the target population selection requirements; it is also used to save the target population data.

[0013] According to another aspect of this disclosure, an electronic device is provided, comprising:

[0014] At least one processor; and

[0015] The memory is communicatively connected to the at least one processor; wherein,

[0016] The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method for identifying the target population described above.

[0017] According to another aspect of this disclosure, a non-transitory computer-readable storage medium is provided storing computer instructions for causing the computer to perform the aforementioned method for identifying a target population.

[0018] According to another aspect of this disclosure, a computer program product is provided, including a computer program that, when executed by a processor, implements the above-described method for identifying a target population.

[0019] Beneficial effects

[0020] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description

[0021] The accompanying drawings are provided to better understand this solution and do not constitute a limitation of this disclosure. Wherein:

[0022] Figure 1 This is a schematic diagram illustrating an application scenario according to an embodiment of this disclosure;

[0023] Figure 2 This is a flowchart illustrating the implementation of a method for determining a target population according to an embodiment of the present disclosure;

[0024] Figure 3 This is a schematic diagram of the architecture of a crowd segmentation system according to an embodiment of the present disclosure;

[0025] Figure 4 This is a flowchart illustrating the implementation of a method for determining a target population according to another embodiment of this disclosure;

[0026] Figure 5 This is a flowchart illustrating the implementation of determining the target population selection requirements according to an embodiment of this disclosure;

[0027] Figure 6 This is a flowchart illustrating the process of identifying a target audience and employing encryption / unlocking according to an embodiment of this disclosure;

[0028] Figure 7 This is a schematic diagram of the locking method during the process of creating a new target population according to an embodiment of this disclosure;

[0029] Figure 8 This is a schematic diagram illustrating the process of generating target population data according to an embodiment of the present disclosure;

[0030] Figure 9This is a schematic diagram illustrating the process of updating target population data according to an embodiment of this disclosure;

[0031] Figure 10 This is a schematic diagram of the structure of a system for determining a target population according to an embodiment of the present disclosure;

[0032] Figure 11 This is a schematic diagram of the structure of a system for determining a target population according to another embodiment of the present disclosure;

[0033] Figure 12 This is a block diagram of an electronic device used to implement the method for determining a target population according to embodiments of the present disclosure. Detailed Implementation

[0034] The exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments to aid understanding, and should be considered merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of this disclosure. Similarly, for clarity and brevity, descriptions of well-known functions and structures are omitted in the following description.

[0035] In terms of techniques for identifying the target audience, two main approaches are commonly used:

[0036] The first method is to use MapReduce to search for the target audience.

[0037] The second approach is to use a native search database. Examples include combinations of Elasticsearch, MongoDB, Redis (Remote Dictionary Server), and logical computation.

[0038] Both of these methods have a serious problem: whenever the target audience selection criteria (the specific content of the target audience selection criteria can be represented by target audience profile tags) change, it is necessary to rewrite the Structured Query Language (SQL) or Domain Specific Language (DSL), which leads to low efficiency and is prone to errors in identifying the target audience.

[0039] To address this issue, this disclosure proposes a method for identifying the target audience, which can automatically convert search requests into corresponding search statements, thus lowering the barrier to entry.

[0040] This disclosure proposes a method for identifying a target population. This method can be applied to a data processing device, for example, a device deployed on a terminal, server, or other processing equipment, to identify the target population. For example, this method can be applied to... Figure 1 The application scenarios shown are as follows: Figure 1 As shown, this application scenario may include a terminal 110 and a push server 120. Taking the device that applies the method as an example, deployed in the push server 120, the user can send a request to the push server 120 through the terminal 110 to use the method to confirm the target population. The push server 120 can convert the request into a corresponding search statement, send the search statement to the search server 130 that stores population data, and obtain the target population information in the request from the search server 130 to provide information push services to the target population.

[0041] Terminal 110 is connected to push server 120 via a wireless or wired network. Optionally, terminal 110 may be a smartphone, tablet, laptop, desktop computer, smartwatch, in-vehicle terminal, etc., but is not limited to these. Terminal 110 has an application installed and running that supports methods for identifying target groups.

[0042] The push server 120 and the search server 130 can be independent servers, server clusters or distributed systems, or cloud servers that provide basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, and big data and artificial intelligence platforms.

[0043] This disclosure provides a method for identifying a target population. Figure 2 This is a flowchart illustrating the implementation of a method for determining a target population according to this disclosure, including:

[0044] S201: Define the requirements for selecting the target audience;

[0045] S202: Generate the corresponding search query based on the target audience selection requirements;

[0046] S203: Execute the search statement to obtain target population data that meets the selection requirements of the target population;

[0047] S204: Save the data of this target population.

[0048] This embodiment of the invention, after determining the target population selection requirements, can automatically generate a corresponding search statement and execute the search statement to obtain target population data that meets the selection requirements. This eliminates the need for manually writing code when selecting the target population, improving the efficiency and accuracy of target population identification.

[0049] In some implementations, the search statement described above may include an ElasticSearch DSL search statement.

[0050] Elasticsearch is a distributed full-text search engine system based on Lucene. An Elasticsearch cluster can store data and retrieve data stored in the Elasticsearch cluster when a request is received.

[0051] As can be seen, this embodiment utilizes the built-in search functionality of the ElasticSearch cluster to select the target audience. After determining the selection requirements, it automatically generates ElasticSearch DSL search statements that the ElasticSearch cluster can recognize and execute, and then the ElasticSearch cluster performs the selection of the target audience. Therefore, the method for determining the target audience proposed in this embodiment does not require manual writing of the code statements used by the ElasticSearch cluster, which can improve the efficiency and accuracy of determining the target audience, lower the barrier to entry, and completely decouple profile tags and search capabilities, enabling non-technical personnel such as operations staff to easily determine target audience data.

[0052] Target audience data can also be called audience packages, which can contain data on multiple target individuals (such as individual identifiers) that meet the selection criteria of the target audience. This disclosure proposes a system for determining target audiences, which can be called an audience package system. The audience package system provides users with a visual platform, abstracting audience packages into a vivid drag-and-drop page. Users can freely combine any number and type of profile tags on the audience package creation page to create new audience packages. The audience package system proposed in this disclosure completely shields users from the underlying details of audience package searching, updating, uploading, and downloading, lowering the barrier to entry for audience package usage. Furthermore, it boasts high search performance thanks to a general search interface.

[0053] Figure 3 This is a schematic diagram of the architecture of a crowd targeting system according to the present disclosure, such as... Figure 3 As shown, this crowdsourcing system can be divided into three layers from top to bottom, including:

[0054] (I) Interface Layer:

[0055] It provides a visual, drag-and-drop audience management page, offering functions such as creating audience packages, viewing audience lists, uploading custom audiences, and searching for similar audiences. Furthermore, it abstracts audience packages into a vivid drag-and-drop interface, allowing users to select audiences on the tag page and freely combine any number and type of profile tags to create target audience data.

[0056] like Figure 3 As shown, users can select and / or input profile tags on the interface layer's tag selection page, and send a new request for the target audience to request the execution of audience selection in order to obtain the target audience data.

[0057] like Figure 3 As shown, the interface layer can display target audience data generated by different users on the audience list page, thereby enabling the reuse of target audience data. Users can use target audience data generated by other users.

[0058] like Figure 3 As shown, the interface layer provides a PUSH page, allowing users to select target audiences from the already generated and saved target audience data. For example, to achieve refined push notifications for cloud storage services, operators can input the profile tags of the target audience for the cloud storage service through the interface layer. The backend of the audience segmentation system will then select the target audience, obtaining the target audience data for the cloud storage service. Afterward, operators can use the interface layer to instruct others to push information to the target audience for the cloud storage service, thus achieving efficient and refined push notifications. Throughout this process, the technical requirements for operators are low; they only need to perform drag-and-drop, click, and input operations on the visual page of the interface layer, without writing any code.

[0059] (II) Interface Layer:

[0060] The interface layer provides a general search interface based on Elasticsearch, further abstracting the DSL and completely decoupling the creation of target audience data in the interface layer from the underlying Elasticsearch DSL search. The general interface extends the profile tagging functionality, allowing users to add profile tags for target audiences in the interface layer without modifying the underlying code. The interface layer also provides target audience data management capabilities, enabling the creation, updating, deletion, reuse, downloading, and update callback of target audience data, making data reuse more convenient.

[0061] like Figure 3 As shown, the tag-based audience selection handler in the interface layer can determine the target audience selection requirements based on the instructions input by the user through the interface layer, generate corresponding search statements based on the target audience selection requirements, and send the search statements to the storage layer through the tag-based audience selection interface. The Elasticsearch cluster in the storage layer then executes the search statements to select the target audience.

[0062] Users can also input custom target audience data, such as Figure 3As shown, the custom audience processor in the interface layer can receive target audience data input by the user through the interface layer, and send the target audience data to the storage layer through the audience addition interface, where the storage layer saves the user-defined target audience data.

[0063] The embodiments disclosed herein can also automatically update target population data at regular intervals, such as Figure 3 As shown, the timed update processor in the interface layer can automatically initiate timed updates and instruct the storage layer to update the target population data through the population update interface, and save the updated target population data.

[0064] In addition, the interface layer may also include a crowd deletion interface, which is used to delete the target crowd data that has already been saved.

[0065] (III) Storage Layer:

[0066] The storage layer can use an Elasticsearch cluster to store profile tag data. During storage, the target individual's identifier (ID) can be used as the Elasticsearch routing ID, with the Elasticsearch cluster storing the values ​​of various dimensions and types of profile tags. The storage layer can also use an Elasticsearch cluster to store the target audience's metadata. Relying on multi-node backups within the Elasticsearch cluster, high stability and availability of the target audience's metadata are achieved. The target audience's metadata can include data such as the target audience selection criteria and identification information. To prevent data pollution caused by concurrent threads, distributed locks can be used to ensure concurrency safety during the creation, updating, and deletion of the target audience's metadata.

[0067] like Figure 3 As shown, the storage layer can use an object storage module to store the selected target population data. Object storage ensures extremely high stability and, by utilizing the chunked upload feature, enables high-speed uploading of target population data.

[0068] Applying the crowd package system described in the above embodiments, in some embodiments, such as Figure 4 As shown, the process of determining the target population selection requirements in this embodiment of the disclosure may include:

[0069] S401: Receive a target audience creation request, which includes at least one profile tag for selecting the target audience;

[0070] S402: Generate target audience selection requirements based on at least one profile tag used for target audience selection.

[0071] For example, the UI layer generates a new user creation request for the target audience based on the received user instructions, and sends the new user creation request for the target audience to the interface module;

[0072] The interface module generates target audience selection requirements based on at least one profile tag in the new request from the target audience.

[0073] Through the above process, users can input commands through a visual interface when creating new target audience data, without having to write code to select the target audience. This lowers the technical threshold for determining target audience data and makes it easier for non-technical personnel to select the target audience.

[0074] The aforementioned target audience selection requirements can be stored in the metadata of the target audience data. For example, the metadata of the target audience data can include the target audience selection requirements and the identification information of the target audience data. Storing the metadata of the target audience data facilitates its use when updating the target audience data later.

[0075] Table 1 shows an example of the structure of meta information for target audience data. The meta information for target audience data can also be called crowd_package meta information. As shown in Table 1, the structure of crowd_package meta information is as follows:

[0076] Table 1

[0077]

[0078]

[0079] Since the crowd package system contains a large amount of user data, privacy and security are of paramount importance. In this embodiment, crowd package-level permission settings can be implemented based on the crowd_package meta information. For example, the creator and administrator list can be recorded in the crowd_package meta information. For important functions such as downloading and deleting, only users with granted permissions (such as creators or administrators) can operate on them.

[0080] In other embodiments, the crowd package system described in the above embodiments is applied, such as... Figure 5 As shown, the process of determining the target population selection requirements in this embodiment of the disclosure may include:

[0081] S501: Generate a target population update request, wherein the target population update request contains identification information of the target population data to be updated;

[0082] S502: Determine the metadata of the target population data to be updated based on the identification information of the target population data to be updated;

[0083] S503: Extract the target population selection requirements of the target population data to be updated from the metadata of the target population data to be updated.

[0084] The above process can be applied to updating target audience data. For example, the interface layer can proactively initiate an update of the target audience data and generate a target audience update request. Then, it can read the metadata of the target audience data from the storage layer to extract the target audience selection requirements for the requested update. As can be seen from the above process, during the target audience update process, the target audience selection requirements can also be automatically obtained and translated into corresponding search statements, avoiding the need for manually writing search code and thus lowering the barrier to entry.

[0085] The embodiments disclosed herein can achieve real-time updates of target population data through the above process, or manually instruct real-time updates of target population data, thereby ensuring that the target population data is always up-to-date and convenient for operation and other relevant personnel to use.

[0086] In some implementations, distributed locks can be used to ensure concurrency safety during the creation, updating, and deletion of target population data.

[0087] Taking the creation of new target population data as an example, distributed locks can be used to ensure concurrency safety during the creation process and prevent problems such as crowd_package meta information data pollution caused by concurrent threads.

[0088] In some implementations, the system can lock the metadata of the target audience selection requirements and target audience data before generating them, and unlock it after the operation is complete. For example, ... Figure 6 As shown, after receiving the new request from the target audience as described in step S401 above, the process may further include:

[0089] S601: Obtain the target audience identifier from the target audience creation request;

[0090] S602: Using the target audience identifier, search a pre-set index table. If the thread identifier corresponding to the target audience identifier does not exist in the index table, use the thread identifier of the new request for the target audience as the thread identifier corresponding to the target audience identifier, and save the correspondence between the target audience identifier and the thread identifier of the new request for the target audience in the index table. Then, step S402 can be further executed.

[0091] In step S602, if the index table does not contain a thread identifier corresponding to the target audience identifier, it means that no other user is currently operating on the target audience corresponding to that target audience identifier. In this case, the user who initiated the target audience creation request can lock the target audience corresponding to that target audience identifier. Since a thread identifier can uniquely represent the user who initiated the target audience creation request, the method shown in step S602 can be adopted, that is, the thread identifier of the target audience creation request is used as the thread identifier corresponding to the target audience identifier, and the correspondence between the target audience identifier and the thread identifier of the target audience creation request is stored in the index table. If the index table stores the correspondence between a target audience identifier and a thread identifier, it means that the target audience corresponding to that target audience identifier has been locked by the user (or client) corresponding to that thread identifier.

[0092] like Figure 6 As shown, the above step S402 may further include:

[0093] S603: Save the metadata of the target population data. The metadata of the target population data includes the target population selection requirements and the identification information of the target population data.

[0094] After the metadata of the target audience data is saved, the target audience can be unlocked, for example, by using... Figure 6 In step S604, the thread identifier corresponding to the target group identifier is deleted from the index table. After deletion, the target group corresponding to the target group identifier is restored to an unlocked state, and other users (clients) can lock the target group and perform operations according to instructions after locking.

[0095] As can be seen from the above locking and unlocking process, locking the target data when a user operates on it and unlocking it after the operation is completed can prevent other users from operating on the target data at the same time, thereby avoiding concurrent errors.

[0096] Figure 7 This is a schematic diagram illustrating the locking method during the process of creating a new target population (population package) according to an embodiment of this disclosure, including the following steps:

[0097] The first step is for the user (e.g., user 1) to enter a new request for crowd package 1.

[0098] The second step involves the corresponding user group system instance (e.g., user group system instance 1) requesting a lock. This involves searching the index table in the Elasticsearch cluster to determine if a thread ID corresponding to user group 1 exists in the index table, and whether this thread ID is different from user 1's thread ID. If a thread ID different from user 1 exists for user group 1, it indicates that user group 1 has already been locked by another user. If not, it means that user group 1 is not locked, and user 1 can lock user group 1. Assuming that user group 1 has not yet been locked by another user, proceed to the third step.

[0099] The third step is that user 1 successfully locked group 1.

[0100] The fourth step is to create a new audience package 1 in the audience package system instance 1 and return a success message to user 1.

[0101] like Figure 7 As shown, assuming another user (e.g., user 2) also enters a request to create a new crowd package 1, the corresponding crowd package system instance (e.g., crowd package system instance 2) requests to lock it. If the index table is searched in the Elasticsearch cluster, since crowd package 1 has already been locked by user 1, the index table stores crowd package 1 and its corresponding thread ID (which is user 1's thread ID). Therefore, it can be determined that crowd package 1 and its corresponding thread ID are different from user 2's thread ID, and thus, it cannot lock crowd package 1. Crowd package system instance 2 returns a creation failure message to user 2.

[0102] The embodiments disclosed herein can employ the following specific workflow to achieve locking and unlocking of target groups.

[0103] (1) Create a new index table for locking operations. This index table can be used to identify target groups. If a target group has been locked by a user, the index table stores the identifier of the target group and the thread ID of that user. If a target group is unlocked, the thread ID corresponding to the identifier of the target group can be deleted from the index table.

[0104] The storage environment for the index table can be established in the following manner, such as by using the following code to set up one primary shard and three secondary shards to store the index table, and setting the refresh period for writing data to the index table to 10ms.

[0105]

[0106] (2) Create a new locking script for users to use when locking.

[0107] Here is an example of a locking script:

[0108]

[0109] In the example above, the locking script is named `document-lock`. This script determines whether the thread ID attempting to lock (e.g., `ctx._source.process_id` in the example above) is different from the thread ID corresponding to the target user group (e.g., `params.process_id` in the example above). If they are different, it means the target user group has already been locked by another user, and an error message is returned, such as 'already locked by other thread' in the example above. Otherwise, the user is allowed to lock the target user group, and a no-op operation is performed (e.g., executing `ctx.op = 'noop'` in the example above).

[0110] (3) Create a new unlock script for use when unlocking.

[0111] Here is an example of an unlock script:

[0112]

[0113]

[0114] In the example above, the unlock script is named `document-unlock`. This script determines whether the thread ID attempting to unlock (e.g., `ctx._source.process_id` in the example above) is different from the thread ID corresponding to the target user group (e.g., `params.process_id` in the example above). If they are different, it means the target user group has already been locked by another user, and an error message is returned, such as 'already locked by other thread' in the example above. Otherwise, the user is allowed to unlock the target user group, and a no-op operation is performed (e.g., executing `ctx.op = 'noop'` in the example above).

[0115] (4) If thread 1 needs to lock the target audience, it can call the locking script mentioned above. For example, using the following request, the process_id passed is 49d92f4ddd6164663ed8fe915d915dc9, indicating that the target audience packet is being locked, and aeaf05e3-408c-42af-9ade-64cf28e2fc041 is the thread requesting the lock. After the request is successful, it means that the thread has successfully locked the target audience packet, and operations such as creating, updating, and deleting audience packets can be performed.

[0116]

[0117] (5) After thread 1 completes its transaction, it releases the distributed lock on the group packet, which can then call the unlocking script described above. For example, the following request can be used to delete the thread ID corresponding to the group packet, indicating that the distributed lock on the group packet has been released.

[0118]

[0119] The above describes some implementation methods for using distributed locks to ensure concurrency safety during the target audience data creation process. The same approach can be used during target audience data updates: locking the target audience before the update and unlocking it after the update is complete, thus ensuring concurrency safety during the update process. The locking and unlocking methods during the update process can refer to the locking and unlocking methods described above for the target audience data creation process, and will not be repeated here.

[0120] After introducing the above locking and unlocking methods, the following refers to... Figure 8 and Figure 9 This section provides an overview of the generation and updating process of data for the target population.

[0121] Figure 8 This is a schematic diagram illustrating the process of generating target population data according to an embodiment of this disclosure. Figure 8 As shown, the generation of target population data may include the following steps:

[0122] S801: The user selects a profile tag in the interface layer, performs logical combination on the selected profile tags, and clicks submit.

[0123] S802: The interface layer performs validation, such as duplicate checks on the target audience name, range checks on the specific values ​​of the user-selected profile tags, and type validation on the profile tags. The interface layer can use the MD5 Message-Digest Algorithm to calculate the target audience name entered by the user, and use the calculation result as the key of the target audience to ensure the uniqueness of the target audience name.

[0124] S803: The interface layer adds a distributed lock to the target group and creates new meta information for the target group data.

[0125] S804: The interface layer translates the meta information of the target audience data into ElasticSearch DSL statements, performing query optimization during the translation process. The specific implementation methods for query optimization and translation will be detailed in subsequent sections.

[0126] S805: The Elasticsearch cluster in the storage layer uses the above ElasticSearch DSL statement to select the target audience and obtain the target audience data.

[0127] S806: The Elasticsearch cluster in the storage layer uploads the selected target audience data to the interface layer, which then saves the target audience data to the object storage module.

[0128] S807: The interface layer performs distributed unlocking for the target group.

[0129] Figure 9 This is a schematic diagram illustrating the process of updating target population data according to an embodiment of this disclosure. Figure 9 As shown, updating target population data may include the following steps:

[0130] S901: The interface layer performs routine scheduling and initiates updates to the generated target population data.

[0131] S902: The interface layer adds a distributed lock to the target group and obtains the meta information of the target group data.

[0132] S903: The interface layer translates the meta information of the target audience data into ElasticSearch DSL statements, and optimizes the query during the translation process.

[0133] S904: The Elasticsearch cluster in the storage layer uses the above ElasticSearch DSL statement to re-select the target audience and obtain updated target audience data.

[0134] S905: The Elasticsearch cluster in the storage layer uploads the re-selected target audience data to the interface layer, which then saves the target audience data to the object storage module.

[0135] S906: The interface layer performs distributed unlocking for the target group.

[0136] In addition to targeting specific demographics using an Elasticsearch cluster, this embodiment also supports user-uploaded custom target demographic data. The creator of the target demographic can describe information about the data to provide a reference for other users and facilitate data reuse.

[0137] This disclosure supports multiple different users establishing target audience data in a audience package system. The audience package system can provide a list of audiences created by all different users for the target audience data. This audience list can support the following functions:

[0138] 1) Validation of target audience names;

[0139] 2) Target Audience Description. This section describes the target audience package provided by the creator, serving as a reference for others to reuse the package.

[0140] 3) Enable daily updates. Once enabled, the audience data will be updated daily to ensure it is always up-to-date. This embodiment of the disclosure can be configured so that only the creator and / or administrator have permission to enable updates.

[0141] 4) Stop daily updates. After stopping, audience packages will not be updated daily, and unused audience packages can stop updating, saving backend computing resources. This embodiment of the disclosure can be configured so that only the creator and / or administrator can click to pause.

[0142] 5) Deleting audience packages. This embodiment of the disclosure allows only the creator and / or administrator to have permission to delete audience packages.

[0143] 6) Set the audience package type, such as: tag audience package, similar audience package, and uploaded audience package.

[0144] 7) Set the audience package status to help users determine whether the audience package is ready. For example, the audience package status can be divided into four types: initializing audience targeting, initializing audience targeting complete, updating audience, and updating audience complete.

[0145] By setting up a user group list to support the above functions, it is possible to achieve permission management based on the user group package level, ensuring the security of user data. For example, only users with granted permissions can operate on the user group package.

[0146] This disclosure embodiment can use the interface layer of the audience segmentation system to translate the target audience selection requirements into corresponding ElasticSearch DSL statements. For example, in some implementations, the target audience selection requirements can be translated using a pre-defined interaction protocol and the format requirements of the Elastic Search Server DSL search statements to obtain the search statements (such as ElasticSearch DSL statements) corresponding to the target audience selection requirements. Since profile tags grow rapidly, the aforementioned secondary interface protocol can achieve high scalability. For newly added profile tags, expansion can be completed without changing the code, thereby improving system efficiency. Furthermore, during the translation into ElasticSearch DSL statements, this disclosure embodiment can also optimize the ElasticSearch DSL statements to improve ElasticSearch search performance.

[0147] For example, in related technologies, ElasticSearch search mainly has the following methods: range (range search), terms (exact match), match (fuzzy match), and must_not (exclusion).

[0148] The abstract Elasticsearch (ES) generic search interface protocol and examples are as follows:

[0149] {

[0150] "business":"label_crowd", / / Required, label_crowd indicates the target audience selected by the label.

[0151] "package_name":"Teachers", / / Required, this is the package name for the target audience. It supports Chinese characters, letters, numbers, and underscores. Other characters will be filtered out.

[0152] "package_describe":"Teacher User Group", / / Required, describes the user group package.

[0153] "user":"xxx", / / Required, creator

[0154] "only_show_number":"0", / / Optional, passing this tag means only returning the number of people selected, without creating a new audience group.

[0155] "number_limit":5000, / / Optional, when this tag is passed in, it indicates the upper limit of the selected population, in units of individuals.

[0156] "range_number":[

[0157] {"name":"label","value":[0,0.02]}], / / Filter by value range.

[0158] "not_range_number":[

[0159] {"name":"label","value":[0,1000]}], / / Exclude range filtering.

[0160] "range_string":[{"name":"last_active_day.value","value":["2021-12-01","2021-12-31"]}], / / String range filtering.

[0161] "range_string_last_days":[{"name":"label","value":[-30,0]}], / / Exact string matching.

[0162] "not_terms_string":[{"name":"label","value":["xxx","xxx"]}], / / Exclude exact string matches.

[0163] "terms_number":[{"name":"label","value":[xxx]}], / / Exact numerical matching.

[0164] "match":[{"name":"label","value":["xxx","xxx"]}], / / Fuzzy string matching.

[0165] "not_match":[{"name":"label","value":["xxx"]}], / / Exclude fuzzy string matching.

[0166] "exist_labels":["label"], / / The label exists.

[0167] "not_exist_labels":["label"], / / Label exclusion.

[0168] As can be seen from the above example, since the format of the target audience selection requirements meets the pre-defined interaction protocol, when performing DSL language translation, the target audience selection requirements can be translated according to the interaction protocol and the format requirements of the ElasticSearch DSL statement to obtain the search statement corresponding to the target audience selection requirements.

[0169] In some implementations, the translation process may include:

[0170] (1) Check whether the target population selection requirements meet the first specification, wherein the first specification includes at least one of the format specification and the search scope specification;

[0171] (2) If the target audience selection requirements meet the first specification, the target audience selection requirements are formatted;

[0172] For example, converting relative dates in the string range filter - relative days version `range_string_last_days` to absolute dates. Combining string arrays in fuzzy matching into a single string facilitates fuzzy matching in Elasticsearch.

[0173] (3) Translate the formatted target audience selection requirements to obtain the ElasticSearch DSL statement.

[0174] For example, `range_number`, `range_string`, and `range_string_last_days` are converted to Elasticsearch range searches in the Elasticsearch DSL language; `terms_string` and `not_terms_string` are converted to exact match searches in the Elasticsearch DSL language; `match` and `not_match` are converted to fuzzy match searches in the Elasticsearch DSL language; and `exist_labels` and `not_exist_labels` are converted to exist searches in the Elasticsearch DSL language.

[0175] During the translation process, query optimization can be implemented to solve the problem of unreasonable search results in related technologies. For example, in related technologies, using an Elasticsearch server to search for users with spending amounts less than or equal to 1000 yuan can only return target groups with spending amounts (i.e., spending amounts greater than 0) and amounts less than 1000 yuan, but cannot return target groups with no spending amounts (i.e., spending amounts equal to 0); such target group selection results are obviously unreasonable. The interaction protocol designed in this disclosure, through the aforementioned exclusion range filter "not_range_number", can exclude target groups with spending amounts from 1000 to infinity, thereby selecting users with spending amounts less than or equal to 1000 yuan (including users with spending amounts of 0).

[0176] Additionally, during the translation process, cursor-based pagination requests can be used to optimize Elasticsearch DSL queries and obtain search results. Cursor-based pagination ensures that large datasets do not overflow memory and avoids deep pagination.

[0177] In some implementations, translating the target audience selection requirements may include:

[0178] The target audience selection criteria are translated according to search optimization standards; these search optimization standards include: simplifying computational operations during the search process and / or simplifying the content returned by the search.

[0179] For example, using a filter instead of a must parameter can ignore relevance scores and cache query results as much as possible to improve performance. Another example is setting the _source parameter to false to simplify the search results, saving bandwidth and improving search performance.

[0180] In summary, the method for determining the target audience proposed in this embodiment, through this universal interface, can achieve complete decoupling of business metrics and audience search capabilities. When the audience segmentation interface needs to add tags, due to the universality of this protocol, zero changes to the backend code can be achieved, greatly reducing the threshold for using audience segments and making audience segments simple to use, efficient, and open to extension.

[0181] Figure 10 This is a schematic diagram of the structure of a system for determining a target population according to an embodiment of this disclosure. Figure 10 The system 1000 shown for identifying the target population includes:

[0182] Interface module 1010 is used to determine the target audience selection requirements and generate corresponding search statements based on the target audience selection requirements;

[0183] The storage module 1020 is used to execute search statements to obtain target population data that meets the target population selection requirements; it is also used to save the target population data.

[0184] In some possible implementations, the search statements described above include Elastic Search Server Domain-Specific Language (DSL) search statements.

[0185] Figure 11 This is a schematic diagram of the structure of a system for determining a target population according to another embodiment of this disclosure. Figure 11 The system 1100 shown for identifying the target population includes:

[0186] The interface module 1010, storage module 1020, and interface interaction module 1130 are included. The interface module 1010 further includes a distributed lock processing submodule 1011, a generation submodule 1012, and a business processing submodule 1013. The storage module 1020 further includes a metadata storage submodule 1021.

[0187] In some possible implementations, the interface interaction module 1130 is used to: generate a new target audience request based on the received instruction, and send the new target audience request to the interface module; the new target audience request includes at least one profile tag for selecting the target audience;

[0188] The aforementioned interface module 1010 is used to: generate target audience selection requirements based on at least one profile tag used for target audience selection.

[0189] In some possible implementations, the aforementioned target audience creation request also includes a target audience identifier;

[0190] The aforementioned distributed lock processing submodule 1011 is used for:

[0191] Retrieves the target audience identifier from the new request of the target audience; uses the target audience identifier to search a pre-set index table; if the thread identifier corresponding to the target audience identifier does not exist in the index table, the thread identifier of the new request of the target audience is used as the thread identifier corresponding to the target audience identifier, and the correspondence between the target audience identifier and the thread identifier of the new request of the target audience is stored in the index table; it is also used to instruct the generation submodule to generate target audience selection requirements.

[0192] The above-mentioned generation submodule 1012 is used for:

[0193] Following the instructions of the distributed lock processing submodule 1011, the steps for generating target audience selection requirements are performed based on at least one profile tag used for target audience selection.

[0194] In some possible implementations, the above-described metadata storage submodule 1021 is used for:

[0195] Save the metadata of the target population data, which includes the target population selection requirements and the identification information of the target population data.

[0196] In some possible implementations, the distributed lock processing submodule 1011 described above is further configured to:

[0197] After the metadata of the target population data is saved in the metadata storage submodule 1021, the thread identifier corresponding to the target population identifier is deleted from the index table.

[0198] In some possible implementations, the above-mentioned business processing submodule 1013 is used to generate a target population update request, which includes identification information of the target population data to be updated; determine the metadata of the target population data to be updated based on the identification information of the target population data to be updated; and extract the target population selection requirements of the target population data to be updated from the metadata of the target population data to be updated.

[0199] In some possible implementations, the format of the above-mentioned target audience selection requirements meets a pre-defined interaction protocol;

[0200] The aforementioned interface module 1010 is used to translate the target audience selection requirements according to the pre-set interaction protocol and the format requirements of the Elastic Search Server DSL search statement, and obtain the search statement corresponding to the target audience selection requirements.

[0201] In some possible implementations, the interface module 1010 described above is used for:

[0202] The test determines whether the target population selection criteria meet the first specification, which includes at least one of the format specification and the search scope specification.

[0203] If the target audience selection requirements meet the first specification, the target audience selection requirements are formatted.

[0204] The formatted target audience selection criteria are translated to obtain the corresponding search terms.

[0205] In some possible implementations, the interface module 1010 described above is used for:

[0206] The target audience selection criteria were translated according to search optimization standards. Search optimization standards include: simplifying calculations during the search process and / or simplifying the content returned by the search.

[0207] The acquisition, storage, and application of user personal information involved in the technical solution disclosed herein comply with the provisions of relevant laws and regulations and do not violate public order and good morals.

[0208] According to embodiments of this disclosure, this disclosure also provides an electronic device, a readable storage medium, and a computer program product.

[0209] Figure 12 A schematic block diagram of an example electronic device 1200 that can be used to implement embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the present disclosure described and / or claimed herein.

[0210] like Figure 12 As shown, device 1200 includes a computing unit 1201, which can perform various appropriate actions and processes according to a computer program stored in read-only memory (ROM) 1202 or a computer program loaded from storage unit 12012 into random access memory (RAM) 1203. The RAM 1203 may also store various programs and data required for the operation of device 1200. The computing unit 1201, ROM 1202, and RAM 1203 are interconnected via bus 1204. Input / output (I / O) interface 1205 is also connected to bus 1204.

[0211] Multiple components in device 1200 are connected to I / O interface 1205, including: input unit 1206, such as keyboard, mouse, etc.; output unit 1207, such as various types of monitors, speakers, etc.; storage unit 1208, such as disk, optical disk, etc.; and communication unit 1209, such as network card, modem, wireless transceiver, etc. Communication unit 1209 allows device 1200 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.

[0212] The computing unit 1201 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 1201 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 1201 performs the various methods and processes described above, such as methods for determining a target population. For example, in some embodiments, the method for determining a target population may be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 1208. In some embodiments, part or all of the computer program may be loaded and / or installed on device 1200 via ROM 1202 and / or communication unit 1209. When the computer program is loaded into RAM 1203 and executed by the computing unit 1201, one or more steps of the method for determining a target population described above may be performed. Alternatively, in other embodiments, the computing unit 1201 may be configured in any other suitable manner (e.g., by means of firmware) to perform a method for determining a target population.

[0213] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.

[0214] The program code used to implement the methods of this disclosure may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor or controller, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.

[0215] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0216] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).

[0217] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with embodiments of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.

[0218] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact via communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other. Servers can be cloud servers, servers in distributed systems, or servers incorporating blockchain technology.

[0219] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this disclosure can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution disclosed in this disclosure can be achieved, and this is not limited herein.

[0220] The specific embodiments described above do not constitute a limitation on the scope of protection of this disclosure. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this disclosure should be included within the scope of protection of this disclosure.

Claims

1. A method for identifying a target population, comprising: Receive a target audience creation request, wherein the target audience creation request includes a target audience identifier and at least one profile tag for selecting the target audience; Obtain the target audience identifier from the new request of the target audience; The target audience identifier is used to search a pre-set index table. If the thread identifier corresponding to the target audience identifier does not exist in the index table, the thread identifier of the new request of the target audience is used as the thread identifier corresponding to the target audience identifier to lock the target audience corresponding to the target audience identifier. The correspondence between the target audience identifier and the thread identifier of the new request of the target audience is stored in the index table. Alternatively, a locking script can be used to lock the target audience corresponding to the target audience identifier if a thread identifier for the same target audience identifier as the thread identifier for the new request of the target audience exists in the index table. Based on at least one profile tag used for target audience selection, the target audience selection requirements are generated; Generate corresponding search statements based on the target audience selection requirements; Execute the search statement to obtain target population data that meets the target population selection requirements; Save the target population data.

2. The method according to claim 1, wherein, The search statements include domain-specific language (DSL) search statements for Elastic Search Server.

3. The method according to claim 1, further comprising: The metadata of the target population data is saved, and the metadata of the target population data includes the target population selection requirements and the identification information of the target population data.

4. The method according to claim 3, further comprising, after saving the metadata of the target population data: Delete the thread identifier corresponding to the target population identifier from the index table.

5. The method according to claim 3 or 4, wherein, The criteria for determining the target audience include: Generate a target audience update request, wherein the target audience update request contains identification information of the target audience data to be updated; Based on the identification information of the target population data to be updated, determine the metadata of the target population data to be updated; Extract the target population selection requirements from the metadata of the target population data to be updated.

6. The method according to claim 2, wherein, The format of the target audience selection requirements must meet the pre-defined interaction protocol; The step of generating a corresponding Elastic Search Server DSL search statement based on the target audience selection requirements includes: translating the target audience selection requirements according to the pre-set interaction protocol and the format requirements of the Elastic Search Server DSL search statement to obtain the search statement corresponding to the target audience selection requirements.

7. The method according to claim 6, wherein, The process of translating the target audience selection criteria to obtain the corresponding search query includes: Detect whether the target audience selection requirements meet the first specification, the first specification including at least one of the format specification and the search scope specification; If the target audience selection requirements meet the first specification, the target audience selection requirements are formatted. The formatted target audience selection requirements are translated to obtain the search query corresponding to the target audience selection requirements.

8. The method according to claim 6 or 7, wherein, The translation of the target audience selection requirements includes: The target audience selection requirements are translated according to search optimization standards; the search optimization standards include: simplifying the calculation operations in the search process and / or simplifying the content returned by the search.

9. A system for identifying a target population, comprising: The interface module is used to receive a new request for a target audience, wherein the new request for a target audience includes a target audience identifier and at least one profile tag for selecting the target audience; Based on at least one profile tag used for target audience selection, the target audience selection requirements are generated; Generate corresponding search statements based on the target audience selection requirements; The interface interaction module is used to generate a new user creation request for the target audience based on the received instructions, and send the new user creation request for the target audience to the interface module; The new request for the target audience includes at least one profile tag for selecting the target audience; The interface module includes: The distributed lock processing submodule is used to obtain the target audience identifier from the new user request of the target audience; use the target audience identifier to search a pre-set index table; if the thread identifier corresponding to the target audience identifier does not exist in the index table, use the thread identifier of the new user request of the target audience as the thread identifier corresponding to the target audience identifier to lock the target audience corresponding to the target audience identifier, and save the correspondence between the target audience identifier and the thread identifier of the new user request of the target audience in the index table; or, use a locking script to lock the target audience corresponding to the target audience identifier if the thread identifier of the target audience identifier is the same as the thread identifier of the new user request of the target audience exists in the index table; it is also used to instruct the generation submodule to generate target audience selection requirements; A generation submodule is used to generate the target audience selection requirements according to the instructions of the distributed lock processing submodule and based on at least one profile tag used for target audience selection. The storage module is used to execute the search statement to obtain target population data that meets the target population selection requirements; it is also used to save the target population data.

10. The system according to claim 9, wherein, The search statements include domain-specific language (DSL) search statements for Elastic Search Server.

11. The system according to claim 9, wherein, The storage module includes: The metadata storage submodule is used to store the metadata of the target population data, which includes the target population selection requirements and the identification information of the target population data.

12. The system according to claim 11, wherein, The distributed lock processing submodule is also used to delete the thread identifier corresponding to the target population identifier from the index table after the metadata storage submodule saves the metadata of the target population data.

13. The system according to claim 11 or 12, wherein, The interface module also includes: The business processing submodule is used to generate a target audience update request, which includes identification information of the target audience data to be updated; determine the metadata of the target audience data to be updated based on the identification information of the target audience data to be updated; and extract the target audience selection requirements of the target audience data to be updated from the metadata of the target audience data to be updated.

14. The system according to claim 10, wherein, The format of the target audience selection requirements must meet the pre-defined interaction protocol; The interface module is used to translate the target audience selection requirements according to the pre-set interaction protocol and the format requirements of the Elastic Search Server DSL search statement, so as to obtain the search statement corresponding to the target audience selection requirements.

15. The system according to claim 14, wherein, The interface module is used for: Detect whether the target audience selection requirements meet the first specification, the first specification including at least one of the format specification and the search scope specification; If the target audience selection requirements meet the first specification, the target audience selection requirements are formatted. The formatted target audience selection requirements are translated to obtain the search query corresponding to the target audience selection requirements.

16. The system according to claim 14 or 15, wherein, The interface module is used for: The target audience selection requirements are translated according to search optimization standards; the search optimization standards include: simplifying the calculation operations in the search process and / or simplifying the content returned by the search.

17. An electronic device comprising: At least one processor; as well as A memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-8.

18. A non-transitory computer-readable storage medium storing computer instructions, wherein, The computer instructions are used to cause the computer to perform the method according to any one of claims 1-8.

19. A computer program product comprising a computer program that, when executed by a processor, implements the method according to any one of claims 1-8.

Citation Information

Patent Citations

  • Crowd generation method and device

    CN110968582A

  • Thread scheduling method, device and equipment and storage medium

    CN111367675A