Recommended method, apparatus, device and system
By collecting user behavior data for object sampling and multiple rounds of data updates, the problems of recommendation quality and real-time performance under large-scale sets of objects to be recommended are solved, achieving efficient recommendation services and improving user experience and the richness of objects.
Patent Information
- Application Number
- CN202011120283.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-10-19
- Publication Date
- 2025-12-30
- Estimated Expiration
- 2040-10-19
AI Technical Summary
Existing technologies struggle to guarantee recommendation quality and real-time performance when faced with large-scale sets of objects to be recommended, and are unable to effectively handle recommendation services for large-scale object sets.
By determining the set of objects to be recommended, collecting user behavior data for object sampling, determining the recommendation acceptance based on the user behavior data, and reducing the computational load of a single update based on a multi-round data update method, the recommendation acceptance is ensured to be updated in all objects.
It improves recommendation quality on large-scale object sets, provides expected recommendation results, enhances user experience, and increases the richness and scalability of recommended objects.
Smart Images

Figure CN114385896B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of personalized service technology, specifically to recommendation systems, methods and apparatus, and electronic devices. Background Technology
[0002] Recommendation services, as an important means of personalized services, are used in various application scenarios. With the widespread adoption of recommendation services, more and more of them are being applied to practical use through internet technology to provide consumers with personalized functional services and generate a better service experience.
[0003] In a typical recommendation service based on Internet technology, a set of objects to be recommended is first determined through a certain method. Then, the recommendation acceptance of the objects to be recommended is updated based on real-time user feedback data. When a user request is received, objects are recommended to the user based on the latest recommendation acceptance.
[0004] However, in the process of realizing this invention, the inventors discovered that the above-mentioned technical solutions all have at least the following problems: With the widespread application of recommendation services, the number of objects to be recommended is increasing. While providing personalized service experiences, this also places higher demands on the capabilities of recommendation services, namely, ensuring high recommendation quality and real-time performance even when faced with a large-scale set of objects to be recommended. Current recommendation services mainly target a limited or small number of online objects to be recommended, and the recommendation acceptance processing methods in these services cannot support the online acquisition of large-scale sets of objects to be recommended. In summary, how to implement a recommendation system under a large-scale set of objects to be recommended, ensuring high recommendation quality and real-time performance, meeting user needs, and improving user experience, has become an urgent problem to be solved by those skilled in the art. Summary of the Invention
[0005] This application provides a recommendation method to address the problems of low recommendation quality and real-time performance in existing technologies when dealing with large sets of objects to be recommended. This application also provides a recommendation system and apparatus, as well as electronic equipment.
[0006] This application provides a recommended method, including:
[0007] Determine the set of objects to be recommended;
[0008] If user behavior data is collected, then sample objects from the object set;
[0009] Based on user behavior data, determine the acceptance level of the sampled objects for recommendations;
[0010] Based on the recommendation acceptance rate, the recommended objects are determined.
[0011] Optionally, the method further includes:
[0012] Determine the recommendation needs of the target users;
[0013] Based on the recommendation requirements information, select at least one object from the object set that meets the recommendation requirements;
[0014] The step of determining the recommended object based on the recommendation acceptance rate includes:
[0015] Based on the recommendation acceptance level, a recommended object is determined from at least one object.
[0016] Optionally, the determination of the target user's recommendation needs information includes:
[0017] Send recommendation request information to the target user's client;
[0018] Receive recommendation information sent by the client.
[0019] Optionally, the sampling of objects from the object set includes:
[0020] If the sampling processing conditions are met, objects are sampled from the object set, and the recommendation acceptance of the sampled objects is determined based on user behavior data.
[0021] The method further includes:
[0022] If the conditions are not met, the acceptance level of the recommended object is determined based on user behavior data.
[0023] Optionally, the condition includes: the number of objects to be recommended reaches a certain threshold.
[0024] Optional, also includes:
[0025] The number of samples is determined based on the number of objects to be recommended;
[0026] The objects sampled from the object set include:
[0027] Based on the stated sampling quantity, objects are sampled from the object set. Optionally, the method further includes:
[0028] Based on the object set, construct object index data;
[0029] The objects sampled from the object set include:
[0030] Based on the index data, the sampling object is selected.
[0031] Optionally, determining the recommendation acceptance of the sampled object based on user behavior data includes:
[0032] Determine user behavior statistics based on user behavior data;
[0033] The acceptance rate of the recommendation is determined based on the statistical data.
[0034] Optionally, the objects include: video objects, product objects, advertising objects, and design materials.
[0035] Optionally, the object is a video object;
[0036] The user behavior data includes at least one of the following: the video object being played, and the duration of the video object being watched;
[0037] The determination of the set of objects to be recommended includes:
[0038] Identify the set of videos to be recommended across multiple channels;
[0039] The step of determining the recommendation acceptance of the sampled object based on user behavior data includes:
[0040] Based on user behavior data, determine the user behavior statistics of the video object;
[0041] The acceptance rate of the recommendation is determined based on the statistical data.
[0042] The statistical data includes at least one of the following: video exposure count, user click count, total user viewing time, and average user viewing time.
[0043] Optional, also includes:
[0044] Obtain new product video targets;
[0045] New product videos will be used as the target videos for recommendation.
[0046] This application also provides a recommended device, comprising:
[0047] The unit for determining objects to be recommended is used to determine the set of objects to be recommended.
[0048] An object sampling unit is used to sample objects from an object set if user behavior data is collected.
[0049] The recommendation acceptance determination unit is used to determine the recommendation acceptance of the sampled object based on user behavior data.
[0050] The object recommendation determination unit is used to determine the recommended objects based on the recommendation acceptance level.
[0051] This application also provides an electronic device, including:
[0052] Processor and memory;
[0053] The memory stores a program for implementing the recommendation method. After the device is powered on and the program for the method is run by the processor, the following steps are performed: determining a set of objects to be recommended; if user behavior data is collected, sampling objects from the set; determining the recommendation acceptance of the sampled objects based on the user behavior data; and determining the recommended objects based on the recommendation acceptance.
[0054] This application also provides a recommendation system, including:
[0055] The server is used to determine the set of objects to be recommended; if user behavior data is collected, it samples objects from the set; based on the user behavior data, it determines the recommendation acceptance of the sampled objects; and it receives object recommendation requests sent by the client, determines the recommended objects based on the recommendation acceptance; and sends the recommended objects to the client.
[0056] The client is used to display recommended objects.
[0057] This application also provides a recommendation system, including:
[0058] The server is used to determine a first set of objects to be recommended; if the number of objects in the first set of objects to be recommended is greater than a preset number, a second set of objects to be recommended is selected from the first set of objects to be recommended; if user behavior data is collected, the recommendation acceptance of the objects in the second set of objects to be recommended is determined based on the user behavior data; and, the server receives object recommendation requests sent by the client, determines the recommended objects from the second set of objects to be recommended based on the recommendation acceptance; and sends the recommended objects to the client.
[0059] The client is used to display recommended objects.
[0060] This application also provides a computer-readable storage medium storing instructions that, when executed on a computer, cause the computer to perform the various methods described above.
[0061] This application also provides a computer program product including instructions that, when run on a computer, cause the computer to perform the various methods described above.
[0062] Compared with the prior art, this application has the following advantages:
[0063] The recommendation method provided in this application involves: determining a set of objects to be recommended; sampling objects from the set if user behavior data is collected; determining the recommendation acceptance of the sampled objects based on the user behavior data; and determining the recommended objects based on the recommendation acceptance. This multi-round data update approach ensures that the recommendation acceptance of almost all objects within the entire set of objects to be recommended is updated during the recommendation process. This satisfies the need to update recommendation acceptance while reducing the computational load of a single update through batch updates, thereby achieving the desired decision results even with a large-scale object set. Furthermore, this approach selects recommended objects from all objects to be recommended, effectively increasing the richness of recommended objects and providing users with expected recommendation results, thus improving user experience. In addition, this approach allows for the continuous expansion of the categories and number of recommended objects, effectively improving object scalability.
[0064] The recommendation system provided in this application determines a first set of objects to be recommended; if the number of objects in the first set exceeds a preset number, a second set of objects to be recommended is selected from the first set; if user behavior data is collected, the recommendation acceptance rate of objects in the second set is determined based on the user behavior data; and the system receives object recommendation requests sent by clients and determines recommended objects from the second set of objects to be recommended based on the recommendation acceptance rate. By selecting a portion of a large-scale online set of objects to be recommended for relevance recommendation—for example, given 100,000 video objects to be recommended, 10,000 video objects can be selected for relevance recommendation—the real-time nature of object recommendation can be effectively ensured. Attached Figure Description
[0065] Figure 1 This application provides a schematic diagram of the structure of an embodiment of a recommendation system;
[0066] Figure 2 This application provides a schematic diagram of a scenario for an embodiment of a recommendation system;
[0067] Figure 3 This application provides a flowchart illustrating an embodiment of a recommended method;
[0068] Figure 4 A detailed flowchart illustrating an embodiment of a recommended method provided in this application;
[0069] Figure 5 This application provides a schematic diagram of an embodiment of a recommended device. Detailed Implementation
[0070] Many specific details are set forth in the following description to provide a full understanding of this application. However, this application can be implemented in many other ways different from those described herein, and those skilled in the art can make similar extensions without departing from the spirit of this application; therefore, this application is not limited to the specific embodiments disclosed below.
[0071] This application provides recommended methods, apparatus, and systems, as well as electronic devices. Each of these methods is described in detail in the following embodiments.
[0072] It should be noted that, in order to more intuitively illustrate the application scenarios of the recommendation scheme provided in this application, the recommendation system will be described first, and then the method and its preferred implementation will be described in detail below.
[0073] First Embodiment
[0074] Please refer to Figure 1 This is a schematic diagram illustrating the structure of an embodiment of the recommendation system of this application. The recommendation system provided in this embodiment includes: a client 1, a first server 2, and a second server 3.
[0075] The client 1 includes, but is not limited to, mobile communication devices, namely, mobile phones or smartphones, as well as terminal devices such as personal computers, smart TVs, PADs, and iPads.
[0076] The first server 1 can be an e-commerce platform server, a video website server, a smart speaker server, etc. The second server 2 can be a server that provides recommendation and decision-making services for e-commerce websites, video websites, etc. The second server 2 can also be called an Online Learning and Decision (OLAD) system.
[0077] Please refer to Figure 2 This is a schematic diagram illustrating an embodiment of the recommendation system of this application. Client 1, first server 2, and second server 3 can be connected via a network, such as the client connecting via Wi-Fi. In this embodiment, the first server determines a set of objects to be recommended and sends this set to the second server; the second server collects user behavior data of the objects, and samples objects from the object set when user behavior data is collected; based on the user behavior data, it determines the recommendation acceptance of the sampled objects; the first server also receives object recommendation requests sent by the client, and through the second server, determines the recommended objects based on the recommendation acceptance; the recommended objects are sent to the client, and the client displays the recommended objects.
[0078] The set of objects to be recommended includes multiple objects, which refer to the content used to recommend to users in the recommendation service, including but not limited to: video objects, product objects, advertising objects, design materials, etc., and may also include images, posters, goods, virtual items, etc.
[0079] In one example, a video website user can access the website through a smart TV or other terminal device. This includes opening the homepage or navigating to a specific channel. The user's device can then display multiple videos recommended by the website. In this scenario, the first server is the video website server. This server first uses an algorithm to determine the set of videos to be recommended for each channel, and then sends this set to the second server. If the second server collects user behavior data regarding the videos to be recommended for a particular channel, such as video clicks and viewing behavior, it can initiate a batch sampling and recommendation acceptance update process for that channel's set of videos. When a user requests recommended videos for that channel, the recommended videos are determined based on the recommendation acceptance rates of the videos identified in the multiple batches. The first server then sends the recommended videos to the client for playback and viewing.
[0080] In this system, the second server, upon receiving the set of objects to be recommended, may collect a large amount of user behavior data. For example, a video website might generate millions of user behavior data points every millisecond. Thus, each time the second server receives user behavior data, it can initiate a batch of object sampling and recommendation acceptance update processing. Each batch can update the recommendation acceptance of the object targeted by the current user behavior, as well as a small number of other sampled objects. After multiple batches of processing in a short period, the number of objects whose recommendation acceptance has been updated can approach the number of objects in the complete set of objects to be recommended. This approximates the recommendation effect achieved by updating the recommendation acceptance of all objects to be recommended in existing technologies. For example, if the set of videos to be recommended includes 100,000 videos, and the second server samples 10 videos each time it receives user behavior data, then after obtaining 10,000 user behavior data points, it can update the recommendation acceptance of all 100,000 videos to be recommended.
[0081] In another example, an e-commerce website can be accessed via mobile devices, such as the Taobao mobile app homepage, where users can view recommended products. Similarly, the e-commerce website server can send a set of products to be recommended to a second server. If the second server collects user behavior data related to a specific product, such as clicks, purchases, favorites, or adding to cart, it initiates a batch sampling and recommendation acceptance update process. This process samples a subset of products from the set and updates the recommendation acceptance of these products based on the current batch and the specific product targeted by the user's behavior. The second server can receive product recommendation requests from the e-commerce website server. Upon receiving a request, it determines the recommended products based on the recommendation acceptance of products from multiple batches and sends these recommended products to the user's device via the first server. The user can then view the products on their device.
[0082] As can be seen from the above embodiments, the recommendation system provided in this application determines a set of objects to be recommended; if user behavior data is collected, objects are sampled from the set; the recommendation acceptance of the sampled objects is determined based on the user behavior data; and the recommended objects are determined based on the recommendation acceptance. By using multiple rounds of online dynamic object sampling and streaming processing to update the recommendation acceptance of a large-scale set of objects to be recommended, the recommendation acceptance of almost all objects to be recommended is updated during the recommendation process in a short time, and any object to be recommended may be recommended to the user. This satisfies the need to update the recommendation acceptance while updating only a small number of sampled objects each time. The multi-round data update method reduces the computational load of a single data update, thus enabling processing with a smaller computational cost, thereby obtaining the desired decision result based on a large-scale object set. Simultaneously, this processing method selects recommended objects from all objects to be recommended, considering all objects within the set equally, thus effectively improving the richness of recommended objects and providing users with expected recommendation results, thereby improving the user experience. Furthermore, this approach allows for the continuous expansion of the categories and number of recommended objects, thus effectively improving the scalability of the objects.
[0083] Second Embodiment
[0084] Corresponding to the aforementioned recommendation system, this application also provides a recommendation method. The executing entity of this method includes, but is not limited to, a server, and may also be other devices capable of implementing the method. The parts of this embodiment that are the same as those in the first embodiment will not be repeated; please refer to the corresponding parts in Embodiment 1. The recommendation method provided by this application includes:
[0085] Step S301: Determine the set of objects to be recommended.
[0086] The set of objects to be recommended includes multiple objects, any one of which may be recommended to the user. The objects refer to the content used to recommend to the user in the recommendation service, including but not limited to: video objects, product objects, advertising objects, design materials, etc., and may also include images, posters, goods, virtual items, etc.
[0087] In one example, the object is a video object; step S301 can be implemented as follows: based on the channel attribute information of the video object, determine the set of video objects to be recommended for each channel. Thus, when a user opens a channel page, video objects can be recommended to the user based on the set of video objects to be recommended for that channel.
[0088] In another example, the object is a product object, and step S301 can be implemented as follows: Based on the product category information of the product object, determine the set of product objects to be recommended for each category. Thus, when a user queries a product object for a certain category, product objects can be recommended to the user based on the set of product objects to be recommended for that category, and the display order of the product objects can be determined according to the recommendation acceptance rate.
[0089] In another example, the object is an advertisement object. Step S301 can be implemented as follows: Advertisements published in the most recent month are selected as the recommended advertisement objects, forming a set of recommended advertisement objects. This way, when a user opens a webpage, an advertisement object can be selected from the set of recommended advertisement objects, and the recommended advertisement object can be displayed on the webpage.
[0090] The method described is not limited to the above-mentioned application scenarios and specific implementation methods for determining the set of objects to be recommended. These different methods are all variations of the specific implementation methods and do not deviate from the core of this application. Therefore, they are all within the protection scope of this application.
[0091] After determining the set of objects to be recommended in step S301, the following steps can be performed to update the recommendation acceptance of the objects to be recommended.
[0092] Step S303: If user behavior data is collected, then sample objects from the object set.
[0093] The user behavior data includes user interaction data with objects. For example, with a video object, user behavior data could be that user 1 played video A and watched it for 20 minutes. With a product object, user behavior data could be that user 2 opened the details page of product object X, user 5 favorited product object C, user 2 added product object D to their shopping cart, user 6 purchased product object W, and so on.
[0094] The entity executing the method can collect user behavior data in real time. Each time user behavior data is collected, objects can be sampled from the object set, with a small number of objects sampled each time. In addition, the objects targeted by the user behavior collected in this instance can also be used as other objects for sampling.
[0095] In practical implementation, all objects within the set of objects to be recommended can be sampled equally, ensuring that almost all objects are sampled once during the recommendation process within a short period. Taking a video website as an example, it may generate millions of user behavior data points every millisecond. Thus, each time user behavior data is received, a batch of video object sampling can be initiated. After multiple batches of processing within a short time, almost all video objects will be sampled once. For example, if the set of videos to be recommended includes 100,000 videos, and the execution entity of the method samples 10 videos each time it receives user behavior data, then after obtaining 10,000 user behavior data points, all 100,000 videos to be recommended can be sampled.
[0096] In practical applications, the identifiers of objects to be recommended are usually composed of letters, numbers, and special symbols. For example, the identifier for a product object is an inventory unit (SKU), and SKU numbers are long and complex. In this case, directly sampling based on the identifier of the object to be recommended would incur significant computational overhead. Figure 4 As shown, in order to improve sampling processing efficiency, the method provided in this embodiment may further include the following steps:
[0097] Step S401: Construct object index data based on the object set.
[0098] Accordingly, step S303 can be implemented as follows: if user behavior data is collected, then the sampling object is selected based on the index data.
[0099] After determining the set of objects to be recommended in step S301, the execution entity of the method can construct index data for the set of objects, and then use the index information to randomly select a portion of the objects to be recommended as the sampling objects.
[0100] The index data includes, but is not limited to: index identifier and identifier of the object to be recommended.
[0101] In practical implementation, the index identifiers for objects to be recommended can be compiled as follows: count the number of objects to be recommended, and assign a unique code to each object based on the number of objects to be recommended, which serves as the index identifier. Furthermore, an index table can be stored in the database according to a table structure of "object identifier to be recommended, index identifier to be recommended". Table 1 shows the object index data table in this embodiment.
[0102] Index identifier Identifier of objects to be recommended 1 SKU-641331 2 SKU-316565 3 SKU-641631 … n SKU-643355
[0103] Table 1. Object Index Data Table
[0104] The method employs an object pre-indexing mechanism. By constructing index data for the objects to be recommended and sampling objects based on this index data, the computational overhead of sampling processing can be reduced, computational efficiency improved, and thus the real-time performance of recommendations enhanced. Furthermore, objects can be queried online based on the index data, enabling rapid object location and subsequent rapid updates to recommendation acceptance.
[0105] In practical implementation, the method can provide recommendation services to multiple applications, each providing a different set of objects to be recommended. The objects from different applications are then combined to form a massive dataset. To enable rapid sampling of the objects to be recommended from this massive dataset for each application, the index data can also include the number of objects to be recommended for each application. This allows for rapid determination of the objects to be sampled each time, further improving sampling efficiency.
[0106] In summary, one of the significant differences between the method provided in this application and the prior art is that the method provided in this application compiles a unique index identifier for each object to be recommended. In subsequent sampling and data update processing, the identifier of the object to be recommended that needs to be updated can be retrieved through the index identifier, so as to perform subsequent data processing. This can effectively save the computational load of object retrieval and data update.
[0107] It should be noted that, in practice, the aforementioned index data can be omitted, and instead, sampling and data updating of the set of objects to be recommended can be performed directly based on object identifiers. However, this approach will not be able to achieve rapid online object querying and rapid updating of object recommendation acceptance when faced with a large-scale candidate set of objects to be recommended. It will significantly increase the computational overhead of online object querying and data updating, reducing computational efficiency.
[0108] Furthermore, in practical applications, the feedback data collected in real time by the implementing entity of the method may include not only user behavior data but also other types of feedback data, such as service quality monitoring data. Additionally, the user behavior data may include user behavior data that affects the recommendation service, and user behavior data that does not affect the recommendation service. For example, some user behavior data is effective for video recommendation services, while some is effective for product recommendation services; some is effective for the recommendation service on the homepage of a video website, while some is only effective for the recommendation service on a specific channel page of the video website, and so on. In this case, the method may further include the following steps: selecting user behavior data that affects the recommendation service from the entire set of collected feedback data; correspondingly, when user behavior data that affects the target recommendation service is selected, the sampling object is determined.
[0109] In one example, the method identifies user behavior data that influences the target recommendation service, which can be achieved through the following process: First, collect online feedback data; then, determine whether the collected online feedback data is user feedback data; next, filter and identify the user feedback data, such as by filtering based on the application scenario and user information, to obtain relevant data in the application scenario, i.e., user behavior data that influences the target recommendation service.
[0110] After initiating an object sampling process in step S303 and determining the objects to be sampled, the following steps can be performed to update the recommendation acceptance of the objects to be recommended.
[0111] Step S305: Determine the acceptance level of the sampled object based on user behavior data.
[0112] The recommendation acceptance rate refers to the degree to which users accept the recommended items. For example, popular products may have a higher user acceptance rate than slow-moving products. User actions towards recommended items will cause the recommendation acceptance rate to change in real time.
[0113] The recommendation acceptance rate includes data that reflects the probability distribution of user behavior. Specifically, it can be a predicted value of the user behavior probability, such as a probability value that follows a beta distribution, like the recommendation acceptance rate for video object 1 = Beta(0, number of clicks / number of impressions for video object 1). The recommendation acceptance rate can be determined using Bayesian online learning or other calculation methods. Since determining the recommendation acceptance rate based on user behavior data is a relatively mature existing technology, it will not be elaborated upon here.
[0114] In one example, step S305 may include the following sub-steps:
[0115] Step S3051: Determine user behavior statistics based on user behavior data.
[0116] The method provided in this embodiment utilizes the obtained user behavior data for statistical analysis, determining user behavior statistics at the granularity of a single object to be recommended. In specific implementation, it may determine the user behavior statistics of the object to which the current user behavior is targeted.
[0117] The user behavior statistics can include statistics on various user behaviors. Taking video as an example, user behavior statistics can include video exposure counts, user click counts, total user viewing time, and average user viewing time. Taking product as an example, user behavior statistics can include product exposure counts, number of times a product is favorited, number of times a product is added to the shopping cart, and number of times product details are viewed.
[0118] From a time perspective, the user behavior statistics can be user behavior statistics determined based on user behavior data within a preset time range, such as user behavior data for the last 15 days, 1 hour, or 1 day. In specific implementations, the time range can be set according to application requirements. For example, to collect user behavior data for 1 hour, if a user A watches video 1 in real time, the user behavior statistics for video 1 in the last hour can be determined, such as 100 exposures and 10 views.
[0119] Step S1033: Determine the acceptance rate of the recommendation based on the statistical data.
[0120] In this embodiment, the statistical data is used as a Beta distribution sampling parameter to update the recommendation acceptance of the sampled object. Since determining the recommendation acceptance based on user behavior statistics is a relatively mature existing technology, it will not be described in detail here.
[0121] In one example, the process of updating recommendation acceptance is as follows: First, obtain the index data of the set of objects to be recommended in the current application scenario; then, when user behavior data is collected, determine the user behavior statistics of the objects targeted by the behavior; next, obtain the number of objects in the set of objects to be recommended by querying the index data, and further randomly sample a portion of objects based on this number information to obtain the index data of the sampled objects; next, determine the objects whose recommendation acceptance needs to be updated based on the index data of the sampled objects. The user behavior statistics of the sampled objects can be used as sampling parameters, and the sampled objects are sampled according to the Bayesian principle depending on the prior distribution to determine the recommendation acceptance.
[0122] In practical applications, applications typically continuously add new objects (also known as new product objects). For example, video websites add new video objects daily, e-commerce sellers release new product objects daily, and advertisers release new advertising objects daily, and so on. In this case, to improve the richness of recommended objects and ensure that newly added objects can also be recommended to users, the method provided in this embodiment may further include the following steps: obtaining new product objects and adding them to the set of objects to be recommended. This could lead to a surge in the number of objects to be recommended. The following example, using the new product video object recommendation service in the Youku OTT (Over The Top) scenario, illustrates the continuous stability of the recommendation effect of the method provided in this embodiment when facing a rapidly increasing size of the set of objects to be recommended.
[0123] OTT refers to internet companies bypassing telecom operators to develop various video and data service applications based on the open internet. These new videos include those that haven't been clicked by users. Currently, when Youku displays videos to users on its OTT client, it needs to select videos from approximately 100,000 new videos to be recommended. Since the number of new videos to be recommended is approximately 100,000, and this number is constantly increasing with the daily release of new videos, the method provided in this application updates the recommendation acceptance of only a small number of new videos each time user behavior data is collected in real time. This not only allows for the recommendation of expected results even with a large set of new videos, but also achieves real-time computational efficiency.
[0124] The method is implemented by a recommendation device. In one example, this device can be deployed on the server side of a user (such as an enterprise user) to provide recommendation services to the user's application system via a private cloud. For example, if the user's application system includes a video website and an e-commerce platform, the device can be deployed on the user's server to provide recommendation services for the user's video website and e-commerce platform.
[0125] In another example, the device can be deployed on a public cloud server (such as Alibaba Cloud), which provides a recommendation service port to the application system. The application system's server can send a set of objects to be recommended to this recommendation service port, and also send a recommendation request to this recommendation service port. The public cloud server uses the device to determine the recommended objects, sends the recommended objects back to the application system's server, and the application system's server then returns the recommended objects to the client for display.
[0126] In one example, the method provided in this embodiment can be implemented as follows: if the sampling processing conditions are met, steps S303 and S305 are executed to sample objects from the object set, and the recommendation acceptance of the sampled objects is determined based on user behavior data. This enables a recommendation service based on multiple rounds of recommendation acceptance updates. Correspondingly, the method may also include the following step: if the conditions are not met, the recommendation acceptance of the object to be recommended is determined based on user behavior data. This allows for updating the recommendation acceptance using existing technologies.
[0127] The conditions could be that the number of candidates to be recommended reaches a threshold, or other conditions such as the hourly increase rate of candidates. The threshold could be a lower limit on the number of candidates to be recommended in a large-scale scenario; for example, a number below 50,000 could be considered small-scale, and a number above 50,000 could be considered large-scale. This approach allows existing data update methods to be used when dealing with a small number of candidates, while switching to a sampling update method when dealing with a large number of candidates.
[0128] In another example, the method provided in this embodiment may include the following steps: determining the sampling quantity based on the number of objects to be recommended; correspondingly, step S303 may be implemented as follows: sampling objects from the object set according to the sampling quantity. This processing method can control the sampling quantity based on the number of objects to be recommended. For example, when the total number of objects to be recommended is 1000, the sampling quantity is 1000, that is, sampling all objects; when the total number is 10,000, the sampling quantity is 500; when the total number is 100,000, the sampling quantity is 100. The rule for setting the sampling quantity can be: to achieve approximately the same recommendation service response time for any size set of objects to be recommended, such as a response time of 10 to 15 milliseconds. In specific implementation, the sampling quantity can be determined based on data such as the object query speed under different sizes, the update time of the recommendation acceptance of an object, and the service response time.
[0129] This concludes the explanation of the online update method for the recommendation acceptance rate of the recommended objects. The following section will explain the process of recommending objects to users based on the recommendation acceptance rate.
[0130] Step S307: Determine the recommended objects based on the recommendation acceptance rate.
[0131] This step is the decision-making step for object recommendation. It sorts the objects to be recommended based on their recommendation acceptance and selects one or more objects with the highest recommendation acceptance (Top k results) as the objects to be recommended to the user and returned to the user's client for display.
[0132] In practice, the ranking of an object can be re-determined based on the updated recommendation acceptance after the recommendation acceptance is updated; alternatively, the ranking of an object can be determined based on the updated recommendation acceptance when a recommendation request is received.
[0133] It should be noted that the recommendation acceptance rate used by the method provided in this embodiment to determine the recommended objects is not the total recommendation acceptance rate updated in a single data update in the prior art, but rather the recommendation acceptance rate updated in multiple rounds of sampling and update processing to almost reach all the recommended objects.
[0134] In one example, the method can sort the recommendation acceptance as follows: after each update of the recommendation acceptance of the sampled objects, only the sampled objects and the previously ranked objects are re-sorted. For example, if the top 100 objects in terms of recommendation acceptance are to be recommended to the user, and the recommendation acceptance of 10 sampled objects has been updated, then these 10 updated objects and the previously ranked top 100 objects are sorted together to determine the 100 objects to be recommended this time. This avoids the need to sort all objects to be recommended each time a recommendation result is obtained, as is required in existing technologies, reducing the processing power required for sorting while still achieving the desired recommendation result.
[0135] In practice, step S307 can return the recommended object to the user according to the data format required by the user.
[0136] In one example, the method may further include the following steps: determining the recommendation requirements of the target user; selecting at least one object that meets the recommendation requirements from the object set based on the recommendation requirements; correspondingly, step S307 may be implemented as follows: determining the recommended object from at least one object based on the recommendation acceptance.
[0137] The recommended information can be user-specified search terms, such as keywords in video programs or product brands; or user-specified object categories, such as secondary categories of product objects.
[0138] In specific implementation, the method may further include the following steps: sending a recommendation request query to the target user's client; receiving the recommendation request information sent by the client. For example, the recommendation request query is "What type of movie do you want to watch?" or "Here are some movies of type xx, would you like to watch them?" Based on the user's response, the recommendation request information can be determined.
[0139] After determining the recommendation requirements, we can retrieve objects that meet those requirements from the list of objects to be recommended, and select recommended objects from this list based on the ranking of their recommendation acceptance.
[0140] As can be seen from the above embodiments, the recommendation method provided in this application determines a set of objects to be recommended; if user behavior data is collected, objects are sampled from the set; the recommendation acceptance of the sampled objects is determined based on the user behavior data; and the recommended objects are determined based on the recommendation acceptance. This multi-round data update approach ensures that the recommendation acceptance of objects within the entire set of objects to be recommended is updated throughout the recommendation process. This satisfies the need to update recommendation acceptance while reducing the computational load of a single update through batch updates, thereby achieving the desired decision results even with a large-scale object set. Furthermore, this processing method selects recommended objects from all objects to be recommended, effectively increasing the richness of recommended objects and providing users with expected recommendation results, thus improving user experience. In addition, this processing method allows the categories and number of recommended objects to be continuously expanded, effectively improving the scalability of the objects.
[0141] Third Embodiment
[0142] In the above embodiments, a recommended method is provided. Correspondingly, this application also provides a recommended apparatus. This apparatus corresponds to the embodiments of the above method. Since the apparatus embodiments are basically similar to the method embodiments, the description is relatively simple, and relevant details can be found in the description of the method embodiments. The apparatus embodiments described below are merely illustrative.
[0143] Please refer to Figure 5 This is a schematic diagram illustrating the structure of an embodiment of the recommended device of this application. This application further provides a recommended device, comprising:
[0144] The object to be recommended determination unit 501 is used to determine the set of objects to be recommended;
[0145] The object sampling unit 502 is used to sample objects from the object set if user behavior data is collected.
[0146] The recommendation acceptance determination unit 503 is used to determine the recommendation acceptance of the sampled object based on user behavior data;
[0147] The object recommendation determination unit 504 is used to determine the recommended object based on the recommendation acceptance level.
[0148] Optionally, the device may further include the following units:
[0149] The recommendation requirement determination unit is used to determine the recommendation requirement information of the target user.
[0150] The object filtering unit is used to select at least one object that meets the recommendation requirements from the object set based on the recommendation requirements information.
[0151] The object recommendation determination unit is specifically used to determine the recommended object from at least one object based on the recommendation acceptance level.
[0152] Optionally, the recommended requirement determination unit includes:
[0153] The query subunit is used to send recommendation request query information to the target user's client.
[0154] The receiving subunit is used to receive recommendation request information sent by the client.
[0155] Optionally, the object sampling unit is specifically used to sample objects from the object set if the sampling processing conditions are met; correspondingly, the device may further include the following units:
[0156] The full update unit is used to determine the recommendation acceptance of the object to be recommended based on user behavior data if the conditions are not met.
[0157] The conditions include, but are not limited to, the number of objects to be recommended reaching a certain threshold.
[0158] Optionally, the device may further include the following units:
[0159] Index data building unit, used to build object index data based on a set of objects;
[0160] Accordingly, the object sampling unit is specifically used to sample objects based on the index data.
[0161] Optionally, the recommendation acceptance determination unit includes:
[0162] The statistics subunit is used to determine user behavior statistics based on user behavior data;
[0163] The recommendation acceptance determination subunit is used to determine the recommendation acceptance based on the statistical data.
[0164] The objects mentioned include, but are not limited to: video objects, product objects, advertising objects, and design materials.
[0165] Fourth embodiment
[0166] In the above embodiments, a recommended method is provided. Correspondingly, this application also provides an electronic device. This device corresponds to the embodiments of the above method. Since the device embodiments are basically similar to the method embodiments, the description is relatively simple, and relevant details can be found in the description of the method embodiments. The device embodiments described below are merely illustrative.
[0167] This embodiment provides an electronic device, which includes a processor and a memory. The memory stores a program for implementing a recommendation method. After the device is powered on and the program for the method is run by the processor, it performs the following steps: determining a set of objects to be recommended; if user behavior data is collected, sampling objects from the set; determining the recommendation acceptance of the sampled objects based on the user behavior data; and determining the recommended objects based on the recommendation acceptance.
[0168] Fifth embodiment
[0169] Corresponding to the recommendation system described above, this application also provides a recommendation system. The parts of this embodiment that are the same as those in the first embodiment will not be repeated here; please refer to the corresponding parts in Embodiment 1. The recommendation system provided in this application includes: a server and a client.
[0170] The server is used to determine the set of objects to be recommended; if user behavior data is collected, it samples objects from the set; based on the user behavior data, it determines the recommendation acceptance of the sampled objects; and it receives object recommendation requests sent by the client, determines the recommended objects based on the recommendation acceptance; and sends the recommended objects to the client; the client is used to display the recommended objects.
[0171] Sixth Embodiment
[0172] Corresponding to the recommendation system described above, this application also provides a recommendation system. The parts of this embodiment that are the same as those in the first embodiment will not be repeated here; please refer to the corresponding parts in Embodiment 1. The recommendation system provided in this application includes: a server and a client.
[0173] The server is used to determine a first set of objects to be recommended; if the number of objects in the first set of objects to be recommended is greater than a preset number, a second set of objects to be recommended is selected from the first set of objects to be recommended; if user behavior data is collected, the server determines the recommendation acceptance of the objects in the second set of objects to be recommended based on the user behavior data; and receives object recommendation requests sent by the client, determines recommended objects from the second set of objects to be recommended based on the recommendation acceptance; sends the recommended objects to the client; and the client displays the recommended objects.
[0174] The system provided in this embodiment differs from the system provided in Embodiment 1 above in that: this embodiment selects a portion of all objects to be recommended for relevance recommendation, completely disregarding the unselected objects, which will not be recommended to the user. Therefore, when faced with a large number of objects to be recommended, the recommendation quality will decrease, mainly in terms of the richness of the recommended objects, such as the types and quantities of objects.
[0175] As can be seen from the above embodiments, the recommendation system provided in this application determines a first set of objects to be recommended; if the number of objects in the first set of objects to be recommended is greater than a preset number, a second set of objects to be recommended is selected from the first set of objects to be recommended; if user behavior data is collected, the recommendation acceptance of objects in the second set of objects to be recommended is determined based on the user behavior data; and the system receives object recommendation requests sent by the client and determines recommended objects from the second set of objects to be recommended based on the recommendation acceptance. By selecting a portion of a large-scale online set of objects to be recommended for relevance recommendation, such as selecting 10,000 video objects out of 100,000 for relevance recommendation, the real-time nature of object recommendation can be effectively ensured.
[0176] Although this application discloses preferred embodiments as described above, it is not intended to limit this application. Any person skilled in the art can make possible changes and modifications without departing from the spirit and scope of this application. Therefore, the scope of protection of this application should be determined by the scope defined in the claims of this application.
[0177] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0178] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0179] 1. Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information by any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include non-transitory computer-readable media, such as modulated data signals and carrier waves.
[0180] 2. Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
Claims
1. A recommendation method characterized by comprising: The method comprises the following steps: determining a set of objects to be recommended; if user behavior data is collected, sampling objects from the set of objects, the sampled objects including: the object targeted by the current user behavior, and other sampled objects; determining user behavior statistical data of the sampled objects according to the user behavior data of the sampled objects; determining the recommendation acceptance of the sampled objects according to the statistical data; determining the recommended object according to the recommendation acceptance.
2. The method according to claim 1, wherein the method further comprises: determining recommendation demand information of the target user; selecting at least one object meeting the recommendation demand from the set of objects according to the recommendation demand information; determining the recommended object from the at least one object according to the recommendation acceptance. The method further comprises: sending recommendation demand inquiry information to the client of the target user; 3. The method according to claim 2, characterized in that, receiving the recommendation demand information sent by the client.
4. The method according to claim 1, wherein the method further comprises: if the sampling processing condition is met, sampling objects from the set of objects and determining the recommendation acceptance of the sampled objects according to the user behavior data; if the condition is not met, determining the recommendation acceptance of the objects to be recommended according to the user behavior data. The method further comprises: determining the sampling quantity according to the number of the objects to be recommended; sampling objects from the set of objects according to the sampling quantity.
6. The method according to claim 1, wherein the method further comprises:
5. The method of claim 1, characterized in that, constructing object index data according to the set of objects; sampling objects according to the index data. The objects include: video objects, commodity objects, advertisement objects, and design materials.
8. The method according to claim 1, wherein the objects are video objects; the user behavior data includes at least one of the following data: playing a video object, and video object watching time length; determining a set of video objects to be recommended of a plurality of channels; determining user behavior statistical data of the video objects according to the user behavior data; determining the recommendation acceptance according to the statistical data; wherein the statistical data includes at least one of the following data: video exposure times, user click times, user total watching time length, and user average watching time length.
7. The method of claim 1, characterized in that, The method further comprises: obtaining a new product video object; regarding the new product video object as a video object to be recommended. The method comprises the following steps: an object to be recommended determining unit for determining a set of objects to be recommended; an object sampling unit for sampling objects from the set of objects if user behavior data is collected, the sampled objects including: the object targeted by the current user behavior, and other sampled objects; a recommendation acceptance determining unit for determining user behavior statistical data of the sampled objects according to the user behavior data of the sampled objects; determining the recommendation acceptance of the sampled objects according to the statistical data; an object to be recommended determining unit for determining the recommended object according to the recommendation acceptance. 9. The method according to claim 8, characterized in that, 10. A recommendation apparatus characterized by comprising: The object recommendation determining unit is configured to determine the recommended object according to the recommendation acceptance degree.
11. An electronic device, comprising: The method comprises the steps of: a processor and a memory; the memory is configured to store a program for implementing a recommendation method, and the device is configured to execute the following steps after being powered on and running the program of the method by the processor: determining a set of objects to be recommended; if user behavior data is collected, sampling objects from the set of objects, the sampled objects including the object targeted by the current user behavior and other sampled objects; determining user behavior statistical data of the sampled objects according to the user behavior data of the sampled objects; determining a recommendation acceptance degree of the sampled objects according to the statistical data; and determining the recommended object according to the recommendation acceptance degree.
12. A recommendation system characterized in that, The method comprises the steps of: a server configured to determine a set of objects to be recommended; if user behavior data is collected, sampling objects from the set of objects, the sampled objects including the object targeted by the current user behavior and other sampled objects; determining user behavior statistical data of the sampled objects according to the user behavior data of the sampled objects; determining a recommendation acceptance degree of the sampled objects according to the statistical data; and receiving an object recommendation request sent by a client, determining the recommended object according to the recommendation acceptance degree; and sending the recommended object to the client; a client configured to display the recommended object.
Citation Information
Patent Citations
Video recommendation method and system, and equipment
CN107657004A
New video push control method and device, and server
CN108259939A
Recommendation method and device based on artificial intelligence, electronic equipment and storage medium
CN111428133A