Method and device for resource recommendation, storage medium and electronic device
By building the objective functions and constraints for user experience utility optimization problems in the edge cache server and selecting target recommendation resources, the user experience problems caused by limited space in the edge cache server are solved and the user experience quality is improved.
Patent Information
- Application Number
- CN202111665405.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-31
- Publication Date
- 2024-12-31
- Estimated Expiration
- 2041-12-31
AI Technical Summary
When the IPTV network load is too high, the edge cache server space is limited, resulting in the resource requested by the user not being stored in the server, and the user experience is poor. The prior art usually returns a message of the request failure.
By receiving the client's resource acquisition request, obtain the target user's historical browsing data, the target resource attribute data and the cache resource attribute data, construct the objective functions and constraints for the user experience utility optimization problem, select the target recommended resource, and from Generate a resource recommendation collection in the cache resource and send it to the client.
Optimize user experience in the edge cache server, build objective functions through the dimensions of user preference relevance, resource rating relevance and recommendation type diversity, select recommended resources that meet the user experience utility, and improve user experience quality.
Smart Images

Figure CN114329280B_ABST
Abstract
Description
Background Art
[0002] With the development of communication technology, users can request resources (such as pictures, videos, audio, etc.) from the server on the client for browsing. Taking video resources as an example, when the IPTV network load is too high, it is easy to cause users to experience slow loading and freezing when browsing videos. Therefore, in order to improve the user experience, edge cache servers are usually deployed at locations closer to users, such as the edge of the network, to facilitate faster response to user resource requests.
[0003] Since the edge cache server has limited space, the resource requested by the user may not be stored in the edge cache server. In this case, the related technology usually returns a message of request failure to the user, resulting in a poor user experience.
[0004] It should be noted that the information disclosed in the above background technology section is only used to enhance the understanding of the background of the present disclosure, and therefore may include information that does not constitute the prior art known to ordinary technicians in the field. Summary of the invention
[0005] The purpose of the present disclosure is to provide a method, device, electronic device and storage medium for resource recommendation to solve one or more problems in the above-mentioned related technologies.
[0006] Other features and advantages of the present disclosure will become apparent from the following detailed description, or may be learned in part by the practice of the present disclosure.
[0007] According to one aspect of the present disclosure, a method for resource recommendation is provided, which is applied to an edge cache server, and includes: receiving a resource acquisition request for a target resource from a target user sent by a client; when the target resource is not stored in a resource database of the edge cache server, acquiring historical browsing data of the target user, resource attribute data of the target resource, and resource attribute data of cached resources stored in the resource database; constructing an objective function and constraint conditions of a user experience utility optimization problem based on the historical browsing data, the resource attribute data of the target resource, and the resource attribute data of the cached resource, solving the objective function under the constraint conditions to select a target recommended resource from the cached resources; generating a resource recommendation set based on the target recommended resource, and then sending the resource recommendation set to the client.
[0008] In one embodiment of the present disclosure, the steps of obtaining historical browsing data of a target user, resource attribute data of a target resource, and resource attribute data of a cached resource stored in a resource database include: obtaining a collection of historical resources browsed by the target user within a preset time period; determining the historical browsing data based on type information of each historical resource in the collection of historical resources; obtaining rating information of the target resource, and determining the resource attribute data of the target resource based on the rating information of the target resource; obtaining rating information and type information of the cached resource, and determining the resource attribute data of the cached resource based on the rating information and type information of the cached resource.
[0009] In one embodiment of the present disclosure, the optimization variable of the objective function is the resource to be recommended selected from the cache resources; based on the historical browsing data, the resource attribute data of the target resource and the resource attribute data of the cache resource, the objective function and the constraint conditions of the user experience utility optimization problem are constructed, and the objective function is solved under the constraint conditions to select the target recommended resource from the cache resource, including: constructing a user preference correlation function according to the historical browsing data and the resource attribute data of the cache resource, the user preference correlation function is used to characterize the correlation between the historical browsing data and the resource to be recommended in the type dimension; constructing a resource score correlation function according to the resource attribute data of the target resource and the resource attribute data of the cache resource, the resource score correlation function is used to characterize the correlation between the target resource and the resource to be recommended in the score dimension; constructing a recommendation type diversity function according to the resource attribute data of the cache resource, the recommendation type diversity function is used to characterize the diversity of the resource to be recommended in the type dimension; constructing a user experience utility function according to the user preference correlation function, the resource score correlation function and the recommendation type diversity function; taking the maximum user experience utility function as the objective function, and obtaining the number threshold of the resources to be recommended to determine the constraint conditions; obtaining a solution set of the optimization variables based on the objective function when the constraint conditions are met, and then determining the target recommended resource according to the solution set.
[0010] In one embodiment of the present disclosure, the step of constructing a user preference correlation function based on historical browsing data and resource attribute data of cached resources includes: determining a first type feature of the historical browsing data based on type information of each historical resource in the historical browsing data; determining a second type feature of a set of resources to be recommended based on type information in the resource attribute data of the cached resources; determining a vector distance expression of the historical browsing data and the resources to be recommended in the type dimension based on a vector distance algorithm according to the first type feature and the second type feature; and determining a user preference correlation function of the historical browsing data and the resources to be recommended according to the vector distance expression.
[0011] In one embodiment of the present disclosure, the step of constructing a resource scoring correlation function based on the resource attribute data of the target resource and the resource attribute data of the cache resource includes: determining the scoring feature of the target resource based on the scoring information in the resource attribute data of the target resource; determining the scoring feature of each resource to be recommended based on the scoring information in the resource attribute data of the cache resource; determining the similarity expression between the target resource and each resource to be recommended in the scoring dimension based on a similarity algorithm according to the scoring feature of the target resource and the scoring feature of each resource to be recommended; and determining the resource scoring correlation function based on all similarity expressions.
[0012] In one embodiment of the present disclosure, the step of constructing a recommendation type diversity function based on resource attribute data of cached resources includes: determining the number of types corresponding to the set of resources to be recommended based on type information in the resource attribute data of the cached resources; obtaining a preset total number of resource types, and then determining a recommendation type diversity function based on the number of types and the total number of resource types.
[0013] In one embodiment of the present disclosure, the method further includes: when the target resource is stored in the resource database of the edge cache server, generating a resource recommendation list according to the target resource.
[0014] According to a second aspect of an embodiment of the present disclosure, a method for resource caching is provided, which is applied to an edge cache server cluster, and includes: determining a user group corresponding to each edge cache server in the edge cache server cluster; obtaining type preference information of the user group and resource attribute data of each resource in the source server; based on the type preference information and the resource attribute data of each resource, determining a resource recommendation set generated after each user in the user group requests a resource and a user experience utility function corresponding to the resource recommendation set; wherein the resource recommendation set is generated by an edge cache server in the edge cache server cluster; the resource recommendation set is determined according to the method for resource recommendation described in the above embodiment; obtaining a first transmission delay between each edge cache server and a second transmission delay between each edge cache server and a source server of the resource; based on the first transmission delay, the second transmission delay, the resource recommendation set and the user experience utility function corresponding to the resource recommendation set, constructing a delay objective function and a delay optimization constraint condition for the total transmission delay optimization problem, and solving the delay objective function under the delay optimization constraint condition to determine the resources to be stored in each edge cache server.
[0015] According to a third aspect of an embodiment of the present disclosure, there is provided a device for resource recommendation, comprising: a receiving module for receiving a resource acquisition request for a target resource from a target user sent by a client; an acquisition module for acquiring, when the target resource is not stored in a resource database of an edge cache server, historical browsing data of the target user, resource attribute data of the target resource, and resource attribute data of cached resources stored in the resource database; a determination module for constructing an objective function and constraint conditions of a user experience utility optimization problem based on historical browsing data, resource attribute data of the target resource, and resource attribute data of the cached resource, and solving the objective function under the constraint conditions to select a target recommended resource from the cached resource; and a sending module for generating a resource recommendation set based on the target recommended resource, and then sending the resource recommendation set to the client.
[0016] According to a fourth aspect of an embodiment of the present disclosure, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the method for resource recommendation or the method for resource caching described in the above embodiments is implemented.
[0017] According to a fifth aspect of an embodiment of the present disclosure, an electronic device is provided, comprising: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute the method for resource recommendation or the method for resource caching described in the above embodiment by executing the executable instructions.
[0018] The method for resource recommendation provided by the embodiments of the present disclosure can, when the cache content in the edge cache server is pre-stored, obtain the target user's historical browsing data, the resource attribute data of the target resource, and the resource attribute data of the cached resources stored in the resource database when the target resource requested by the target user is not stored in the edge cache server, and then select the target recommended resource from the cached resources to generate a resource recommendation set and then recommend it to the user. In addition, by constructing the objective function and constraint conditions of the user experience utility optimization problem, the selected target recommended resource can meet the optimization goal of the user experience utility, thereby achieving the effect of optimizing the user experience.
[0019] Furthermore, in the method for resource recommendation provided by the embodiments of the present disclosure, the objective function can be constructed based on three dimensions: user preference relevance, resource rating relevance, and recommendation type diversity. Thus, the generated resource recommendation set can optimize the user experience in the above three dimensions.
[0020] The method for resource caching provided by the embodiments of the present disclosure can be based on the method for resource recommendation provided by the present disclosure, and can combine the transmission delay between multiple edge cache servers to construct a delay objective function and delay optimization constraints for the total transmission delay optimization problem, and then solve the resources to be stored in each edge cache server as a caching solution corresponding to the entire edge cache server cluster, and the caching solution can meet the optimization goals in the delay dimension, further optimizing the user experience.
[0021] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] The accompanying drawings herein are incorporated into the specification and constitute a part of the specification, illustrate embodiments consistent with the present disclosure, and together with the specification are used to explain the principles of the present disclosure. Obviously, the accompanying drawings described below are only some embodiments of the present disclosure, and for ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without creative work.
[0023] Figure 1 A flowchart of a method for resource recommendation according to an embodiment of the present disclosure is shown;
[0024] Figure 2 A flowchart of constructing an objective function to determine target recommended resources in a method for resource recommendation according to an embodiment of the present disclosure is shown;
[0025] Figure 3 A flowchart of a method for resource caching according to an embodiment of the present disclosure is shown;
[0026] Figure 4 A schematic diagram showing a method for resource caching and a method for resource recommendation according to an embodiment of the present disclosure;
[0027] Figure 5 A block diagram showing an apparatus for resource recommendation according to an embodiment of the present disclosure; and
[0028] Figure 6 A schematic structural diagram of an electronic device according to an embodiment of the present disclosure is shown. DETAILED DESCRIPTION
[0029] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in a variety of forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that the disclosure will be more comprehensive and complete and to fully convey the concepts of the example embodiments to those skilled in the art. The described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0030] In addition, the accompanying drawings are only schematic illustrations of the present disclosure and are not necessarily drawn to scale. The same reference numerals in the figures represent the same or similar parts, and their repeated description will be omitted. Some of the block diagrams shown in the accompanying drawings are functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software form, or implemented in one or more hardware modules or integrated circuits, or implemented in different networks and / or processor devices and / or microcontroller devices.
[0031] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the features. In the description of the present disclosure, the meaning of "plurality" is at least two, such as two, three, etc., unless otherwise clearly and specifically defined.
[0032] Below, each step of the method for resource recommendation in the exemplary embodiment of the present disclosure will be described in more detail with reference to the accompanying drawings and embodiments.
[0033] Figure 1 A flow chart of a method for resource recommendation according to an embodiment of the present disclosure is shown. The method provided by the embodiment of the present disclosure may be executed by an edge cache server, but the present disclosure is not limited thereto.
[0034] In the following examples, an edge cache server is used as an execution subject for example.
[0035] like Figure 1 As shown, the method for resource recommendation provided by the embodiment of the present disclosure may include the following steps:
[0036] Step S101, receiving a resource acquisition request for a target resource from a target user sent by a client;
[0037] Step S103, when the target resource is not stored in the resource database of the edge cache server, obtaining the historical browsing data of the target user, the resource attribute data of the target resource, and the resource attribute data of the cached resource stored in the resource database;
[0038] Step S105, constructing an objective function and constraint conditions of the user experience utility optimization problem based on the historical browsing data, the resource attribute data of the target resource, and the resource attribute data of the cached resource, and solving the objective function under the constraint conditions to select the target recommended resource from the cached resource;
[0039] Step S107: Generate a resource recommendation set according to the target recommended resource, and then send the resource recommendation set to the client.
[0040] Through the method for resource recommendation provided by the present invention, when the cache content in the edge cache server is pre-stored, when the target resource requested by the target user is not stored in the edge cache server, the historical browsing data of the target user, the resource attribute data of the target resource, and the resource attribute data of the cached resource stored in the resource database can be obtained, and then the target recommended resource can be selected from the cached cache resources to generate a resource recommendation set and then recommended to the user, and by constructing the objective function and constraint conditions of the user experience utility optimization problem, the selected target recommended resource can meet the optimization goal of the user experience utility, thereby achieving the effect of optimizing the user experience.
[0041] Next, we will combine Figure 1 The following describes steps S101 to S107 of the method for resource recommendation in the exemplary embodiment in more detail.
[0042] Step S101: receiving a resource acquisition request for a target resource from a target user sent by a client.
[0043] In some practical applications, the edge cache server may correspond to a user area range, and the client in this embodiment may be one of the user area range.
[0044] Step S103, when the target resource is not stored in the resource database of the edge cache server, obtain the historical browsing data of the target user, the resource attribute data of the target resource, and the resource attribute data of the cached resource stored in the resource database.
[0045] In some embodiments, the step of obtaining the target user's historical browsing data, the resource attribute data of the target resource, and the resource attribute data of the cached resource stored in the resource database in step S103 may include: obtaining a set of historical resources browsed by the target user within a preset time period; determining the historical browsing data based on the type information of each historical resource in the historical resource set; obtaining the rating information of the target resource, and determining the resource attribute data of the target resource based on the rating information of the target resource; obtaining the rating information and type information of the cached resource, and determining the resource attribute data of the cached resource based on the rating information and type information of the cached resource.
[0046] Among them, network logs can be obtained, from which the historical resource collection browsed by the target user within a preset time period can be queried; the preset time period can be a predetermined data, for example, it can be a period of the last week, the last month, etc. The rating information can be the user's rating feedback on the resource. For example, the user can give a numerical score on one or more dimensions of the resource (such as clarity, sound effects, degree of liking, etc.). The type information can represent one or more types to which the resource belongs. For example, multiple types can be predefined (such as movies, TV series, concerts, comedies, tragedies, life, inspirational, love, etc.). The type information of a resource can be the three types of movies, comedies, and inspirational, and the type information of another resource can be the type of concert.
[0047] In addition, in some embodiments, when the target resource is stored in the resource database of the edge cache server, a resource recommendation list can be generated based on the target resource. For example, the target resource can be directly used as the content in the resource recommendation list and then returned to the user. Some other resources can also be obtained, such as popular resources, similar resources, or other types of resources, and then these other resources and the target resource are used as the content in the resource recommendation list and returned to the user.
[0048] Step S105, constructing the objective function and constraints of the user experience utility optimization problem based on the historical browsing data, the resource attribute data of the target resource and the resource attribute data of the cached resource, solving the objective function under the constraints to select the target recommended resource from the cached resource.
[0049] In some embodiments, the optimization variable of the objective function may be a resource to be recommended selected from cache resources; Figure 2 A flowchart of constructing an objective function to determine target recommended resources in a method for resource recommendation according to an embodiment of the present disclosure is shown. Figure 2 As shown, Figure 1 Step S105 in the embodiment may further include the following steps S201 to S211:
[0050] S201, constructing a user preference correlation function according to historical browsing data and resource attribute data of cached resources, where the user preference correlation function is used to characterize the correlation between the historical browsing data and the resource to be recommended in a type dimension.
[0051] In some embodiments, the step of constructing a user preference correlation function based on historical browsing data and resource attribute data of cached resources in step S201 may include: determining a first type feature of the historical browsing data based on type information of each historical resource in the historical browsing data; determining a second type feature of a set of resources to be recommended based on type information in the resource attribute data of the cached resources; determining a vector distance expression in the type dimension between the historical browsing data and the resources to be recommended based on a vector distance algorithm based on the first type feature and the second type feature; and determining a user preference correlation function between the historical browsing data and the resources to be recommended based on the vector distance expression.
[0052] The following is an example of a video resource:
[0053] In some practical applications, m video types may be predefined, and i may be used to represent the video type identifier, i∈{1, 2, ..., m};
[0054] For the first type of features, you can use express, It can be a collection of historical videos that the user has watched W u The intensity distribution of all videos in each video type, Can include in Can represent the historical video set W u The intensity distribution of all videos in the i-th video type; The expression can be as follows:
[0055]
[0056] Among them, W u represents the historical video set determined based on the historical data of the user watching videos; v′ represents the historical video set W u Any video in; i, j represents the video type identifier (i.e., the i-th, j-th video type), i, j∈{1, 2, ..., m};
[0057] The value is 1 or 0; The value 1 indicates that the video v′ contains type i, and the value 0 indicates that the video v′ does not contain type i. Through the above expression, we can understand that Can express W u The number of videos corresponding to the i-th video type in ;
[0058] Similarly, The value is 1 or 0; A value of 1 can indicate that the video v′ contains type j, and a value of 0 can indicate that the video v′ does not contain type j; Can express W u The number of videos corresponding to the jth video type in , it can be seen that The denominator in the expression can be expressed as The maximum value among i,∈{1,2,...,m}.
[0059] For the second type of features, you can use express, It can represent the set of videos to be recommended γ uv The intensity distribution of all videos in each video type; Can include in It can be expressed as uv The intensity distribution of all videos in the i-th video type; The expression can be as follows:
[0060]
[0061] Among them, γ uv represents the set of cached videos to be recommended generated when the target user u requests the target video v; v′ represents the recommendation list γ uv Any video in; i, j represents the video type identifier (i.e., the i-th, j-th video type), i, j∈{1, 2, ..., m};
[0062] The value is 1 or 0; The value 1 indicates that the video v′ contains type i, and the value 0 indicates that the video v′ does not contain type i. Through the above expression, we can understand that Can express γ uv The number of videos corresponding to the i-th video type in ;
[0063] Similarly, The value is 1 or 0; A value of 1 can indicate that the video v′ contains type j, and a value of 0 can indicate that the video v′ does not contain type j; Can express γ uv The number of videos corresponding to the jth video type in , it can be seen that The denominator in the expression can be expressed as The maximum value among i,∈{1,2,...,m}.
[0064] After obtaining the first type of features and the second type of features, the vector distance algorithm can be used to determine the distance between the two features. For example, the JS divergence distance (Jensen-Shannon distance) can be used to obtain the vector distance expression:
[0065] It can be seen that the user preference correlation function can be determined by the type of each historical video in the historical video set and the type of each cached video to be recommended. Among them, the more similar the type strength distribution in the historical video set is to the type strength distribution in the set composed of the cached videos to be recommended, the more similar the first type feature and the second type feature will be, and the smaller the value corresponding to the vector distance expression will be, which means that the correlation between the historical browsing data and the resources to be recommended in the type dimension is higher.
[0066] S203: construct a resource scoring correlation function according to the resource attribute data of the target resource and the resource attribute data of the cached resource. The resource scoring correlation function is used to characterize the correlation between the target resource and the resource to be recommended in a scoring dimension.
[0067] In some embodiments, the step of constructing a resource scoring correlation function based on the resource attribute data of the target resource and the resource attribute data of the cached resource in step S203 may include: determining the scoring characteristics of the target resource based on the scoring information in the resource attribute data of the target resource; determining the scoring characteristics of each resource to be recommended based on the scoring information in the resource attribute data of the cached resource; determining the similarity expression between the target resource and each resource to be recommended in the scoring dimension based on a similarity algorithm according to the scoring characteristics of the target resource and the scoring characteristics of each resource to be recommended; and determining the resource scoring correlation function based on all similarity expressions.
[0068] In some practical applications, the similarity algorithm may be, for example, a cosine similarity algorithm, an Euclidean distance algorithm, a Pearson coefficient algorithm, etc., or the similarity between two videos may be calculated based on the rating information using machine learning, which is not limited in the present disclosure.
[0069] The following is an example of a video resource:
[0070] After obtaining the scoring features of the target resource and the scoring features of the cached video to be recommended, a similarity algorithm can be used to determine the similarity between the target video and the cached video to be recommended. v,v′ , where v represents the target video requested by the target user u, and v′ represents the cached video to be recommended.
[0071] After obtaining the similarity between each cached video to be recommended and the target video, a resource score correlation function may be determined. For example, it may be as follows:
[0072]
[0073] It can be seen that the resource score correlation function can be jointly expressed by the similarity between each cached video to be recommended and the target video. Among them, when the similarity between the cached video to be recommended and the target video is higher, and / or the number of cached videos to be recommended with high similarity to the target video is larger, the value corresponding to the resource score correlation function will be larger, and it can be considered that the set of cached videos to be recommended and the target video have higher similarity in the score dimension.
[0074] S205 , constructing a recommendation type diversity function according to the resource attribute data of the cached resource, where the recommendation type diversity function is used to characterize the diversity of the to-be-recommended resources in the type dimension.
[0075] In some embodiments, the step of constructing a recommendation type diversity function based on the resource attribute data of the cached resources in step S205 includes: determining the number of types corresponding to the set of resources to be recommended based on the type information in the resource attribute data of the cached resources; obtaining the total number of preset resource types, and then determining the recommendation type diversity function based on the number of types and the total number of resource types.
[0076] The recommendation type diversity function can be expressed using the following formula:
[0077]
[0078] Among them, γ uv represents the set of cached videos to be recommended generated when the target user u requests the target video v; The whole is an indicative function, which is associated with i. If the set of cached videos to be recommended contains video type i, then The value is 1, otherwise it is 0. For example: if the total number of preset resource types is 10, and the set of cached videos to be recommended is {A, B, C}, where video A has two types, a and b, video B has three types, a, b, and c, and video C has only one type, a, then the value corresponding to the recommendation type diversity function of {A, B, C} is 3 / 10, where the repeated types a and b are not counted repeatedly.
[0079] It can be seen that after summing, C γuv The numerator of can represent the number of video types in the set of cached videos to be recommended, so C γuv Can indicate the diversity of the recommended types.
[0080] It should be noted that the present disclosure does not limit the execution order of step S201, step S203, and step S205, which can be executed in any order or simultaneously.
[0081] S207, constructing a user experience utility function according to the user preference correlation function, the resource score correlation function and the recommendation type diversity function.
[0082] In some practical applications, the user experience utility function can be as follows:
[0083]
[0084] Where f(·) can be a sigmoid function; if the requested v∈X, then I v∈X The value is 1, The value is 0; if the requested but The value is 0, The value is 0.
[0085] It can be seen that when the target resource is not stored in the resource database of the edge cache server, the generated γ uv The closer the recommended resources in the target user's historical browsing data are in type and / or in score and / or the more types the recommended resources have, the greater the number of types η(u, v, γ uv ) value, it can be considered that the generated γ uv The probability of being accepted by users is higher.
[0086] S209, taking the maximum user experience utility function as the objective function, and obtaining a threshold value of the number of resources to be recommended to determine the constraint condition;
[0087] The objective function and constraints can be shown as follows:
[0088]
[0089]
[0090] Here, k may represent a threshold value of the number of resources to be recommended.
[0091] S211, obtaining a solution set of optimization variables based on the objective function while satisfying the constraint conditions, and then determining the target recommended resources according to the solution set.
[0092] By solving the formula in step S209, a solution set based on diversity can be obtained to serve as a target recommendation resource.
[0093] In some practical applications, the above optimization problem can be solved based on the greedy DR algorithm (Diverse recommendation algorithm based on diversity).
[0094] Taking the resource video as an example, in the DR algorithm, three parameters can be input, namely user u, the video being requested v, the pre-cached video set X, and the final output recommendation list γ uv The specific calculation process can be as follows: First, generate an empty recommendation list γ uv , and then check whether the requested video v exists in the current video set X. If so, v can be directly added to γ uv and returns it to the user. If video v does not exist in the current video set X, the algorithm will enter the while loop and select a cached video from the edge cache server one by one to add to the recommendation list. In each iteration, the DR algorithm calculates the benefit of adding the new video to the recommendation list by solving the formula in step S209, and then selects the video with the largest benefit to add to γ uv Continue iterating until the length of the recommendation list reaches k, and use the k cached videos obtained at this time as the target recommendation resources.
[0095] In some practical applications, different k videos can be taken each time to calculate the value of the user experience utility function. After all situations are iterated, the k cached videos corresponding to the highest value of the user experience utility function can be directly used as the solution set to determine the target recommended resources.
[0096] Step S107: Generate a resource recommendation set according to the target recommended resource, and then send the resource recommendation set to the client.
[0097] In some practical applications, a cache recommendation module may be provided to implement the method for resource recommendation in the present disclosure.
[0098] Figure 3 A flow chart of a method for resource caching according to an embodiment of the present disclosure is shown. The method provided by the embodiment of the present disclosure may be executed by an edge cache server cluster, but the present disclosure is not limited thereto.
[0099] In the following examples, an edge cache server cluster is used as the execution subject for example description.
[0100] like Figure 3 As shown, the method for resource caching provided by the embodiment of the present disclosure may include the following steps:
[0101] Step S301, determining a user group corresponding to each edge cache server in an edge cache server cluster;
[0102] Step S303, obtaining type preference information of the user group and resource attribute data of each resource in the source server;
[0103] Step S305: determining a resource recommendation set generated after each user in the user group requests a resource and a user experience utility function corresponding to the resource recommendation set based on the type preference information and the resource attribute data of each resource; wherein the resource recommendation set is generated by an edge cache server in the edge cache server cluster; and the resource recommendation set is determined according to the method for resource recommendation described in the above embodiment;
[0104] Step S307, obtaining a first transmission delay between each edge cache server and a second transmission delay between each edge cache server and a source server of the resource;
[0105] Step S309: Based on the first transmission delay, the second transmission delay, the resource recommendation set, and the corresponding user experience utility function of the resource recommendation set, a delay objective function and delay optimization constraints for the total transmission delay optimization problem are constructed, and the delay objective function is solved under the delay optimization constraints to determine the resources to be stored in each edge cache server.
[0106] Through the method for resource caching provided by the embodiment of the present disclosure, it is possible to construct a delay objective function and delay optimization constraints for the total transmission delay optimization problem based on the method for resource recommendation provided by the present disclosure and combined with the transmission delay between multiple edge cache servers, and then solve the resources to be stored in each edge cache server as a caching solution corresponding to the entire edge cache server cluster, and the caching solution can meet the optimization target in the delay dimension, further optimizing the user experience.
[0107] Taking the resource as a video as an example, in some practical applications, a cache decision module can be set to implement the method for resource caching in the present disclosure. The cache decision module can use information such as user preference information, video data information, and video request data to make a decision on video storage with the assistance of the cache recommendation module, and hand over the decision result to the storage space management module for execution.
[0108] The present disclosure can be applied to resource caching scenarios with multiple cache nodes working together, and an overall cache vector is determined for all cache nodes (i.e., edge cache servers) to minimize the average transmission delay of all users. For a single cache node g and the user it serves, if the user request can directly hit the cached content in the local node or accept the recommendation result, then the video transmission delay is 0; if the user can directly obtain the required video from the neighboring cache node g′ or accept the recommendation result from the neighboring node, then the video transmission delay is d gg′ ; Otherwise, the user needs to obtain the video file from the video source server, generating a size of d g The total transmission delay for all users to obtain videos can be calculated as follows:
[0109] D(X)=∑ g∈G ∑ u∈U ∑ v∈V λ g p v ·[1-η(u,v,γ uvg )]·min(d g , min g′∈G (D gg′ ));
[0110] D gg′ =η(u, v, γ uvg′ )·d gg′ +[1-η(u,v,γ uvg′ )]·d g′ ;
[0111] Among them, D gg′ It can represent the average delay incurred when a user in node g obtains the required content from the neighboring node g′, λ g It can represent the number of users accessing node g, p v can represent the popularity of video v, and G can represent the set of cache nodes (i.e., edge cache server cluster).
[0112] The present disclosure may pose the following optimization problem:
[0113]
[0114]
[0115]
[0116] The constraints are that the content in the recommendation list of node g comes from the cache space X g , and the length of the recommendation list does not exceed k. By solving the above formula, the cache content X of each cache node can be obtained.
[0117] Specifically, the greedy DRC algorithm can be used in the present disclosure to solve the above optimization problem. In the DRC algorithm, five parameters can be input to solve the cache content, including the preference matrix P of all users, the capacity c of each cache space, the similarity sim between videos, and the v,v′ , content popularity p v , and the length of the recommendation list k, and finally output the cache list X. The specific workflow of the algorithm is as follows: First, initialize an empty cache list X, and then enter the while loop to iteratively add videos to the cache one by one. In each round of iteration, a matrix vector ut = {ut 1 ,ut2 ,...,ut N} is used to record the transmission delay of each video after it is added to the cache list. For each video l that is not in the cache list, the DRC algorithm can use the DR algorithm to solve the recommendation list and update the delay ut after adding video l to X l Then, the video with the lowest latency is selected and added to the cache list, and the process continues until the cache space is full. The popularity of the content can be reflected in the number of views or the popularity of the video.
[0118] Figure 4 A schematic diagram of a system for resource caching and resource recommendation according to an embodiment of the present disclosure is shown; Figure 4 As shown, including:
[0119] Video transmission module, resource information management module, cache recommendation module, cache decision module and storage space management module; wherein,
[0120] The resource information management module is mainly used to record user preference information, video data information and video request data, wherein the user preference information is recorded in the user attribute file, the video data information is recorded in the video attribute file, and the video request data is recorded in the history log file.
[0121] The cache recommendation module is mainly used to select some videos from the cached video files according to the algorithm described in the present invention and recommend them to the user when the content requested by the user is not stored in the cache server, and to assist the cache decision module in making decisions on video storage.
[0122] The cache decision module mainly uses information such as user preference information, video data information, and video request data to make video storage decisions with the assistance of the cache recommendation module, and submits the decision results to the storage space management module for execution.
[0123] The video transmission module is mainly responsible for receiving user requests, sending and receiving video files, and sending requests to the video source server. The storage space management module is responsible for the storage and retrieval of video files.
[0124] It should be noted that the above figures are only schematic illustrations of the processes included in the method according to an exemplary embodiment of the present invention, and are not intended to be limiting. It is easy to understand that the processes shown in the above figures do not indicate or limit the time sequence of these processes. In addition, it is also easy to understand that these processes can be performed synchronously or asynchronously, for example, in multiple modules.
[0125] Figure 5 FIG. 5 shows a device 500 for resource recommendation according to an embodiment of the present disclosure; Figure 5 As shown, including:
[0126] A receiving module 501 is used to receive a resource acquisition request for a target resource from a target user sent by a client; an acquisition module 502 is used to acquire the target user's historical browsing data, the resource attribute data of the target resource, and the resource attribute data of the cached resource stored in the resource database when the target resource is not stored in the resource database of the edge cache server; a determination module 503 is used to construct an objective function and constraint conditions of a user experience utility optimization problem based on the historical browsing data, the resource attribute data of the target resource, and the resource attribute data of the cached resource, and solve the objective function under the constraint conditions to select a target recommended resource from the cached resource; a sending module 504 is used to generate a resource recommendation set based on the target recommended resource, and then send the resource recommendation set to the client.
[0127] Figure 5 For other contents of the embodiment, reference can be made to the other embodiments mentioned above.
[0128] It will be appreciated by those skilled in the art that various aspects of the present invention may be implemented as a system, method or program product. Therefore, various aspects of the present invention may be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software, which may be collectively referred to herein as a "circuit", "module" or "system".
[0129] Refer to the following Figure 6 The electronic device 600 according to this embodiment of the present disclosure is described. It should be noted that the electronic device shown in the figure is only an example and should not bring any limitation to the function and scope of use of the embodiment of the present invention.
[0130] Refer to the following Figure 6 The electronic device 600 according to this embodiment of the present invention is described. Figure 6 The electronic device 600 shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present invention.
[0131] like Figure 6 As shown, the electronic device 600 is in the form of a general computing device. The components of the electronic device 600 may include but are not limited to: at least one processing unit 610, at least one storage unit 620, and a bus 630 connecting different system components (including the storage unit 620 and the processing unit 610).
[0132] The storage unit stores program codes, which can be executed by the processing unit 610, so that the processing unit 610 performs the steps according to various exemplary embodiments of the present invention described in the above “Exemplary Method” section of this specification. For example, the processing unit 610 can perform the following steps: Figure 2 The method shown in .
[0133] The storage unit 620 may include a readable medium in the form of a volatile storage unit, such as a random access memory unit (RAM) 6201 and / or a cache memory unit 6202 , and may further include a read-only memory unit (ROM) 6203 .
[0134] The storage unit 620 may also include a program / utility 6204 having a set (at least one) of program modules 6205, such program modules 6205 including but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a network environment.
[0135] Bus 630 may represent one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.
[0136] The electronic device 600 may also communicate with one or more external devices 700 (e.g., keyboards, pointing devices, Bluetooth devices, etc.), may also communicate with one or more devices that enable a user to interact with the electronic device 600, and / or communicate with any device that enables the electronic device 600 to communicate with one or more other computing devices (e.g., routers, modems, etc.). Such communication may be performed via an input / output (I / O) interface 650. Furthermore, the electronic device 600 may also communicate with one or more networks (e.g., local area networks (LANs), wide area networks (WANs), and / or public networks, such as the Internet) via a network adapter 660. As shown, the network adapter 660 communicates with other modules of the electronic device 600 via a bus 630. It should be understood that, although not shown in the figure, other hardware and / or software modules may be used in conjunction with the electronic device 600, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, etc.
[0137] In an exemplary embodiment of the present disclosure, a computer-readable storage medium is also provided, on which a program product capable of implementing the above method of the present specification is stored. In some possible implementations, various aspects of the present invention can also be implemented in the form of a program product, which includes a program code, and when the program product is run on a terminal device, the program code is used to enable the terminal device to execute the steps according to various exemplary embodiments of the present invention described in the above "Exemplary Method" section of the present specification.
[0138] The program product for implementing the above method according to the embodiment of the present invention may adopt a portable compact disk read-only memory (CD-ROM) and include program code, and may be run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited thereto, and in this document, a readable storage medium may be any tangible medium containing or storing a program, which may be used by or in combination with an instruction execution system, apparatus, or device.
[0139] The program product may use any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples (non-exhaustive list) of readable storage media include: an electrical connection with one or more wires, a portable disk, 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 disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.
[0140] Computer readable signal media may include data signals propagated in baseband or as part of a carrier wave, in which readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. Readable signal media may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device.
[0141] The program code embodied on the readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing.
[0142] Program code for performing the operations of the present invention may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, C++, etc., and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as a separate software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving a remote computing device, the remote computing device may be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (e.g., through the Internet using an Internet service provider).
[0143] It should be noted that, although several modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the embodiments of the present disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. On the contrary, the features and functions of one module or unit described above can be further divided into multiple modules or units to be embodied.
[0144] In addition, although the steps of the method in the present disclosure are described in a specific order in the drawings, this does not require or imply that the steps must be performed in this specific order, or that all the steps shown must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps, etc.
[0145] Through the description of the above implementation, it is easy for those skilled in the art to understand that the example implementation described here can be implemented by software, or by software combined with necessary hardware. Therefore, the technical solution according to the implementation of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, including several instructions to enable a computing device (which can be a personal computer, a server, a mobile terminal, or a network device, etc.) to execute the method according to the implementation of the present disclosure.
[0146] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the specification and practicing the invention disclosed herein. This application is intended to cover any modification, use or adaptation of the present disclosure, which follows the general principles of the present disclosure and includes common knowledge or customary techniques in the art that are not disclosed in the present disclosure. The specification and examples are intended to be exemplary only, and the true scope and spirit of the present disclosure are indicated by the appended claims.
Claims
1. A method for resource recommendation, characterized in that: The method is applied to an edge cache server, comprising: Receive a resource acquisition request for a target resource from a target user sent by a client; When the target resource is not stored in the resource database of the edge cache server, acquiring historical browsing data of the target user, resource attribute data of the target resource, and resource attribute data of cache resources stored in the resource database; Based on the historical browsing data, the resource attribute data of the target resource and the resource attribute data of the cached resource, construct an objective function and constraint conditions of the user experience utility optimization problem, and solve the objective function under the constraint conditions to select a target recommended resource from the cached resource; A resource recommendation set is generated according to the target recommended resource, and then the resource recommendation set is sent to the client.
2. The method according to claim 1, characterized in that The step of acquiring the historical browsing data of the target user, the resource attribute data of the target resource, and the resource attribute data of the cached resource stored in the resource database includes: Acquire a historical resource set browsed by the target user within a preset time period; determine the historical browsing data according to type information of each historical resource in the historical resource set; Acquire the scoring information of the target resource, and determine the resource attribute data of the target resource according to the scoring information of the target resource; The scoring information and type information of the cache resource are acquired, and resource attribute data of the cache resource is determined according to the scoring information and type information of the cache resource.
3. The method according to claim 2, characterized in that The optimization variable of the objective function is the resource to be recommended selected from the cache resources; The step of constructing an objective function and constraint conditions of the user experience utility optimization problem based on the historical browsing data, the resource attribute data of the target resource, and the resource attribute data of the cached resource, and solving the objective function under the constraint conditions to select a target recommended resource from the cached resource includes: Constructing a user preference correlation function according to the historical browsing data and the resource attribute data of the cached resource, wherein the user preference correlation function is used to characterize the correlation between the historical browsing data and the resource to be recommended in a type dimension; Constructing a resource scoring correlation function according to the resource attribute data of the target resource and the resource attribute data of the cache resource, wherein the resource scoring correlation function is used to characterize the correlation between the target resource and the resource to be recommended in a scoring dimension; Constructing a recommendation type diversity function according to the resource attribute data of the cached resource, wherein the recommendation type diversity function is used to characterize the diversity of the resource to be recommended in the type dimension; Constructing the user experience utility function according to the user preference correlation function, the resource rating correlation function and the recommendation type diversity function; Taking the maximum of the user experience utility function as the objective function, and obtaining a threshold value of the number of resources to be recommended to determine the constraint condition; A solution set of the optimization variables is obtained based on the objective function when the constraint condition is satisfied, and then the target recommended resource is determined according to the solution set.
4. The method according to claim 3, characterized in that The step of constructing a user preference correlation function according to the historical browsing data and the resource attribute data of the cached resources comprises: Determining a first type feature of the historical browsing data according to type information of each historical resource in the historical browsing data; Determining a second type feature of the set of resources to be recommended according to type information in the resource attribute data of the cache resource; According to the first type feature and the second type feature, determining a vector distance expression between the historical browsing data and the resource to be recommended in a type dimension based on a vector distance algorithm; A user preference correlation function between the historical browsing data and the resource to be recommended is determined according to the vector distance expression.
5. The method according to claim 3, characterized in that: The step of constructing a resource scoring correlation function according to the resource attribute data of the target resource and the resource attribute data of the cache resource comprises: Determining a scoring feature of the target resource according to the scoring information in the resource attribute data of the target resource; Determine the scoring characteristics of each resource to be recommended according to the scoring information in the resource attribute data of the cache resource; Determine, based on a similarity algorithm, a similarity expression between the target resource and each resource to be recommended in a scoring dimension according to the scoring characteristics of the target resource and the scoring characteristics of each resource to be recommended; The resource scoring relevance function is determined based on all similarity expressions.
6. The method according to claim 3, characterized in that The step of constructing a recommendation type diversity function according to the resource attribute data of the cache resource comprises: Determining the number of types corresponding to the set of resources to be recommended according to the type information in the resource attribute data of the cache resource; The total number of preset resource types is obtained, and the recommended type diversity function is determined according to the number of types and the total number of resource types.
7. The method according to claim 1, characterized in that Also includes: When the target resource is stored in the resource database of the edge cache server, the resource recommendation list is generated according to the target resource.
8. A method for resource caching, characterized in that: The method is applied to an edge cache server cluster, comprising: Determine the user group corresponding to each edge cache server in the edge cache server cluster; Acquire type preference information of the user group and resource attribute data of each resource in the source server; Based on the type preference information and the resource attribute data of each resource, determine a resource recommendation set generated after each user in the user group requests a resource and a user experience utility function corresponding to the resource recommendation set; wherein the resource recommendation set is generated by an edge cache server in the edge cache server cluster; the resource recommendation set is determined according to the method for resource recommendation according to any one of claims 1 to 7; Obtaining a first transmission delay between each edge cache server and a second transmission delay between each edge cache server and a source server of a resource; Based on the first transmission delay, the second transmission delay, the resource recommendation set, and the user experience utility function corresponding to the resource recommendation set, a delay objective function and delay optimization constraints for the total transmission delay optimization problem are constructed, and the delay objective function is solved under the delay optimization constraints to determine the resources to be stored in each edge cache server.
9. A device for resource recommendation, characterized in that: include: A receiving module, used for receiving a resource acquisition request for a target resource from a target user sent by a client; an acquisition module, for acquiring, when the target resource is not stored in the resource database of the edge cache server, historical browsing data of the target user, resource attribute data of the target resource, and resource attribute data of the cached resource stored in the resource database; A determination module, configured to construct an objective function and constraint conditions of a user experience utility optimization problem based on the historical browsing data, the resource attribute data of the target resource, and the resource attribute data of the cached resource, and solve the objective function under the constraint conditions to select a target recommended resource from the cached resource; The sending module is used to generate a resource recommendation set according to the target recommended resource, and then send the resource recommendation set to the client.
10. A computer-readable storage medium having a computer program stored thereon, wherein when the program is executed by a processor, the method according to any one of claims 1 to 7 or the method according to claim 8 is implemented.
11. An electronic device, characterized in that: include: one or more processors; A storage device, used to store one or more programs, when the one or more programs are executed by the one or more processors, enables the one or more processors to implement the method according to any one of claims 1 to 7 or the method according to claim 8.
