Detailed Description
Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present disclosure are shown in the drawings, it is to be understood that the disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the disclosure are for illustration purposes only and are not intended to limit the scope of the disclosure.
It should be noted that, for convenience of description, only the portions related to the related invention are shown in the drawings. The embodiments and features of the embodiments in the present disclosure may be combined with each other without conflict.
It should be noted that the terms "first", "second", and the like in the present disclosure are only used for distinguishing different devices, modules or units, and are not used for limiting the order or interdependence relationship of the functions performed by the devices, modules or units.
It is noted that references to "a", "an", and "the" modifications in this disclosure are intended to be illustrative rather than limiting, and that those skilled in the art will recognize that "one or more" may be used unless the context clearly dictates otherwise.
The names of messages or information exchanged between devices in the embodiments of the present disclosure are for illustrative purposes only, and are not intended to limit the scope of the messages or information.
The present disclosure will be described in detail below with reference to the accompanying drawings in conjunction with embodiments.
Fig. 1 is an exemplary system architecture 100 of a recommendation method or recommendation device according to some embodiments of the present disclosure.
As shown in fig. 1, the system architecture 100 may include a data bus 101 and deduplication system 102, a recall system 103, a merge system 104, and a cull system 105. Each system can exchange data with the data bus 101. Specifically, the execution subject of the recommendation method is generally a recommendation system composed of a data bus 101, a deduplication system 102, a recall system 103, a merge system 104, and a fine ranking system 105.
The data bus 101 may be hardware or software. When hardware, it may be a common communications backbone for transmitting data. Specifically, it may be a transmission line bundle composed of wires. When it is software, it may be a software module, code, function or variable, etc. for implementing a data sharing or exchanging method.
The deduplication system 102, the recall system 103, the merge system 104, and the fine sort system 105 may be hardware or software. When hardware, it may be various electronic devices or processing units supporting data processing, including but not limited to servers, Central Processing Units (CPUs), and the like. The system may be implemented as a distributed cluster of multiple electronic devices or processing units, or as a single electronic device or processing unit, as desired for implementation. When it is software, it may be a software module, code, function, variable, or the like for implementing processing of calculation or the like. It may be implemented, for example, as multiple software or software modules to provide distributed services, or as a single software or software module. And is not particularly limited herein.
The various systems may be organized by directed acyclic graphs. By way of example, fig. 2 illustrates an exemplary Directed Acyclic Graph (DAG) for organizing a deduplication system 202, a recall system 203, a merge system 204, and a refinement system 205. The recommendation request processing is completed by organizing each system through the directed acyclic graph, so that the recommendation request processing is more efficient, and the effect is better. Dependencies between the various systems can be represented by a DAG graph. For example, the fine line system 204 shown in FIG. 2 performs in dependence on the output of the merge system 203.
It should be understood that the number of data buses and the various systems in FIG. 1 are illustrative only. There may be any number of data buses and individual systems, as desired for the implementation.
With continued reference to fig. 3, a flow 300 of some embodiments of a recommendation method according to the present disclosure is shown. The recommendation method comprises the following steps:
step 301, in response to receiving a recommendation request, obtaining dynamic configuration information and at least one recommendation candidate information set from a data bus according to the recommendation request.
In some embodiments, the execution subject may receive a recommendation request sent from a client or other electronic device or processing unit. When the execution main body receives a recommendation request, the data bus may obtain dynamic configuration information and at least one recommendation candidate information set, where the dynamic configuration information includes reconfiguration canceling information, recall configuration information, merge configuration information, and fine configuration information.
In practice, recommendation requests vary from application scenario to application scenario or from task to task. Taking a video recommendation scene as an example, some video recommendation applications may recommend related videos according to the preference of the user and the like. When a user launches or refreshes in an application, a recommendation request may be considered submitted. Taking a news recommendation scene as an example, some news recommendation applications can recommend related news according to information such as a user's history. When a user launches or refreshes in an application, a recommendation request may be considered submitted.
Here, the dynamic configuration information may be different according to an application scenario or a task to be performed. As an example, when the application scene is a deduplication scene in a video recommendation, the dynamic configuration information may be a deduplication mode of the deduplication system.
As another example, when the application scene is a top-ranked scene in video recommendation, the dynamic configuration information may be a scoring manner of the top-ranked system on the candidate information. The scoring described above may be various mappings, arithmetic functions, and so on, as examples.
The recommendation candidate information set described above generally differs depending on the application scenario or the task performed. For example, when the application scenario is a news recommendation scenario, when the browsing history of the user is usually entertainment news, the recommendation candidate information set is usually an information set composed of some entertainment information or news.
And 302, performing deduplication on recommended candidate information sets in the at least one recommended candidate information set based on the deduplication information to obtain at least one deduplication candidate information set.
In some embodiments, the executing body may determine a deduplication manner for the at least one recommended candidate information set and perform deduplication on the at least one recommended candidate information set based on the deduplication information, so as to obtain a deduplication candidate information set. The duplication elimination generally means eliminating duplicate recommended information existing in the recommended candidate information set or eliminating duplicate candidate information existing in the recommended candidate information set and the viewing history of the user. Here, the above-described weight reduction method may be various. Specifically, in response to that the object targeted by the deduplication method is a plurality of pieces of text, the deduplication method may be to determine similarity of the plurality of pieces of text and remove text with higher similarity to complete deduplication.
Here, the repetition generally includes repetition in two dimensions, including a time dimension and a similar dimension. The time dimension generally refers to a specified repetition range, such as title repetition, content repetition, or picture repetition. The time dimension generally refers to a time repetition range, for example, repetition of a history and a recommendation candidate information set within a certain time of a user.
And 303, recalling the deduplication candidate information sets in the at least one deduplication candidate information set based on the recall configuration information to obtain at least one recall candidate information set.
In some embodiments, the executing entity may recall the deduplication candidate information sets in the at least one deduplication candidate information set based on the recall configuration information to obtain at least one recall candidate information set. Specifically, the recall configuration information may be a recall manner of the recall system for the deduplication candidate information set. Specifically, the recall method may be various mappings, operation functions, and the like.
Here, the recall generally refers to retrieving a batch of information to be recommended from a target data source for a user according to historical behavior data of the user.
And 304, integrating at least one recall candidate information set based on the merging configuration information to obtain a merging candidate information set.
In some embodiments, the execution subject may integrate the at least one recall candidate information set into a merged candidate information set based on the merged configuration information.
Here, the merging generally refers to merging at least one recall candidate information set into a merged candidate information set. The merged configuration information may be an integration method for integrating the execution subjects. As an example, the execution subject described above may give a weight to the recall candidate information in each recall candidate information set, and then remove recall candidate information whose weight is lower than a predetermined threshold value at the time of merging, and merge the remaining recall candidate information into the merged candidate information set.
And 305, scoring the candidate information in the merged candidate information set based on the refined configuration information and determining a recommendation information set from the merged candidate information set according to a scoring result.
In some embodiments, the execution subject may score candidate information in the merge candidate information set based on the fine-ranking configuration information and determine a recommendation information set from the merge candidate information set according to a scoring result. As an example, the execution subject may determine a scoring manner of the candidate information based on the refined configuration information and score the candidate information using the scoring manner. For example, the candidate information may be scored according to the number of occurrences of the keyword in the history information of the user in the candidate information. Then, candidate information having a score higher than a predetermined threshold is determined as the recommended information set.
In some optional implementations of some embodiments, the method further comprises: recording and storing at least one of: the recommendation request, the recommendation information set, the recommendation candidate information set, the deduplication candidate information set, the recall candidate information set or the merging candidate information set.
In some optional implementations of some embodiments, the dynamic configuration information may be obtained by fusing local static configuration, contrast test parameters, and degradation parameters. The comparison test may also be referred to as an a/B test. The degradation can be that under the condition that the service pressure is increased sharply, some services are not processed or processed in a simple mode according to the actual service condition and flow, so that service resources are released to ensure the normal operation or the efficient operation of the core service.
In practice, the comparative test parameters and degradation parameters may be defaulted. As an example, for a situation where there is a local static configuration and contrast test parameters, the local static configuration may be overridden with the contrast test parameters, resulting in dynamic configuration information. In the process, the contrast test function is realized by fusing the contrast test parameters. In addition, by fusing the degradation parameters, service degradation in special scenarios (e.g., excessive traffic) can be achieved.
In some optional implementation manners of some embodiments, feature extraction may be performed on the candidate information in the merged candidate information set to obtain features of the candidate information. As an example, when the candidate information is an article, the feature may be a keyword, a stop word, or the like in the article. When the candidate information is a picture, the feature may be definition of the picture, content of the picture, or the like. Then, for the characteristics of each candidate information in the merged candidate information set, inputting the characteristics to at least one characteristic scoring model trained in advance to obtain at least one scoring result of the candidate information corresponding to the characteristics, and fusing the at least one scoring result into a final scoring result. Here, the scoring described above will typically use different scoring strategies for different users. Specifically, the scoring policy generally refers to how to score a certain user. As an example, the scoring policy for candidate information for user a may be to use an a-feature scoring model and a B-feature scoring model, and the scoring policy for candidate information for user B may be to use an X-feature scoring model and a Y-feature scoring model. Here, the feature scoring model may be a correspondence table based on statistically obtained features and scores. As an example, the execution subject may retrieve the same or similar features from the correspondence table according to the extracted features as input, and output the scoring result corresponding to the same or similar features. The merging of the at least one scoring result into the final scoring result may be performed by averaging the at least one scoring result, and so on.
And determining a recommendation information set from the merged candidate information set according to the final scoring result of the candidate information in the merged candidate information set.
Some embodiments of the present disclosure provide a recommendation method. The modification of the system processing mode can be completed by modifying the dynamic configuration information, and the multiplexing of the same system among different recommendation services is realized. When a new recommended service exists, the dynamic configuration information can be directly modified to meet the processing requirements of different recommended services on different scenes, and subsequent development and modification are facilitated.
With further reference to fig. 4, as an implementation of the methods shown in the above figures, the present disclosure provides some embodiments of a recommendation device, which correspond to those of the method embodiments shown in fig. 3, and which may be applied in various electronic devices in particular.
As shown in fig. 4, the recommendation device 400 of some embodiments includes: acquisition unit 401, deduplication unit 402, recall unit 403, merging unit 404, and determination unit 405. The obtaining unit 401 is configured to, in response to receiving a recommendation request, obtain dynamic configuration information and at least one recommendation candidate information set from the data bus according to the recommendation request, where the dynamic configuration information includes cancellation configuration information, recall configuration information, merge configuration information, and fine configuration information. A deduplication unit 402, configured to perform deduplication on a recommended candidate information set in the at least one recommended candidate information set based on the deduplication information, so as to obtain at least one deduplication candidate information set. A recalling unit 403 configured to recall the deduplication candidate information sets in the at least one deduplication candidate information set based on the recall configuration information to obtain at least one recall candidate information set. The merging unit 404 is configured to e integrate the at least one recall candidate information set based on the merging configuration information to obtain a merging candidate information set. A determining unit 405 configured to score the candidate information in the merge candidate information set based on the refined configuration information and determine a recommendation information set from the merge candidate information set according to a scoring result.
In some embodiments, specific implementations of the obtaining unit 401, the deduplication unit 402, the recall unit 403, the merging unit 404 and the determining unit 405 and technical effects brought by the specific implementations may refer to step 301 and step 305 in those embodiments corresponding to fig. 3, and are not described herein again.
In an optional implementation manner of some embodiments, the dynamic configuration information is obtained based on a fusion of a local static configuration, a contrast test parameter, and a degradation parameter.
In an optional implementation manner of some embodiments, the method further includes the step of configuring, by the storage unit, to: recording and storing at least one of: the recommendation request, the recommendation information set, the recommendation candidate information set, the deduplication candidate information set, the recall candidate information set or the merging candidate information set.
In an optional implementation manner of some embodiments, the determining unit 405 is further configured to: extracting the characteristics of the candidate information in the merged candidate information set to obtain the characteristics of the candidate information; for the characteristics of each candidate information in the merged candidate information set, inputting the characteristics to at least one characteristic scoring model trained in advance to obtain at least one scoring result of the candidate information corresponding to the characteristics and fusing the at least one scoring result into a final scoring result; and determining a recommendation information set from the merged candidate information set according to the final scoring result of the candidate information in the merged candidate information set.
Some embodiments of the present disclosure provide a recommendation method. The modification of the system processing mode can be completed by modifying the dynamic configuration information, and the multiplexing of the same system among different recommendation services is realized. When a new recommended service exists, the dynamic configuration information can be directly modified to meet the processing requirements of different recommended services on different scenes, and subsequent development and modification are facilitated.
Referring now to FIG. 5, a block diagram of an electronic device 500 suitable for use in implementing some embodiments of the present disclosure is shown. The electronic device in some embodiments of the present disclosure may include, but is not limited to, a mobile terminal such as a mobile phone, a notebook computer, a digital broadcast receiver, a PDA (personal digital assistant), a PAD (tablet computer), a PMP (portable multimedia player), a vehicle-mounted terminal (e.g., a car navigation terminal), and the like, and a stationary terminal such as a digital TV, a desktop computer, and the like. The electronic device shown in fig. 5 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present disclosure.
As shown in fig. 5, electronic device 500 may include a processing means (e.g., central processing unit, graphics processor, etc.) 501 that may perform various appropriate actions and processes in accordance with a program stored in a Read Only Memory (ROM)502 or a program loaded from a storage means 508 into a Random Access Memory (RAM) 503. In the RAM503, various programs and data necessary for the operation of the electronic apparatus 500 are also stored. The processing device 501, the ROM 502, and the RAM503 are connected to each other through a bus 504. An input/output (I/O) interface 505 is also connected to bus 504.
Generally, the following devices may be connected to the I/O interface 505: input devices 506 including, for example, a touch screen, touch pad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; output devices 507 including, for example, a Liquid Crystal Display (LCD), speakers, vibrators, and the like; storage devices 508 including, for example, magnetic tape, hard disk, etc.; and a communication device 509. The communication means 509 may allow the electronic device 500 to communicate with other devices wirelessly or by wire to exchange data. While fig. 5 illustrates an electronic device 500 having various means, it is to be understood that not all illustrated means are required to be implemented or provided. More or fewer devices may alternatively be implemented or provided. Each block shown in fig. 5 may represent one device or may represent multiple devices as desired.
In particular, according to some embodiments of the present disclosure, the processes described above with reference to the flow diagrams may be implemented as computer software programs. For example, some embodiments of the present disclosure include a computer program product comprising a computer program embodied on a computer readable medium, the computer program comprising program code for performing the method illustrated in the flow chart. In some such embodiments, the computer program may be downloaded and installed from a network via the communication means 509, or installed from the storage means 508, or installed from the ROM 502. The computer program, when executed by the processing device 501, performs the above-described functions defined in the methods of some embodiments of the present disclosure.
It should be noted that the computer readable medium described above in some embodiments of the present disclosure may be a computer readable signal medium or a computer readable storage medium or any combination of the two. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In some embodiments of the disclosure, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In some embodiments of the present disclosure, however, a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: electrical wires, optical cables, RF (radio frequency), etc., or any suitable combination of the foregoing.
In some embodiments, the clients, servers may communicate using any currently known or future developed network protocol, such as HTTP (HyperText transfer protocol), and may be interconnected with any form or medium of digital data communication (e.g., a communications network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), the Internet (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future developed network.
The computer readable medium may be embodied in the electronic device; or may exist separately without being assembled into the electronic device. The computer readable medium carries one or more programs which, when executed by the electronic device, cause the electronic device to: in response to receiving a recommendation request, acquiring dynamic configuration information and at least one recommendation candidate information set from the data bus according to the recommendation request, wherein the dynamic configuration information comprises reconfiguration canceling information, recall configuration information, merging configuration information and fine scheduling configuration information; performing duplicate elimination on recommended candidate information sets in the at least one recommended candidate information set based on the duplicate elimination configuration information to obtain at least one duplicate elimination candidate information set; recalling the deduplication candidate information sets in the at least one deduplication candidate information set based on the recall configuration information to obtain at least one recall candidate information set; integrating the at least one recall candidate information set based on the merging configuration information to obtain a merging candidate information set; and scoring the candidate information in the merging candidate information set based on the refined configuration information and determining a recommendation information set from the merging candidate information set according to a scoring result.
Computer program code for carrying out operations for embodiments of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The units described in some embodiments of the present disclosure may be implemented by software, and may also be implemented by hardware. The described units may also be provided in a processor, and may be described as: a processor includes an acquisition unit, a deduplication unit, a recall unit, a merging unit, and a determination unit. The names of the units do not form a limitation on the units themselves in some cases, for example, the obtaining unit may be further described as a "unit that obtains the dynamic configuration information and the at least one recommendation candidate information set from the data bus according to the recommendation request in response to receiving the recommendation request".
The functions described herein above may be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field Programmable Gate Arrays (FPGAs), application specific information integrated circuits (ASICs), Application Specific Standard Products (ASSPs), systems on a chip (SOCs), Complex Programmable Logic Devices (CPLDs), and the like.
According to one or more embodiments of the present disclosure, there is provided a recommendation method including: in response to receiving a recommendation request, acquiring dynamic configuration information and at least one recommendation candidate information set from the data bus according to the recommendation request, wherein the dynamic configuration information comprises reconfiguration canceling information, recall configuration information, merging configuration information and fine scheduling configuration information; performing duplicate elimination on recommended candidate information sets in the at least one recommended candidate information set based on the duplicate elimination configuration information to obtain at least one duplicate elimination candidate information set; recalling the deduplication candidate information sets in the at least one deduplication candidate information set based on the recall configuration information to obtain at least one recall candidate information set; integrating the at least one recall candidate information set based on the merging configuration information to obtain a merging candidate information set; and scoring the candidate information in the merging candidate information set based on the refined configuration information and determining a recommendation information set from the merging candidate information set according to a scoring result.
According to one or more embodiments of the present disclosure, the dynamic configuration information is obtained based on a local static configuration, a contrast test parameter, and a degradation parameter fusion.
According to one or more embodiments of the present disclosure, the method further includes recording and storing at least one of the following items: the recommendation request, the recommendation information set, the recommendation candidate information set, the deduplication candidate information set, the recall candidate information set or the merging candidate information set.
According to one or more embodiments of the present disclosure, scoring the candidate information in the merged candidate information set based on the refined configuration information and determining a recommended information set from the merged candidate information set according to a scoring result includes: extracting the characteristics of the candidate information in the merged candidate information set to obtain the characteristics of the candidate information; for the characteristics of each candidate information in the merged candidate information set, inputting the characteristics to at least one characteristic scoring model trained in advance to obtain at least one scoring result of the candidate information corresponding to the characteristics and fusing the at least one scoring result into a final scoring result; and determining a recommendation information set from the merged candidate information set according to the final scoring result of the candidate information in the merged candidate information set.
According to one or more embodiments of the present disclosure, there is provided a recommendation apparatus including: an obtaining unit configured to, in response to receiving a recommendation request, obtain dynamic configuration information and at least one recommendation candidate information set from the data bus according to the recommendation request, where the dynamic configuration information includes reconfiguration canceling information, recall configuration information, merge configuration information, and fine scheduling configuration information; a deduplication unit configured to perform deduplication on recommended candidate information sets in the at least one recommended candidate information set based on the deduplication reconfiguration information to obtain at least one deduplication candidate information set: a recall unit configured to recall the deduplication candidate information sets in the at least one deduplication candidate information set based on the recall configuration information to obtain at least one recall candidate information set; a merging unit configured to integrate the at least one recall candidate information set based on the merging configuration information to obtain a merged candidate information set; a determination unit configured to score candidate information in the merge candidate information set based on the refined configuration information and determine a recommendation information set from the merge candidate information set according to a scoring result.
In an optional implementation manner of some embodiments, the dynamic configuration information is obtained based on a fusion of a local static configuration, a contrast test parameter, and a degradation parameter.
In an optional implementation manner of some embodiments, the method further includes the step of configuring, by the storage unit, to: recording and storing at least one of: the recommendation request, the recommendation information set, the recommendation candidate information set, the deduplication candidate information set, the recall candidate information set or the merging candidate information set.
In an optional implementation of some embodiments, the determining unit is further configured to: extracting the characteristics of the candidate information in the merged candidate information set to obtain the characteristics of the candidate information; for the characteristics of each candidate information in the merged candidate information set, inputting the characteristics to at least one characteristic scoring model trained in advance to obtain at least one scoring result of the candidate information corresponding to the characteristics and fusing the at least one scoring result into a final scoring result; and determining a recommendation information set from the merged candidate information set according to the final scoring result of the candidate information in the merged candidate information set.
According to one or more embodiments of the present disclosure, there is provided an electronic device including: one or more processors; a storage device having one or more programs stored thereon which, when executed by one or more processors, cause the one or more processors to implement a method as in any above.
According to one or more embodiments of the present disclosure, a computer-readable medium is provided, on which a computer program is stored, wherein the program, when executed by a processor, implements the method as any one of the above.
The foregoing description is only exemplary of the preferred embodiments of the disclosure and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the invention in the embodiments of the present disclosure is not limited to the specific combination of the above-mentioned features, but also encompasses other embodiments in which any combination of the above-mentioned features or their equivalents is made without departing from the inventive concept as defined above. For example, the above features and (but not limited to) technical features with similar functions disclosed in the embodiments of the present disclosure are mutually replaced to form the technical solution.