Systems and methods for generating and querying indexes associated with target communications
By using intersecting multidimensional inverted index technology, target communication indexes are generated and queried, solving the problem of high computing resource and network bandwidth costs in existing technologies, and achieving efficient target communication positioning and transmission.
Patent Information
- Application Number
- CN202410054009.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-09-02
- Filing Date
- 2021-09-02
- Publication Date
- 2025-11-21
- Estimated Expiration
- 2041-09-02
AI Technical Summary
Existing technologies incur high costs in terms of computing resources and network bandwidth when generating and transmitting target communications, making it difficult to efficiently locate and transmit target communications.
It employs intersecting multidimensional inverted index technology, which generates candidate arrays and dimension set representations by receiving candidate identifiers and features, labels the index with ratio tags, receives queries and generates target communication through intersection calculation, and optimizes candidate selection and transmission.
It improves the efficiency of target communication generation and transmission, reduces the consumption of computing resources and network bandwidth, and achieves more efficient target communication positioning and transmission.
Smart Images

Figure CN117828009B_ABST
Abstract
Description
[0001] This application is a divisional application of the application with the application number 202111026351.6, the title of the invention as “System and method for generating and querying indexes associated with targeted communications”, and the filing date of September 2, 2021. TECHNICAL FIELD
[0002] According to some embodiments, the present disclosure relates to targeted communications, and in particular, to providing targeted communications to users using intersecting multi-dimensional inverted indexes. BACKGROUND
[0003] Targeted communications are achieved by locating the appropriate audience and ensuring that the targeted communications reach them effectively, thereby increasing sales and reducing wasted efforts. A more cost-effective way to generate and deliver targeted communications than existing methods is desired. SUMMARY
[0004] According to some embodiments, a method for generating and querying an index associated with target communications can include determining or receiving, using one or more computing device processors, a first candidate identifier, a first target communication transmission rate, and at least one characteristic associated with a target communication recipient, the first candidate identifier, the first target communication transmission rate, and the at least one characteristic associated with the target communication recipient being associated with a first candidate target communication; determining or receiving, using one or more computing device processors, a second candidate identifier, a second target communication transmission rate, and at least one characteristic associated with the target communication recipient, the second candidate identifier, the second target communication transmission rate, and the at least one characteristic associated with the target communication recipient being associated with a second candidate target communication; determining or receiving, using one or more computing device processors, a third candidate identifier, a third target communication transmission rate, and at least one characteristic associated with the target communication recipient, the third candidate identifier, the third target communication transmission rate, and the at least one characteristic associated with the target communication recipient being associated with a third candidate target communication; generating or accessing, using one or more computing device processors, a candidate index, the candidate index including: a first dimension including the first dimension characteristic associated with the first candidate target communication, the first dimension characteristic associated with the second candidate target communication, and the first dimension characteristic associated with the third candidate target communication; and a second dimension including the second dimension characteristic associated with the first candidate target communication and the second dimension characteristic associated with the third candidate target communication, wherein the second candidate target communication does not include the second dimension characteristic associated with the second candidate target communication; receiving, using one or more computing device processors, a query from a computing device, wherein the query is associated with a first desired candidate characteristic associated with the first dimension and a second desired candidate characteristic associated with the second dimension; determining or generating, using one or more computing device processors, an ordered first set, the ordered first set including a first indicator indicating whether the first candidate target communication includes the first desired candidate characteristic, a second indicator indicating whether the second candidate target communication includes the first desired candidate characteristic, and a third indicator indicating whether the third candidate target communication includes the first desired candidate characteristic, wherein a position of the first indicator in the ordered first set corresponds to a position of the first candidate target communication in the candidate index, wherein a position of the second indicator in the ordered first set corresponds to a position of the second candidate target communication in the candidate index, and wherein a position of the third indicator in the ordered first set corresponds to a position of the third candidate target communication in the candidate index; determining or generating, using one or more computing device processors, an ordered second set, the ordered second set including a fourth indicator indicating whether the first candidate target communication includes the second desired candidate characteristic, a fifth indicator indicating whether the second candidate target communication includes the second desired candidate characteristic, and a sixth indicator indicating whether the third candidate target communication includes the second desired candidate characteristic;determining or generating, using the one or more computing device processors, a result set based on performing an intersection computation based on the ordered first set and the ordered second set, the result set including a seventh indicator associated with the first candidate target communication and an eighth indicator associated with the third candidate target communication; eliminating, using the one or more computing device processors, the first candidate target communication from the result set based on the first target communication transmission rate; and selecting, using the one or more computing device processors, the third candidate target communication from the result set based on the third target communication transmission rate.
[0005] According to some embodiments, a position of the fourth indicator in the ordered second set corresponds to a position of the first candidate target communication in the candidate index, wherein a position of the fifth indicator in the ordered second set corresponds to a position of the second candidate target communication in the candidate index, and wherein a position of the sixth indicator in the ordered second set corresponds to a position of the third candidate target communication in the candidate index.
[0006] According to some embodiments, the method further includes transmitting, using the one or more computing device processors, the third candidate target communication to the user device for display on the user device.
[0007] According to some embodiments, in response to determining that the second candidate target communication does not include the second dimension feature, the second candidate target communication is included in an always match set for the second dimension such that one or more candidate target communications from the always match set are always included in the ordered second set.
[0008] According to some embodiments, in response to determining that the second candidate target communication does not include the second dimension feature, the fifth indicator indicates that the second candidate target communication includes all of the second dimension features.
[0009] According to some embodiments, the ordered first set includes non-binary indicators.
[0010] According to some embodiments, the candidate index includes a candidate array.
[0011] According to some embodiments, the ordered first set includes binary indicators.
[0012] According to some embodiments, another method for generating and querying an index associated with target communications is provided. The method includes determining or receiving, using one or more computing device processors, a first candidate identifier and at least one characteristic associated with a recipient of a target communication, the first candidate identifier and the at least one characteristic associated with the recipient of the target communication being associated with a first candidate target communication; determining or receiving, using one or more computing device processors, a second candidate identifier and at least one characteristic associated with the recipient of the target communication, the second candidate identifier and the at least one characteristic associated with the recipient of the target communication being associated with a second candidate target communication; determining or receiving, using one or more computing device processors, a third candidate identifier and at least one characteristic associated with the recipient of the target communication, the third candidate identifier and the at least one characteristic associated with the recipient of the target communication being associated with a third candidate target communication; generating or accessing, using one or more computing device processors, a candidate index, the candidate index including: a first dimension including the first dimension characteristic associated with the first candidate target communication, the first dimension characteristic associated with the second candidate target communication, and the first dimension characteristic associated with the third candidate target communication; and a second dimension including the second dimension characteristic associated with the first candidate target communication and the second dimension characteristic associated with the third candidate target communication, wherein the second candidate target communication does not include the second dimension characteristic associated with the second candidate target communication; receiving, using one or more computing device processors, a query from a computing device, wherein the query is associated with a first desired candidate characteristic associated with the first dimension and a second desired candidate characteristic associated with the second dimension; determining or generating, using one or more computing device processors, an ordered first set, the ordered first set including a first indicator indicating whether the first candidate target communication includes the first desired candidate characteristic, a second indicator indicating whether the second candidate target communication includes the first desired candidate characteristic, and a third indicator indicating whether the third candidate target communication includes the first desired candidate characteristic, wherein a position of the first indicator in the ordered first set corresponds to a position of the first candidate target communication in the candidate index, wherein a position of the second indicator in the ordered first set corresponds to a position of the second candidate target communication in the candidate index, and wherein a position of the third indicator in the ordered first set corresponds to a position of the third candidate target communication in the candidate index; determining or generating, using one or more computing device processors, an ordered second set, the ordered second set including a fourth indicator indicating whether the first candidate target communication includes the second desired candidate characteristic, a fifth indicator indicating whether the second candidate target communication includes the second desired candidate characteristic, and a sixth indicator indicating whether the third candidate target communication includes the second desired candidate characteristic;determining or generating, using the one or more computing device processors, a result set based on performing a calculation based on the ordered first set and the ordered second set, the result set including a seventh indicator associated with the first candidate target communication and an eighth indicator associated with the third candidate target communication; and selecting, using the one or more computing device processors, the third candidate target communication from the result set based on the third target communication transmission rate.
[0013] According to some embodiments, the position of the fourth indicator in the ordered second set corresponds to a position of the first candidate target communication in the candidate index, wherein the position of the fifth indicator in the ordered second set corresponds to a position of the second candidate target communication in the candidate index, and wherein the position of the sixth indicator in the ordered second set corresponds to a position of the third candidate target communication in the candidate index.
[0014] According to some embodiments, the method further includes transmitting, using the one or more computing device processors, the third candidate target communication to the user device for display on the user device.
[0015] According to some embodiments, in response to determining that the second candidate target communication does not include the second dimension feature, the second candidate target communication is included in an always match set for the second dimension such that one or more candidate target communications from the always match set are always included in the ordered second set.
[0016] According to some embodiments, in response to determining that the second candidate target communication does not include the second dimension feature, the fifth indicator indicates that the second candidate target communication includes a plurality of the second dimension features.
[0017] According to some embodiments, the first dimension further includes a first candidate identifier.
[0018] According to some embodiments, the ordered first set is associated with the first dimension and includes non-binary indicators.
[0019] According to some embodiments, the ordered first set is associated with the first dimension and includes binary indicators.
[0020] According to some embodiments, the method further includes determining or receiving, using the one or more computing device processors, a first target communication transmission rate associated with the first candidate identifier.
[0021] According to some embodiments, the method further includes generating, using the one or more computing device processors, a first rate label based on the first target communication transmission rate associated with the first candidate identifier.
[0022] According to some embodiments, the method further includes eliminating, using the one or more computing device processors, the first candidate target communication from the result set based on the first rate label.
[0023] According to some embodiments, a system for generating and querying an index associated with target communications is provided. The system includes a memory including instructions and a processing device configured for executing the server instructions, wherein the instructions cause the processing device to: determine or receive a first candidate identifier, a first target communication transmission rate, and at least one characteristic associated with a target communication recipient, the first candidate identifier, the first target communication transmission rate, and the at least one characteristic associated with the target communication recipient being associated with a first candidate target communication; determine or receive a second candidate identifier, a second target communication transmission rate, and at least one characteristic associated with the target communication recipient, the second candidate identifier, the second target communication transmission rate, and the at least one characteristic associated with the target communication recipient being associated with a second candidate target communication; determine or receive a third candidate identifier, a third target communication transmission rate, and at least one characteristic associated with the target communication recipient, the third candidate identifier, the third target communication transmission rate, and the at least one characteristic associated with the target communication recipient being associated with a third candidate target communication; generate or access a candidate index, the candidate index including: a first dimension including the first dimension characteristic associated with the first candidate target communication, the first dimension characteristic associated with the second candidate target communication, and the first dimension characteristic associated with the third candidate target communication; and a second dimension including the second dimension characteristic associated with the first candidate target communication and the second dimension characteristic associated with the third candidate target communication, wherein the second candidate target communication does not include the second dimension characteristic associated with the second candidate target communication; receive a query from a computing device, wherein the query is associated with a first desired candidate characteristic associated with the first dimension and a second desired candidate characteristic associated with the second dimension; determine or generate an ordered first set, the ordered first set including a first indicator indicating whether the first candidate target communication includes the first desired candidate characteristic, a second indicator indicating whether the second candidate target communication includes the first desired candidate characteristic, and a third indicator indicating whether the third candidate target communication includes the first desired candidate characteristic, wherein a position of the first indicator in the ordered first set corresponds to a position of the first candidate target communication in the candidate index, wherein a position of the second indicator in the ordered first set corresponds to a position of the second candidate target communication in the candidate index, and wherein a position of the third indicator in the ordered first set corresponds to a position of the third candidate target communication in the candidate index; determine or generate an ordered second set, the ordered second set including a fourth indicator indicating whether the first candidate target communication includes the second desired candidate characteristic, a fifth indicator indicating whether the second candidate target communication includes the second desired candidate characteristic, and a sixth indicator indicating whether the third candidate target communication includes the second desired candidate characteristic; and determine or generate a result set, the result set including a first result indicator indicating whether the first candidate target communication includes the first desired candidate characteristic and the second desired candidate characteristic, a second result indicator indicating whether the second candidate target communication includes the first desired candidate characteristic and the second desired candidate characteristic, and a third result indicator indicating whether the third candidate target communication includes the first desired candidate characteristic and the second desired candidate characteristic.determining or generating a result set based on performing an intersection calculation based on the ordered first set and the ordered second set, the result set including a seventh indicator associated with the first candidate target communication and an eighth indicator associated with the third candidate target communication; eliminating the first candidate target communication from the result set based on the first target communication transmission rate; and selecting the third candidate target communication from the result set based on the third target communication transmission rate.
[0024] According to some embodiments, another method for generating and querying an index associated with target communications can be provided, which can include determining or receiving, using one or more computing device processors, a first candidate identifier, a first target communication transmission rate, and at least one characteristic associated with a target communication recipient, the first candidate identifier, the first target communication transmission rate, and the at least one characteristic associated with the target communication recipient being associated with a first candidate target communication; determining or receiving, using one or more computing device processors, a second candidate identifier, a second target communication transmission rate, and at least one characteristic associated with the target communication recipient, the second candidate identifier, the second target communication transmission rate, and the at least one characteristic associated with the target communication recipient being associated with a second candidate target communication; determining or receiving, using one or more computing device processors, a third candidate identifier, a third target communication transmission rate, and at least one characteristic associated with the target communication recipient, the third candidate identifier, the third target communication transmission rate, and the at least one characteristic associated with the target communication recipient being associated with a third candidate target communication; generating or accessing, using one or more computing device processors, a candidate index, the candidate index including: a first dimension including the first dimension characteristic associated with the first candidate target communication and the first dimension characteristic associated with the second candidate target communication, wherein the third candidate target communication does not include the first dimension characteristic associated with the third candidate target communication; and a second dimension including the second dimension characteristic associated with the first candidate target communication and the second dimension characteristic associated with the third candidate target communication, wherein the second candidate target communication does not include the second dimension characteristic associated with the second candidate target communication; receiving, using one or more computing device processors, a query from a computing device, wherein the query is associated with a first desired candidate characteristic associated with the first dimension and a second desired candidate characteristic associated with the second dimension; determining or generating, using one or more computing device processors, a first set, the first set including the first candidate target communication in response to determining that the first candidate target communication includes or is associated with the first desired candidate characteristic, the first set including the second candidate target communication in response to determining that the second candidate target communication includes or is associated with the first desired candidate characteristic, wherein the third candidate target communication is not included in the first set in response to determining that the third candidate target communication does not include or is not associated with the first desired candidate characteristic;determining or generating, using the one or more computing device processors, a second set, in response to determining that the first candidate target communication includes or is associated with a second desired candidate feature, the second set including the first candidate target communication, and in response to determining that the third candidate target communication includes or is associated with the second desired candidate feature, the second set including the third candidate target communication, wherein, in response to determining that the second candidate target communication does not include or is not associated with the second desired candidate feature, the second candidate target communication is not included in the second set; determining, using the one or more computing device processors, that the first candidate target communication is a common candidate target communication between the first set and the second set; and determining, using the one or more computing device processors, whether to transmit the first candidate target communication to the user device based on the first target communication transmission rate.
[0025] According to some embodiments, the first set is ordered.
[0026] According to some embodiments, the position of the first indicator in the first set corresponds to a position of the first candidate target communication in the candidate index, and wherein the position of the second indicator in the ordered first set corresponds to a position of the second candidate target communication in the candidate index.
[0027] According to some embodiments, the second set is ordered.
[0028] According to some embodiments, the first set, the second set, or a resulting set produced by performing an intersection calculation based on the first set and the second set does not include an always match candidate target communication that includes or is associated with the first desired candidate feature and the second desired candidate feature.
[0029] According to some embodiments, the always match candidate is included in the always match set.
[0030] According to some embodiments, the first set, the second set, or a resulting set produced by performing an intersection calculation based on the first set and the second set includes an always match candidate target communication that includes or is associated with the first desired candidate feature and the second desired candidate feature.
[0031] According to some embodiments, the ordered first set, the ordered second set, or the resulting set does not include an always match candidate target communication that includes or is associated with the first desired candidate feature and the second desired candidate feature.
[0032] According to some embodiments, the always-match candidate target communication or the indication that the always-match candidate target communication includes the first expected candidate feature and the second expected candidate feature or is associated with the first expected candidate feature and the second expected candidate feature is included in the always-match set.
[0033] According to some embodiments, there is no data or null data in the position in the ordered first set, the ordered second set, or the result set that corresponds to the always-match candidate target communication.
[0034] According to some embodiments, the ordered first set, the ordered second set, or the result set includes a ninth indicator that indicates that the always-match candidate target communication includes the first expected candidate feature and the second expected candidate feature or is associated with the first expected candidate feature and the second expected candidate feature. BRIEF DESCRIPTION OF DRAWINGS
[0035] Figure 1 A flowchart schematically representing a method for generating and querying an index associated with target communications according to the disclosed embodiments is shown.
[0036] Figure 2 A schematic block diagram of a system for generating target communications according to the disclosed embodiments is shown.
[0037] Figure 3 A functional block diagram of a server for generating target communications associated with the disclosed systems and methods is shown.
[0038] Figure 4 A block diagram of an index according to some embodiments is shown.
[0039] While similar reference characters can be used to designate similar elements for ease of reference, it is to be understood that each of the various example embodiments can be considered to be a different variant.
[0040] Embodiments of the present application will now be described, by way of example only, with reference to the attached figures. As used in this disclosure and the appended claims, the term "embodiment" and "example embodiment" do not necessarily refer to a single embodiment, although it can, and various example embodiments can be readily combined and interchanged, without departing from the scope or spirit of embodiments of the present application. Additionally, the terms used herein are for the purpose of describing example embodiments and are not intended to be limiting. In this regard, the term "in" as used herein can include "in" and "on," and the terms "a" and "one" can include singular and plural references as well. Further, as used herein, the term "by" can also mean "based on," depending on the context. Also, as used herein, the term "if" can also mean "when," or "in the event that," depending on the context. Also, as used herein, the word "and / or" can refer to and encompass any and all possible combinations of one or more of the associated listed items. DETAILED DESCRIPTION
[0041] Targeted communications provide businesses and organizations with the ability to more effectively and efficiently communicate with potential audiences. However, the computing resources and network bandwidth required to generate and deliver targeted communications remains quite expensive for existing technologies in the field of targeted communications. In the following detailed description, examples of improved methods of generating and delivering targeted communications are provided.
[0042] As Figure 1 shown, a method 1000 for generating and querying an index associated with targeted communications (e.g., by using an intersecting, multi-dimensional inverted index) can include the following steps: receiving, at one or more servers, at least one trait and a rate associated with a candidate identifier from one or more first computing devices (1001); generating a candidate array including the candidate identifier (1002); generating two or more dimensions, each dimension being associated with one of the at least one trait and including at least some of the candidate identifiers (1003); generating a set representation for each dimension (1004); generating a rate tag based on the rate associated with the candidate identifier (1005); generating an index by tagging one or more candidate identifiers with a respective rate tag (1006); receiving a query (1007); generating a bit set including suitable candidates by intersecting the dimensions (1008); removing one or more suitable candidates based on the respective rate tag to generate a remaining candidate set (1009); generating a targeted communication (1010); and delivering the targeted communication to one or more second computing devices (1011).
[0043] Referring now to Figure 2 System 2000 for generating target communications using intersecting multidimensional inverted indexes can include one or more first computing devices 1020, one or more servers 1022, and one or more second computing devices 1024. The one or more servers can include an index engine 1026 and a query engine 1028. According to some embodiments, the one or more servers can receive, from the one or more first computing devices 1020, at least one characteristic 1030 and a rate 1032 associated with a candidate identifier 1034. In some embodiments, the at least one characteristic 1030 and the rate 1032 associated with the candidate identifier 1034 can be received at the index engine 1026. The candidate identifier 1034 can be any identifier (e.g., alphanumeric and / or symbolic) that can be used to identify a candidate.
[0044] The characteristic 1030 can include information about a candidate associated with the candidate identifier 1034. For example, in some embodiments, the candidate can be a client that wishes to have a target communication generated on their behalf. In this example, the candidate can have a candidate identifier of "abc123" and can wish to have a target communication generated and transmitted to a woman aged 40-45 years old living in Longmont, Colorado. In this example, the characteristics associated with the candidate identifier "abc123" can be, but are not limited to, "gender = female," "age = 40-45 years old," and "geographic location = Colorado, Longmont." The characteristic 1030 can be any characteristic or set of characteristics that can describe a target to which a target communication on behalf of a candidate can be directed. For the sake of clarity, the above example is merely illustrative and is not intended to be limiting.
[0045] The rate 1032 can include a rate at which a candidate wishes to have a target communication generated on their behalf. In some embodiments, the rate 1032 can include a number of target communications per unit of time. For example, the rate 1032 can be a total number of target communications generated on behalf of a candidate per minute, per hour, per day, per week, etc. In some embodiments, the rate 1032 can include a number of target communications generated on behalf of a candidate out of a total number of target communications generated for all (or multiple) candidates. For example, the rate 1032 can be 0.5%, 1.0%, 5.0%, 10.0%, etc. of all (or multiple) target communications generated by the system. In some embodiments, a target communication can initiate an allocation of an allocable resource ("allocable") in an allocable pool. In these embodiments, the rate 1032 can include a rate at which a candidate wishes to have an allocable resource allocated by a target communication from a total available allocable pool.
[0046] One or more servers 1022 can generate a candidate array 1036 including candidate identifiers 1034. In some embodiments, the candidate array 1036 can be generated by an indexing engine 1026 included in the one or more servers 1022. According to some embodiments, the candidate array 1036 can be a bit set or a standard array. For example, the candidate array 1036 can include candidate identifiers 1034 (e.g., "abc123") as described above, arranged into the array in assigned positions (e.g., "abc123" = 2, where the candidate identifier is in the second position of the array). In some embodiments, there are all (or multiple) candidate identifiers 1034 for all (or multiple) potential candidates in the candidate array 1036. In other embodiments, there are only a subset of candidate identifiers 1034 for potential candidates in the candidate array 1036.
[0047] Two or more dimensions can be generated by the one or more servers 1022. In some embodiments, the two or more dimensions can be generated by an indexing engine 1026 included in the one or more servers. Each dimension can be associated with one of the at least one feature 1030 and can include at least some of the candidate identifiers 1034. For example, in some embodiments, a dimension can be associated with a particular feature 1030, such as "age." In some embodiments, a dimension can be associated with multiple features 1030, such as "gender" and "age." In some embodiments, multiple features 1030 (e.g., "age" and "gender") can be considered a single feature in order to establish a dimension. In these examples, because the candidate identifier "abc123" is associated with each of the features "age" and "gender," the candidate identifier "abc123" will be present in one or more dimensions associated with those features. In the same example, where a hypothetical candidate with candidate identifier "def456" is associated with the feature "gender = male" but not with a specified age group, the candidate identifier "def456" will be present in the dimension "gender" but will not be present in the dimension "age."
[0048] In some embodiments, a candidate identifier 1034 can be associated with all features associated with a dimension. For example, the candidate identifier "abc123" can be associated with all features associated with the dimension "age" (e.g., associated with all ages and / or age groups). In these embodiments, the candidate identifier 1034 can be present in the dimension as multiple entries in the dimension (e.g., present for the features "age = 20-25," "age = 26-30," "age = 31-35," etc.), or can be present in the dimension as an "always match set." In some embodiments, an "always match set" can include candidate identifiers 1034 that produce an indicator every time the dimension is queried.
[0049] A set representation 1038 can be generated for each dimension. In some embodiments, the set representation 1038 can be generated by one or more servers 1022 or by an indexing engine 1026 included in one or more servers 1022. The set representation 1038 can be based at least in part on the presence or absence of candidates (or candidate identifiers 1034) in the dimension. In some embodiments, the set representation 1038 can include a list of candidate array positions that occur in the dimension. For example, where candidates (or candidate identifiers 1034) corresponding to positions 0, 2, 4, and 7 of the candidate array 1036 are present in a dimension, the set representation 1038 for that dimension can be represented as "0247." In some embodiments, the set representation 1038 can include a binary representation of the candidate array positions that occur in the dimension, where a number one indicates a candidate that is present and a number zero indicates a candidate that is not present. For example, where candidates (or candidate identifiers 1034) corresponding to positions 0, 2, 4, and 7 of the candidate array 1036 are present in a dimension, the set representation 1038 for that dimension can be represented as "10101001." The above examples are merely illustrative and are not intended to be limiting. For the sake of clarity, the set representation 1038 can take any alphanumeric form that facilitates representing the presence or absence of candidates (or candidate identifiers 1034) in a dimension.
[0050] The set representation can include one or more representation styles. For example, in an example embodiment, a dimension can include a set of candidates targeted at different geographic locations as shown below.
[0051] candidate North America South America Africa Europe Asia Antarctica Australia 0 X X X X 1 X X X X X 2 X X X X X X X 3 X X 4 X X
[0052] According to some embodiments, the set representation (e.g., ordered set, unordered set, etc.) generated using the above-described dimensions can (1) include each candidate that satisfies the desired characteristic; and / or (2) include an indication of whether a candidate matches or does not match the desired characteristic (e.g., using a binary representation, etc.). For example, the above-described dimensions can be represented in a set representation in one of the following manners as shown below. In some embodiments, always match candidates (or indicators associated with whether the always match candidates satisfy the desired characteristic) can be included in an always match set. In some embodiments, always match candidates (or indicators associated with whether the always match candidates satisfy the desired characteristic) can be included in the set representation.
[0053]
[0054] The ratio label 1040 can be generated by the one or more servers 1022. In some embodiments, the ratio label 1040 can be generated by the indexing engine 1026 included in the one or more servers 1022. The ratio label 1040 can be based on the ratio 1032 associated with the candidate identifier 1034, and can include a time slot number and a total number of time slots in a certain level. In some embodiments, the one or more servers 1022 (or the indexing engine 1026 included therein) can assign a candidate to a certain level based on the ratio 1032 associated with the candidate identifier 1034 of the candidate. For example, a candidate with ratio = 0.75 can be assigned to level = high, while a candidate with ratio = 0.01 can be assigned to level = low. According to some embodiments, the number of time slots included in the level can be based on the ratios associated with the candidates included in the level. For example, a candidate with a higher ratio 1032 (e.g., ratio = 0.75) can be assigned to level = high, which can include fewer time slots than a lower level (e.g., level = low) that is composed of candidates with a lower ratio 1032 (e.g., ratio = 0.01). The ratio label 1032 can be added to the candidate identifier 1034 (or its equivalent, such as a set representation) in the dimension. Overall, the dimension includes in the index 1042. In some embodiments, the index 1042 can include all dimensions generated for all (or multiple) candidates. In other embodiments, the index 1042 can include at least some of the dimensions generated for the candidates. The index 1042 can be stored, for example, in one or more databases (or memory units) associated with the one or more servers 1022.
[0055] Referring now to Figure 4According to some embodiments, the index 1042 (e.g., candidate index) can include one or more dimensions (e.g., first dimension 4090, second dimension 4091, etc.). The one or more dimensions (e.g., first dimension 4090, second dimension 4091, etc.) can be associated with one feature or a combination of features. The one or more dimensions (e.g., first dimension 4090, second dimension 4091, etc.) can include one or more candidate IDs (e.g., first candidate ID 4034, second candidate ID 4093, etc.) and / or, according to some embodiments, a ratio label (e.g., first ratio label 4040, second ratio label 4094, etc.). Each of the candidate IDs (e.g., first candidate ID 4034, second candidate ID 4093, etc.) and the ratio label (e.g., first ratio label 4040, second ratio label 4094, etc.) can be based at least in part on information received from a computing device, such as the first computing device and / or the second computing device. In some embodiments, the ratio label (e.g., first ratio label 4040, second ratio label 4094, etc.) can be based on a ratio.
[0056] The one or more servers 1022 can receive a query 1044 that can be initiated at one or more second computing devices 1024. In some embodiments, the query 1044 can be received at a query engine 1028 included in the one or more servers 1022. The query 1024 can include a request for information. For example, in some embodiments, the query 1024 can include a request for one or more target communications 1036. The query 1024 can include one or more desired features (e.g., first desired candidate feature, second desired candidate feature) of available recipients of target communications or be associated therewith, which can be associated with one or more dimensions. For example, the query 1024 can request target communications for women aged 40-50 years old in Longmont, Colorado (e.g., “gender = female,” “age = 40-50 years old,” and “geolocation = Colorado, Longmont”).
[0057] In response to the query 1024, the one or more servers 1022 of the system 2000 can generate a bitset 1046 including suitable candidates by intersecting the dimensions. In some embodiments, the bitset 1046 can be generated by a query engine 1028 included in the one or more servers 1022. The bitset 1046 can be generated by intersecting one or more dimensions. Continuing the example above, in response to the query 1024 requesting target communications for women aged 40-50 years old in Longmont, Colorado (e.g., “Gender = Female,” “Age = 40-50 years old,” and “Geolocation = Colorado, Longmont”), the one or more servers 1022 (or the query engine 1028 included in the one or more servers 1022) can query the index 1042 for dimensions associated with the features “Gender = Female,” “Age = 40-50 years old,” and “Geolocation = Colorado, Longmont.” Intersecting the dimensions provides a quick identification of all (or multiple) candidates associated with all (or multiple) features of the query. In the example above, the candidate associated with the candidate identifier “abc123” would be a suitable candidate and would be included in the bitset 1046. In some embodiments, the target communications 1036 can be generated based on the bitset 1046. For example, after intersecting the dimensions, the target communications 1036 can be generated for all (or multiple) candidates in the bitset 1046.
[0058] In some embodiments, the one or more servers can determine or generate an ordered set (e.g., a first ordered set, a second ordered set, etc.) in response to the query 1024, which can include an indicator (e.g., a first indicator, a second indicator, etc.) that can indicate whether a candidate or candidate target communication includes a desired candidate feature. According to some embodiments, the position of the indicator in the ordered set can correspond to the position of the candidate in the index 1042 (e.g., the position associated with the candidate identifier). The one or more servers can determine or generate the bitset 1046 (e.g., a result set) based on performing a computation. In some embodiments, the computation can include an intersection computation. The computation can be performed on one or more ordered sets (e.g., a first ordered set, a second ordered set, etc.). In some embodiments, the bitset 1043 (e.g., a result set) can include an indicator associated with a candidate or candidate target communication.
[0059] One or more suitable candidates included in the bit set 1046 (e.g., the result set) can be removed by one or more servers (or query engines 1028 included in one or more servers 1022) based on a corresponding ratio 1032 and / or ratio label 1040. In some embodiments, the bit set 1046 may include a plurality of suitable candidates. Removing some (e.g., one or more) suitable candidates from the bit set 1046 can alleviate the pressure on computing resources by prioritizing candidates with a high ratio 1032 (and the ratio label 1040 associated with the high ratio 1032) over candidates with a low ratio 1032. As mentioned above, the ratio label 1040 may include a level and a slot number, and in some embodiments, the slot number included in the ratio label 1040 may be used to achieve the removal of suitable candidates. For example, if: (1) the candidate identifier “abc123” has a ratio label 1032 that includes level = high and slot number = 4, and (2) candidates with level = high and slot number = 0, 3, 6 and 9 are removed based on ratio label 1040, then (3) the candidate identifier “abc123” will not be removed. However, using the same example, if candidates with level = high and slot number = 0, 4, 8 and 12 are removed based on ratio label 1040, then the candidate identifier “abc123” will be removed from bit set 1046.
[0060] One or more servers may generate target communication based on (1) the candidates remaining in bit set 1046 after removing one or more suitable candidates, (2) for each of the removed suitable candidates, and / or (3) all or part of the suitable candidates included in bit set 1046.
[0061] like Figure 3 As shown, server 3050 may include any combination of processor 3060, memory 3080, input / output (I / O) 3010, and communication center 3015, as well as other elements. As described in embodiments of the invention, each of processor 3060, memory 3080, I / O 3010, and communication center 3015 may include a plurality of corresponding units, subunits, and / or elements. Furthermore, each of processor 3060, memory 3080, I / O 3010, and communication center 3015 may be operatively or otherwise communicatively coupled to each other to facilitate the methods and techniques described herein.
[0062] The processor 3060 can control any one or more of the memory 3080, the I / O 3010, the communication hub 3015, or any other unit that can comprise the server 3050, as well as any sub-unit, element, component, device, or function performed by each or a combination of the memory 3080, the I / O 3010, the communication hub 3015, or any other unit that can comprise the server 3050. Any element or sub-element of the server 3050 presented herein can also be included in any other unit, sub-unit, and device included in the system 2000 in a similar manner. Figure 2 Additionally, any action described herein as being taken by the processor 3060 can be taken by the processor 3060 alone or by the processor 3060 in conjunction with one or more additional processors, units, sub-units, elements, components, devices, etc. Furthermore, although only one processor 3060 can be shown in the diagrams herein, multiple processors 3060 or other parts of the server 3050 in the system can exist or be included in the system 2000. Thus, although individual functions can be described as being carried out by the processor 3060 or various sub-units of the processor 3061, 3062, 3063, 3064, 3065, the functions can be carried out by one or more of the multiple processors 3060 simultaneously, serially, or otherwise. Figure 2 Additionally, although only one processor 3060 can be shown in the diagrams herein, multiple processors 3060 or other parts of the server 3050 in the system can exist or be included in the system. Thus, although instructions can be described as being carried out by the processor 3060 or various sub-units of the processor 3061, 3062, 3063, 3064, 3065, the instructions can be carried out by one or more of the multiple processors 3060 simultaneously, serially, or otherwise.
[0063] In some embodiments, the processor 3060 can be implemented as one or more computer processor (CPU) chips, graphics processor (GPU) chips, or some combination of CPU chips and GPU chips, and can include a hardware device capable of executing computer instructions. The processor 3060 can execute any combination of instructions, code, computer programs, and scripts. The instructions, code, computer programs, and scripts can be received, stored, or received and stored in any combination of memory 3080, I / O 3010, communication hub 3015, sub-units of the previously described elements, other devices, other computing environments, or a combination of any of these. In some embodiments, a non-transitory computer-readable medium comprising code can be provided to perform one or more of the various processes, methods, functions, etc. described herein.
[0064] In some embodiments, the processor 3060 can include sub-units, as well as other elements. The sub-units can include any combination of a profile manager 3061, a content manager 3062, a geo-location probe 3063, a graphics processor 3064, and a resource allocator 3065. Each of these sub-units of the processor 3060 can be communicatively or otherwise operatively coupled to one another.
[0065] The profile manager 3061 can facilitate any combination of the generation, modification, analysis, transmission, and presentation of a user profile associated with a user (e.g., the first user, the second user, etc.). For example, the profile manager 3061 can prompt a user through a first user device or a second user device to register by inputting authentication credentials, personal identifying information, contact information, preferred purchasing habits, locations, or any other information that can be associated with generating a personal profile of the user. The profile manager 3061 can also control or utilize elements of the I / O 3010 to enable a user to take a photograph or a video of themselves or other people. The profile manager 3061 can receive, process, analyze, organize, transform, or any combination of these, any content received from a user or another computing element to generate a user profile of the user that can include any combination of personal information, contact information, user preferences, photographs, videos, audio clips, user activity history, user preferences, user search history, user locations, settings, etc.
[0066] The content manager 3062 can facilitate any combination of the generation, modification, analysis, transmission, and presentation of media content associated with methods and systems for network communication disintermediation. For example, the content manager 3062 can control the environment of applications during the execution of various processes. For the purposes of illustration and not limitation, the media content for which the content manager 3062 can be responsible can include any combination of announcements, images, text, themes, audio files, video files, documents, etc. In some embodiments, the content manager 3062 can also interface with any combination of third party content servers, memory locations, and / or databases.
[0067] The geo-position detector 3063, in particular communication with geo-position information provided, for example, by a GPS subsystem of a user device, can facilitate any combination of the detection, generation, modification, analysis, transmission, and presentation of location information. The location information can include any combination of global positioning system (GPS) coordinates, internet protocol (IP) addresses, media access control (MAC) addresses, geo-location information, addresses, port numbers, zip codes, server numbers, proxy names, proxy numbers, device information, serial numbers, etc. In some embodiments, the geo-position detector 3063 can include any one or a combination of various sensors, specialized hardware elements for enabling the geo-position detector 3063 to acquire, measure, and transform location information.
[0068] A graphics processor (GPU) 3064 can facilitate any combination of generation, modification, analysis, processing, transmission, and rendering of visual content. The GPU 3064 can be configured to render visual content for presentation on a user device and / or analyze visual content to obtain metadata associated with a user or user device. In some embodiments, the visual content can include a display of search results and / or an activatable communication channel. The GPU 3064 can include multiple GPUs and, as such, can be configured to conduct and / or perform multiple processes in parallel.
[0069] A resource allocator 3065 can facilitate any one or combination of determination, monitoring, analysis, and allocation of resources throughout the server 3050, any component of the system 2000, or other computing environment. For example, the resource allocator 3065 can facilitate interactions between the server 3050, any subunit of the server 3050, and a number (e.g., plurality) of users or associated user devices. As such, computing resources of the server 3050, such as processing power, data storage space, network bandwidth, etc., utilized by any one or combination of the processor 3061, the memory 3080, the I / O 3010, the communication hub 3015, and any subunit of these units can be in high demand at various times during operation. Accordingly, the resource allocator 3065 can be configured to manage the allocation of various computing resources as they are needed by particular units or particular subunits of the server 3050.
[0070] In some embodiments, the resource allocator 3065 can include sensors and / or other specialized hardware for monitoring the performance of each unit and / or subunit of the server 3050, as well as hardware for responding to the computing resource needs of each unit or subunit. In some embodiments, the resource allocator 3065 can utilize computing resources of a second computing environment separate and distinct from the server 3050 to facilitate desired operations.
[0071] In some embodiments, factors affecting the allocation of computing resources by the resource allocator 3065 can include the number of ongoing user device connections and / or other communication channel connections, the duration of time that one or more elements of the server 3050 require computing resources, etc. In some embodiments, computing resources can be allocated to and / or distributed among a plurality of second computing environments included in the server 3050 based on one or more of the aforementioned factors. In some embodiments, the allocation of computing resources by the resource allocator 3065 can include one or more of switching a switch, adjusting processing power, adjusting memory size, partitioning memory elements, transferring data, controlling one or more input and / or output devices, modifying various communication protocols, etc. In some embodiments, the resource allocator 3065 can facilitate utilization of parallel processing techniques, such as multiple GPUs included in the processor 3060.
[0072] In some embodiments, the memory 3080 can be used to store, retrieve, receive, transmit, and / or access one or any combination of various files and / or information during operation of the server 3050. The memory 3080 can additionally be used to store, retrieve, and / or update user profile information, among other things. The memory 3080 can include various types of data storage media such as solid-state storage media, hard disk storage media, and any other type of data storage media that can be known to those having ordinary skill in the art. The memory 3080 can include dedicated hardware elements such as hard drives and / or servers, as well as software elements such as cloud-based storage drives. For example, the memory 3080 can include various sub-units such as an operating system unit 3081, an application data unit 3082, an application programming interface (API) unit 3083, a profile storage unit 3084, a content storage unit 3085, a video storage unit 3086, a secure enclave 3087, and / or a cache storage unit 3088.
[0073] The memory 3080 and any sub-units thereof described herein can include any one or any combination of random access memory (RAM), read only memory (ROM), and various forms of auxiliary storage. The RAM can be used for storing volatile data and / or storing instructions that can be executed by the processor 3060. For example, the stored data can be any one or combination of commands, current operating states of the server 3050, intended operating states of the server 3050, and the like. As another example, the data stored in the memory 3080 can include instructions related to the various methods and / or functionality described herein. The ROM can be a non-volatile memory device that can have a smaller memory capacity than the memory capacity of the auxiliary storage. The ROM can be used to store instructions and / or data that can be read during execution of computer instructions. In some embodiments, access to both the RAM and the ROM can be faster than access to the auxiliary storage. The auxiliary storage can include one or more disk drives and / or tape drives, and can be used for non-volatile storage of data, or as an over-flow data storage device, if the RAM is not large enough to hold all working data. The auxiliary storage can be used to store programs which, when executed, cause the various in- processings in the server 3050 to be performed. In some embodiments, the memory 3080 can include one or more databases for storing any data described herein. Additionally or alternatively, one or more auxiliary databases located remotely from the server 3050 can be utilized and / or accessed by the memory 3080.
[0074] The operating system unit 3081 can facilitate the deployment, storage, access, execution, and / or utilization of an operating system utilized by the server 3050 and / or any other computing environment described herein. In some embodiments, the operating system can include various hardware and / or software elements that function as a structural framework for enabling the processor 3060 to perform various operations. The operating system unit 3081 can also store various information and / or data associated with the operation of the operating system and / or the server 3050 as a whole, such as the state of computing resources (e.g., processing power, memory availability, resource utilization, etc.), runtime information, modules for directing the performance of operations described herein, user permissions, security credentials, and the like.
[0075] The application data unit 3082 can facilitate the deployment, storage, access, execution, and / or utilization of application programs utilized by the server 3050 or any other computing environment described herein (e.g., a user device). For example, it can be necessary for a user to download, access, and / or otherwise utilize a software application on a user device, such as a smartphone or other internet-enabled device, in order to perform various operations described herein. As such, the application data unit 3082 can store any information and / or data associated with the application programs that can allow the application programs and / or user devices to perform methods associated with intermediary-free network communications. As such, the information included in the application data unit 3082 can enable a user to perform various operations described herein. The application data unit 3082 can also store various information and / or data associated with the operation of the application programs and / or the server 3050 as a whole, such as the state of computing resources (e.g., processing power, memory availability, resource utilization, etc.), runtime information, modules for directing the performance of operations described herein, user permissions, security credentials, and the like.
[0076] An application programming interface (API) unit 3083 can facilitate the deployment, storage, access, execution, and / or utilization of information associated with APIs of the server 3050 and / or any other computing environment described herein (e.g., a user device). For example, the server 3050 can include one or more APIs for enabling various devices, applications, and / or computing environments to communicate with the server 3050, a plurality of other servers, databases, or other user devices. Accordingly, the API unit 3083 can include API databases containing information that can be accessed and / or utilized by applications and / or operating systems of other devices and / or computing environments associated with network communication intermediaries. The APIs can direct communications between background components of a user device and the server 3050. In some embodiments, each API database can be associated with custom physical circuitry included in the memory unit 3080 and / or the API unit 3083. Additionally, each API database can be public and / or private, thus authentication credentials can be required to access information in the API database.
[0077] A profile storage unit 3084 can facilitate the deployment, storage, access, and / or utilization of information associated with a user profile of a user by the server 3050 and any other computing environment described herein (e.g., a user device). For example, the profile storage unit 3050 can store one or more of contact information, authentication credentials, user preferences, user behavior history, personal information, search history, purchase history, user ratings, and metadata of a user. The profile storage unit 3084 can store images, search history, location history of a user determined by a GPS subsystem of a user device, and the like. In some embodiments, the profile storage unit 3084 can communicate with the profile management unit 3061 to receive and / or transmit information associated with a user profile.
[0078] A content storage unit 3085 can facilitate the deployment, storage, access, and / or utilization of information associated with requested content by the server 3050 and / or any other computing environment described herein (e.g., a user device such as a mobile device). For example, the content storage unit 3085 can store one or more of images, text, video, audio content, advertisements, product listings, user recommendations, and metadata to be presented to a user during operations described herein. In some embodiments, the content storage unit 3085 can communicate with the content management unit 3062 to receive and / or transmit content files.
[0079] The media storage unit 3086 can facilitate one or more of deployment, storage, access, analysis, and utilization of media content by the server 3050 and any other computing environment described herein (e.g., user devices). The media content can be images, videos, audio files, and any other form of communication media. For example, the media storage unit 3086 can store one or more chat histories between a user and other users on the system 2000. Further, the media storage unit 3086 can store one or more searches, results, alerts, etc. generated by the server 3050 or any unit or subunit of a user device. Media content generated or used in performing any of the methods disclosed herein can be stored in the media storage unit 3086 such that the media content can be analyzed by various components of the server 3050 in real-time and at a time after the media content is received. In some embodiments, the media storage unit 3086 can be in communication with the GPU 3064 to facilitate any of the processes described herein. In some embodiments, the media content can include audio, images, text, video feeds, and / or any other media content associated with the methods and systems for intermediary-free network communication.
[0080] The secure enclave 3087 can facilitate secure storage of data. In some embodiments, the secure enclave 3087 can include a partitioned portion of the storage medium included in the memory unit 3080 that is protected by various security measures. For example, the secure enclave 3087 can be hardware-secured. In other embodiments, the secure enclave 3087 can include one or more firewalls, encryption mechanisms, and / or other security-based protocols. Authentication credentials of a user can be required before the user is provided access to data stored within the secure enclave 3087. In some embodiments, the secure enclave 3087 can store sensitive user information, such as credit card data, sensitive personal data, and / or data associated with a person’s location over time.
[0081] The cache storage unit 3088 can facilitate short-term deployment, storage, access, analysis, and / or utilization of data. In some embodiments, the cache storage unit 3088 can be used as a short-term storage location for data such that the data stored in the cache storage unit 3088 can be accessed quickly. In some embodiments, the cache storage unit 3088 can include RAM and / or other storage medium types that enable quick recall of stored data. The cache storage unit 3088 can include a partitioned portion of the storage medium included in the memory 3080.
[0082] The I / O unit 3010 can include hardware and / or software elements for enabling the server 3050 to receive, transmit, and / or present information. For example, elements of the I / O unit 3050 can be used to receive user input from a user via a user device, present results, alerts, or compiled responses to a user via a user device, present suggested matches to a user via a user device, and the like. In this way, the I / O unit 3010 can enable the server 3050 to interface with a human user in a manner that the user can use the methods described herein. As described, the I / O unit 3010 can include sub-units such as one or a combination of I / O devices 3011, I / O calibration unit 3012, and / or media drive 3013.
[0083] The I / O devices 3010 can facilitate any one or any combination of receiving, transmitting, processing, presenting, displaying, inputting, and outputting information as a result of the execution processes described herein. In some embodiments, the I / O devices 3010 can include multiple I / O devices. In some embodiments, the I / O devices 3010 can include one or more elements of any one or combination of user devices, computing systems, server 3050, and similar devices.
[0084] The I / O devices 3011 can include various elements that enable a user to interface with the server 3050. For example, the I / O devices 3011 can include a keyboard, a touchscreen, buttons, sensors, biometric scanners, lasers, microphones, cameras, internet-enabled devices, and / or another element for receiving and / or collecting input from a user. Additionally and / or alternatively, the I / O devices 3011 can include a display, a screen, sensors, a vibrating mechanism, light-emitting diodes (LEDs), a speaker, a radio frequency identification (RFID) scanner, and / or another element for presenting and / or otherwise outputting data to a user. In some embodiments, the I / O devices 3011 can be in communication with one or more elements of the processor 3060 and / or the memory unit 3080 to perform the operations described herein. For example, the I / O devices 3011 can include a display that can present media content stored in the media storage unit 3086 to a user of a user device with the GPU 3064.
[0085] The I / O calibration unit 3012 can facilitate calibration of the I / O device 3011. For example, the I / O calibration unit 3012 can detect and / or determine one or more settings of the I / O device 3011, and then adjust and / or modify the settings so that the I / O device 3011 can operate more efficiently. In some embodiments, the I / O calibration unit 3012 can utilize a media driver 3013 (or multiple media drivers) to calibrate the I / O device 3011. The media driver 3013 can be installed on the user device so that the user device can recognize and / or integrate with the I / O device 30114 and / or enable display, reception, generation of media content, etc. In some embodiments, the I / O device 3011 can be calibrated by the I / O calibration unit 3012 based on information included in the media driver 3013.
[0086] The communication center 3015 can facilitate establishing, maintaining, monitoring, and / or terminating communications between the server 3050 and other devices, such as user devices, other computing environments, third-party server systems, etc. The communication center 3015 can also implement communications between various elements (e.g., units and / or sub-units) of the server 3050 as needed. In some embodiments, the communication center 3015 can include a network protocol unit 3016, an API gateway 3017, an encryption engine 3018, and / or a communication device 3019. The communication center 3015 can include hardware and / or software elements.
[0087] The network protocol unit 3016 can facilitate establishing, maintaining, and / or terminating a communication connection between the server 3050 and another device (e.g., a user device) over a network. For example, the network protocol unit 3016 can detect and / or define communication protocols required for a particular network and / or type of network. The communication protocols used by the network protocol unit 348 can include Wi-Fi protocols, Li-Fi protocols, cellular data network protocols, WiMAX protocols, Ethernet protocols, power-line communication (PLC) protocols, etc. In some embodiments, facilitating communications between the server 3050 and any other device, as well as any elements within the server 3050, can include transforming and / or converting data from being compatible with a first communication protocol to being compatible with a second communication protocol. In some embodiments, the network protocol unit 3016 can determine and / or monitor data traffic volume in order to thus determine which particular network protocol to use to establish a connection with a user device, transfer data, and / or perform other operations described herein.
[0088] The API gateway 3017 can facilitate other devices and / or computing environments' ability to access the API unit 3083 of the memory 3080 of the server 3050. For example, a user device can access the API unit 3083 via the API gateway 3017. In some embodiments, the API gateway 3017 can be required to verify user credentials associated with a user of a user device before providing the user with access to the API unit 3083. The API gateway 3017 can include instructions for enabling the server 3050 to communicate with another device.
[0089] The encryption engine 3018 can facilitate any one or any combination of transformation, encryption, encoding, decryption, and decoding of information received, transmitted, and / or stored by the server 3050. For example, the encryption engine 3018 can encrypt data associated with a user's credit card information, etc. Using the encryption engine, each transmission of data can be encrypted, encoded, and / or transformed for security reasons, and any received data can be encrypted, encoded, and / or transformed before it is processed and / or stored. In some embodiments, the encryption engine 3018 can generate any one or combination of encryption keys, encoding keys, transformation keys, etc., which can be transmitted along with any data content.
[0090] The communication device 3019 can include various hardware and / or software that is specifically intended for enabling communications between the server 3050 and another device (e.g., a user device), as well as communications between elements of the server 3050. In some embodiments, the communication device 3019 can include one or more radio transceivers, chips, analog front end (AFE) units, antennas, processors, memories, other logic, and / or other components to implement communication protocols (wired or wireless) and related functionality for facilitating communications between the server 3050 and any other device. Additionally and / or alternatively, the communication device 3019 can include modems, modem banks, Ethernet devices such as routers or switches, universal serial bus (USB) interface devices, serial interfaces, token ring devices, fiber distributed data interface (FDDI) devices, wireless local area network (WLAN) devices, and / or other devices components, wireless transceiver devices such as code division multiple access (CDMA) devices, global system for mobile communications (GSM) wireless transceiver devices, universal mobile telecommunications system (UMTS) wireless transceiver devices, long term evolution (LTE) wireless transceiver devices, worldwide interoperability for microwave access (WiMAX) devices, and / or another device for communicating purposes.
[0091] Any transmission, reception, connection, or communication can be made using any short range (e.g., Bluetooth, Bluetooth Low Energy, near-field communication, Wi-Fi Direct, etc.) or long range communication mechanisms (e.g., Wi-Fi, cellular, etc.). Additionally or alternatively, any transmission, reception, connection, or communication can be made using wired technology. Any transmission, reception, or communication can be made directly between systems or indirectly via one or more systems, such as a server.
[0092] The present disclosure provides several important technical advantages that would be immediate to one skilled in the art upon reading the present disclosure, drawings, and claims. Moreover, while specific advantages have been enumerated above, various embodiments can include all, some, or none of the enumerated advantages. Any statement or information disclosed in this disclosure can be associated with one or more embodiments.
[0093] While various embodiments according to the disclosed principles have been described above, it should be understood that they have been presented by way of example only, and not limitation. Additionally, any statement herein in the form of a means-plus-function has been presented for purposes of application of 35 U.S.C. § 112(f) to convey the concepts more particularly, and shall not be construed to mean that the limits the scope of claimable subject matter to the specific embodiments presented. Moreover, any reference to "the invention" in the present disclosure is not a reference to a single novel invention or novel subject matter, but refers to multiple inventions and / or novel subject matter.
Claims
1. A method for eliminating or selecting candidate target communications, comprising: One or more computing device processors are used to determine or receive a first candidate identifier, a first target communication transmission ratio, and at least one feature associated with a target communication receiver, wherein the first candidate identifier, the first target communication transmission ratio, and the at least one feature associated with the target communication receiver are associated with the first candidate target communication. The processor of the one or more computing devices is used to determine or receive a second candidate identifier, a second target communication transmission ratio, and at least one feature associated with a target communication receiver, wherein the second candidate identifier, the second target communication transmission ratio, and the at least one feature associated with the target communication receiver are associated with a second candidate target communication. The processor of the one or more computing devices is used to determine or receive a third candidate identifier, a third target communication transmission ratio, and at least one feature associated with a target communication receiver, wherein the third candidate identifier, the third target communication transmission ratio, and the at least one feature associated with the target communication receiver are associated with the third candidate target communication. The one or more computing device processors are used to generate or access candidate indexes, the candidate indexes including: The first dimension includes first-dimensional features associated with the first candidate target communication, first-dimensional features associated with the second candidate target communication, and first-dimensional features associated with the third candidate target communication; and The second dimension includes a second dimension feature associated with the first candidate target communication and a second dimension feature associated with the third candidate target communication, wherein the second candidate target communication does not include the second dimension feature associated with the second candidate target communication; The one or more computing device processors are used to determine or generate a first set, the first set including a first indicator indicating whether the first candidate target communication includes a first expected candidate feature, a second indicator indicating whether the second candidate target communication includes the first expected candidate feature, and a third indicator indicating whether the third candidate target communication includes the first expected candidate feature, wherein the position of the first indicator in the first set corresponds to the position of the first candidate target communication in the candidate index, wherein the position of the second indicator in the first set corresponds to the position of the second candidate target communication in the candidate index, and wherein the position of the third indicator in the first set corresponds to the position of the third candidate target communication in the candidate index, the first expected candidate feature being associated with the first dimension; The one or more computing device processors are used to determine or generate a second set, the second set including a fourth indicator indicating whether the first candidate target communication includes a second expected candidate feature, a fifth indicator indicating whether the second candidate target communication includes the second expected candidate feature, and a sixth indicator indicating whether the third candidate target communication includes the second expected candidate feature, the second expected candidate feature being associated with the second dimension; Using the one or more computing device processors, calculations are performed based on the first set and the second set to determine or generate a result set, the result set including a seventh indicator associated with the first candidate target communication and an eighth indicator associated with the third candidate target communication; and Using the one or more computing device processors, the first candidate target communication is eliminated from the result set based on the first target communication transmission ratio; or, using the one or more computing device processors, the third candidate target communication is selected from the result set based on the third target communication transmission ratio.
2. The method according to claim 1, wherein, The position of the fourth indicator in the second set corresponds to the position of the first candidate target communication in the candidate index, wherein the position of the fifth indicator in the second set corresponds to the position of the second candidate target communication in the candidate index, and wherein the position of the sixth indicator in the second set corresponds to the position of the third candidate target communication in the candidate index.
3. The method according to claim 1, further comprising: The third candidate target is communicated to a user device using one or more computing device processors for display on the user device.
4. The method according to claim 1, wherein, In response to the determination that the second candidate target communication does not include the second dimension feature, the second candidate target communication is included in the always-matching set for the second dimension, such that one or more candidate target communications from the always-matching set are always included in the second set.
5. The method according to claim 1, wherein, In response to determining that the second candidate target communication does not include the second dimension feature, the fifth indicator indicates that the second candidate target communication includes multiple second dimension features.
6. The method according to claim 1, wherein, The first set includes non-binary indicators.
7. The method according to claim 1, wherein, The candidate indices include a candidate array.
8. The method according to claim 1, wherein, The first set includes binary pointers.
9. The method according to claim 1, wherein, The first set, the second set, or the result set includes a ninth indicator, which indicates that the candidate target communication that always matches includes the first expected candidate feature and the second expected candidate feature or is associated with the first expected candidate feature and the second expected candidate feature.
10. A method for eliminating or selecting candidate target communications, comprising: One or more computing device processors are used to determine or receive a first candidate identifier and at least one feature associated with a target communication recipient, the first candidate identifier and the at least one feature associated with the target communication recipient being associated with a first candidate target communication. The processor of the one or more computing devices is used to determine or receive a second candidate identifier and at least one feature associated with a target communication recipient, the second candidate identifier and the at least one feature associated with the target communication recipient being associated with a second candidate target communication; The processor of the one or more computing devices is used to determine or receive a third candidate identifier and at least one feature associated with a target communication recipient, the third candidate identifier and the at least one feature associated with the target communication recipient being associated with a third candidate target communication. The one or more computing device processors are used to generate or access candidate indexes, the candidate indexes including: The first dimension includes first-dimensional features associated with the first candidate target communication, first-dimensional features associated with the second candidate target communication, and first-dimensional features associated with the third candidate target communication; and The second dimension includes a second dimension feature associated with the first candidate target communication and a second dimension feature associated with the third candidate target communication, wherein the second candidate target communication does not include the second dimension feature associated with the second candidate target communication; The one or more computing device processors are used to determine or generate a first set, the first set including a first indicator indicating whether the first candidate target communication includes a first expected candidate feature, a second indicator indicating whether the second candidate target communication includes the first expected candidate feature, and a third indicator indicating whether the third candidate target communication includes the first expected candidate feature, wherein the position of the first indicator in the first set corresponds to the position of the first candidate target communication in the candidate index, wherein the position of the second indicator in the first set corresponds to the position of the second candidate target communication in the candidate index, and wherein the position of the third indicator in the first set corresponds to the position of the third candidate target communication in the candidate index, the first expected candidate feature being associated with the first dimension; The one or more computing device processors are used to determine or generate a second set, the second set including a fourth indicator indicating whether the first candidate target communication includes a second expected candidate feature, a fifth indicator indicating whether the second candidate target communication includes the second expected candidate feature, and a sixth indicator indicating whether the third candidate target communication includes the second expected candidate feature, the second expected candidate feature being associated with the second dimension; Using the one or more computing device processors, calculations are performed based on the first set and the second set to determine or generate a result set, the result set including a seventh indicator associated with the first candidate target communication and an eighth indicator associated with the third candidate target communication; and Using the processor of the one or more computing devices, the first candidate target communication is eliminated or the third candidate target communication is selected from the result set.
11. The method according to claim 10, wherein, The position of the fourth indicator in the second set corresponds to the position of the first candidate target communication in the candidate index, wherein the position of the fifth indicator in the second set corresponds to the position of the second candidate target communication in the candidate index, and wherein the position of the sixth indicator in the second set corresponds to the position of the third candidate target communication in the candidate index.
12. The method of claim 10, further comprising: The third candidate target is communicated to a user device using one or more computing device processors for display on the user device.
13. The method according to claim 10, wherein, In response to the determination that the second candidate target communication does not include the second dimension feature, the second candidate target communication is included in the always-matching set for the second dimension, such that one or more candidate target communications from the always-matching set are always included in the second set.
14. The method of claim 10, wherein, In response to determining that the second candidate target communication does not include the second dimension feature, the fifth indicator indicates that the second candidate target communication includes multiple second dimension features.
15. The method according to claim 10, wherein, The first dimension also includes the first candidate identifier.
16. The method of claim 10, wherein, The first set includes non-binary indicators or binary indicators.
17. The method of claim 10, further comprising: The processor of the one or more computing devices is used to determine or receive a first target communication transmission ratio associated with the first candidate identifier.
18. The method of claim 17, further comprising: Using the processors of the one or more computing devices, a first ratio tag is generated based on the first target communication transmission ratio associated with the first candidate identifier.
19. The method of claim 18, further comprising: Using the processors of the one or more computing devices, the first candidate target communication is eliminated from the result set based on the first ratio label.
20. A system for eliminating or selecting candidate target communications, the system comprising: Memory, which includes instructions; and A processing device configured to execute the instructions, wherein the instructions cause the processing device to perform the following operations: Determine or receive a first candidate identifier and at least one feature associated with a target communication recipient, wherein the first candidate identifier and the at least one feature associated with the target communication recipient are associated with a first candidate target communication; Determine or receive a second candidate identifier and at least one feature associated with a target communication recipient, wherein the second candidate identifier and the at least one feature associated with the target communication recipient are associated with a second candidate target communication; Determine or receive a third candidate identifier and at least one feature associated with a target communication recipient, wherein the third candidate identifier and the at least one feature associated with the target communication recipient are associated with a third candidate target communication; Generate or access candidate indexes, the candidate indexes including: The first dimension includes first-dimensional features associated with the first candidate target communication, first-dimensional features associated with the second candidate target communication, and first-dimensional features associated with the third candidate target communication; and The second dimension includes a second dimension feature associated with the first candidate target communication and a second dimension feature associated with the third candidate target communication, wherein the second candidate target communication does not include the second dimension feature associated with the second candidate target communication; A first set is determined or generated, the first set including a first indicator indicating whether the first candidate target communication includes a first expected candidate feature, a second indicator indicating whether the second candidate target communication includes the first expected candidate feature, and a third indicator indicating whether the third candidate target communication includes the first expected candidate feature, the first expected candidate feature being associated with the first dimension, wherein the position of the first indicator in the first set corresponds to the position of the first candidate target communication in the candidate index, wherein the position of the second indicator in the first set corresponds to the position of the second candidate target communication in the candidate index, and wherein the position of the third indicator in the first set corresponds to the position of the third candidate target communication in the candidate index; A second set is determined or generated, the second set including a fourth indicator indicating whether the first candidate target communication includes a second expected candidate feature, a fifth indicator indicating whether the second candidate target communication includes the second expected candidate feature, and a sixth indicator indicating whether the third candidate target communication includes the second expected candidate feature, the second expected candidate feature being associated with the second dimension; A result set is determined or generated based on calculations performed on the first set and the second set, the result set including a seventh indicator associated with the first candidate target communication and an eighth indicator associated with the third candidate target communication; and Eliminate the first candidate target communication from the result set or select the third candidate target communication.
Citation Information
Patent Citations
Identifying query aspects
CN102349072A
Suggestion of queries based on group association of user
CN108027817A