A video pushing method and device, electronic equipment and storage medium

By using recall frequency and matching score on the server side to determine whether a video can be displayed repeatedly, and updating the poster and title before pushing, the problem of low video click-through rate in the waterfall layout scenario is solved, improving user experience and recommendation accuracy.

CN119788919BActive Publication Date: 2026-05-22BEIJING QIYI CENTURY SCI & TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
BEIJING QIYI CENTURY SCI & TECH CO LTD
Filing Date
2024-12-23
Publication Date
2026-05-22

Smart Images

  • Figure CN119788919B_ABST
    Figure CN119788919B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a video pushing method and device, electronic equipment and storage medium, applied to the technical field of video. The method of the embodiments of the present application can be used to perform video recall according to the tag information and viewing data of the client when a client recommendation request is received, to obtain a first recall queue composed of multiple recall videos. When the recall video is a recommended video, the recall frequency of the recall video is calculated according to the first recall queue and a historical recall queue, to perform a judgment on whether the video can be repeatedly displayed. When the repeat display condition is met, the recommended repeat display video is added to a first set of recommended videos to be pushed to the client, to realize repeated pushing of the repeat display video, thereby improving the probability of user clicking the repeat display video, and further improving the click rate of the video.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of video technology, and in particular to a video push method, apparatus, electronic device, and storage medium. Background Technology

[0002] With the development of big data, in waterfall layout scenarios, users scroll down to access new recommended content. This recommended content is often based on user click data, indicating the content the user is interested in. Typically, when recommending content to users, such as videos, previously recommended videos are filtered out to avoid repeatedly showing the same videos.

[0003] However, in one possible scenario, the video content might be of interest to users, but the video title or poster might not have piqued their interest. As a result, users might not click to watch the video content, leading to a low click-through rate. Consequently, the content that users are interested in, calculated based on this click data, will also be inaccurate. Summary of the Invention

[0004] The purpose of this application is to provide a video push method, apparatus, electronic device, and storage medium to increase the click-through rate of videos. The specific technical solution is as follows:

[0005] In a first aspect of this application, a video push method is provided, the method being applied to a server, the method comprising:

[0006] Upon receiving a client recommendation request, video recall is performed based on the client's tag information and viewing data to obtain a first recall queue consisting of multiple recall videos; wherein, the client's tag information represents the attribute information of the client user;

[0007] For each of the recalled videos, if the recalled video is a recommended video, the recall frequency of the recalled video is calculated based on the first recall queue and the historical recall queue; wherein, the historical recall queue is a video queue composed of recalled videos corresponding to each client recommendation request under the same client's first recommendation request; the first recommendation request is used to request the server to push videos to the client;

[0008] For each of the recalled videos, a matching score is calculated based on a pre-trained first deep learning model; wherein the first deep learning model is pre-trained based on the sample recalled videos and the ground truth of the matching scores of the sample recalled videos; the matching score represents the matching degree between the recalled video and the client user;

[0009] Based on the recall frequency and the matching score, it is determined whether the recalled video is a video that can be displayed repeatedly. If so, it is added to the first set of videos to be recommended.

[0010] The first set of videos to be recommended is sent to the client for video push.

[0011] In one possible implementation, before sending the first set of videos to be recommended to the client for video push, the method further includes:

[0012] For each repeatable video, obtain the number of times it has been pushed; wherein, the number of times it has been pushed is the total number of times the repeatable video has been pushed to the client based on the first recommendation request from the same client;

[0013] Determine whether the number of times the video has been pushed is greater than or equal to a preset push threshold. If so, delete the video that can be displayed repeatedly from the first set of videos to be recommended.

[0014] Sending the first set of videos to be recommended to the client for video push includes:

[0015] Based on the number of times the re-displayable video has been pushed, the first videos to be recommended in the first set of videos to be recommended are reordered to obtain the sorted first set of videos to be recommended.

[0016] The first set of videos to be recommended after sorting is sent to the client for video push.

[0017] In one possible implementation, after sending the first set of videos to be recommended to the client for video push, the method further includes:

[0018] Record the push time of each push for each video in the first set of videos to be recommended;

[0019] Before sending the first set of videos to be recommended to the client for video push, the method further includes:

[0020] For each video that can be displayed repeatedly, determine the first push time that is closest to the current time among the push times;

[0021] Determine whether the time difference between the current time and the first push time of the repeatable video is less than or equal to a preset duration. If so, delete the repeatable video from the first video set.

[0022] In one possible implementation, the method further includes:

[0023] Obtain the first recommended poster and / or the first recommended title corresponding to each first recommended video in the first set of videos to be recommended;

[0024] For each first video to be recommended, arbitrarily select one poster from each of the first posters to be recommended as the second poster to be recommended, and determine whether the second poster to be recommended is the already recommended poster; and / or, arbitrarily select one title from each of the first titles to be recommended as the second title to be recommended, and determine whether the second title to be recommended is the already recommended title;

[0025] If not, the second poster to be recommended and / or the second title to be recommended, along with the first video to be recommended, will be added to the first set of videos to be recommended.

[0026] If so, then reselect a second poster to be recommended until the second poster to be recommended is not the already recommended poster, and / or reselect a second title to be recommended until the second title to be recommended is not the already recommended title.

[0027] In one possible implementation, for each recalled video, if the recalled video is a recommended video, calculating the recall frequency of the recalled video based on the first recall queue and the historical recall queue includes:

[0028] The recall frequency of a video is obtained by counting the number of times it appears in the first recall queue and the historical recall queue.

[0029] In one possible implementation, the method further includes:

[0030] For each client user, for each element in the recommended videos and recommended posters that have been recommended to that client user, a preset number of hash functions are used to map the element to the first position of the first vector to obtain the first vector representing the storage state of each element; wherein, one hash function corresponds to one first position;

[0031] For each element of the first vector, determine whether the value of the vector element adjacent to the first vector element is the same as its own value. If so, determine that the first vector element and its adjacent vector element are duplicate vector elements.

[0032] The repeated vector elements in the first vector are compressed and encoded to obtain the encoded first vector;

[0033] The encoded first vector is stored in the first database, wherein the first vector is used to determine whether the recalled video, and / or the second poster to be recommended, and / or the second title to be recommended has been recommended.

[0034] In one possible implementation, after receiving a client recommendation request and performing video recall based on the client's tag information and viewing data to obtain a first recall queue consisting of multiple recall videos, the method further includes:

[0035] Obtain the encoded first vector from the first database;

[0036] The encoded first vector is decoded using a decoding function to obtain the first vector;

[0037] For each recalled video, the second position is determined from the first vector based on the hash function corresponding to the recalled video;

[0038] Determine whether the values ​​at the second position all indicate that the video is stored as "yes". If so, determine that the recalled video is a recommended video.

[0039] In one possible implementation, determining whether the second poster to be recommended is the already recommended poster includes:

[0040] Obtain the encoded first vector from the first database;

[0041] The encoded first vector is decoded using a decoding function to obtain the first vector;

[0042] For the second poster to be recommended, the third position is determined from the first vector according to the hash function corresponding to the recalled video;

[0043] Determine whether the values ​​at the third position all indicate that the poster is stored as yes. If yes, then determine that the second poster to be recommended is a recommended poster.

[0044] The step of determining whether the second title to be recommended is a title that has already been recommended includes:

[0045] Obtain the encoded first vector from the first database;

[0046] The encoded first vector is decoded using a decoding function to obtain the first vector;

[0047] For the second title to be recommended, the fourth position is determined from the first vector according to the hash function corresponding to the recalled video;

[0048] Determine whether the value at the fourth position indicates that the title is stored as "yes". If so, determine that the second title to be recommended is a recommended title.

[0049] In another aspect of this application, a video push device is provided, the device being applied to a server, the device comprising:

[0050] The video recall module is used to recall videos based on the client's tag information and viewing data when a client recommendation request is received, and to obtain a first recall queue consisting of multiple recall videos; wherein, the client's tag information represents the attribute information of the client user;

[0051] The recall frequency calculation module is used to calculate the recall frequency of each recalled video based on the first recall queue and the historical recall queue, provided that the recalled video is a recommended video. The historical recall queue is a video queue composed of recalled videos corresponding to each client recommendation request under the same client's first recommendation request. The first recommendation request is used to request the server to push videos to the client.

[0052] The matching score calculation module is used to calculate the matching score of each recalled video based on a pre-trained first deep learning model; wherein, the first deep learning model is pre-trained based on the sample recalled video and the ground truth of the matching score of the sample recalled video; the matching score represents the matching degree between the recalled video and the client user.

[0053] The repeatable video determination module is used to determine whether the recalled video is a repeatable video based on the recall frequency and the matching score. If so, it is added to the first set of videos to be recommended.

[0054] The video push module is used to send the first set of videos to be recommended to the client for video push.

[0055] In one possible implementation, the device further includes:

[0056] The module for obtaining the number of times a video has been pushed is used to obtain the number of times each video that can be repeatedly displayed has been pushed; wherein, the number of times the video that can be repeatedly displayed has been pushed to the client based on the first recommendation request from the same client;

[0057] The push count determination module is used to determine whether the push count is greater than or equal to a preset push threshold. If so, the video that can be repeatedly displayed is deleted from the first set of videos to be recommended.

[0058] The video push module includes:

[0059] The sorting submodule is specifically used to reorder each of the first videos to be recommended in the first set of videos to be recommended based on the number of times the videos that can be repeatedly displayed have been pushed, so as to obtain a sorted set of the first videos to be recommended.

[0060] The video push submodule is specifically used to send the sorted first set of recommended videos to the client for video push.

[0061] In one possible implementation, the device further includes:

[0062] The push recording module is used to record the push time of each push for each video to be recommended in the first set of videos to be recommended;

[0063] The push time acquisition module is used to determine, for each repeatable video, the first push time that is closest to the current time among the push times;

[0064] The freeze period determination module is used to determine whether the time difference between the current time and the first push time of the repeatable video is less than or equal to a preset duration. If so, the repeatable video is deleted from the first video set.

[0065] In one possible implementation, the device further includes:

[0066] The poster or title acquisition module is used to acquire each first recommended poster and / or first recommended title corresponding to each first recommended video in the first set of recommended videos;

[0067] The poster or title judgment module is used to, for each first video to be recommended, arbitrarily select one poster from each of the first posters to be recommended as the second poster to be recommended, and determine whether the second poster to be recommended is the already recommended poster; and / or, arbitrarily select one title from each of the first titles to be recommended as the second title to be recommended, and determine whether the second title to be recommended is the already recommended title;

[0068] The poster or title addition module is used to, if not, add the second poster to be recommended and / or the second title to be recommended along with the first video to be recommended to the first video set to be recommended;

[0069] The poster selection module is used to, if so, reselect a second poster to be recommended until the second poster to be recommended is not the already recommended poster, and / or reselect a second title to be recommended until the second title to be recommended is not the already recommended title.

[0070] In one possible implementation, the recall frequency calculation module includes:

[0071] The recall frequency calculation submodule is specifically used to count the number of times the recalled video appears in the first recall queue and the historical recall queue, and obtain the recall frequency of the recalled video.

[0072] In one possible implementation, the device further includes:

[0073] The hash function mapping module is used to map each element in the recommended videos and posters that have been recommended to each client user to the first position of the first vector using a preset number of hash functions, thereby obtaining a first vector representing the storage status of each element; wherein, one hash function corresponds to one first position.

[0074] The vector element value judgment module is used to determine, for each vector element of the first vector, whether the value of the vector element adjacent to the vector element is the same as its own value. If so, the vector element and its adjacent vector element are determined to be duplicate vector elements.

[0075] A compression encoding module is used to compress and encode the repeated vector elements in the first vector to obtain the encoded first vector.

[0076] A vector storage module is used to store the encoded first vector in the first database, wherein the first vector is used to determine whether the recalled video, and / or the second poster to be recommended, and / or the second title to be recommended has been recommended.

[0077] In one possible implementation, the device further includes:

[0078] A vector acquisition first module is used to acquire the encoded first vector from the first database;

[0079] The first decoding module is used to decode the encoded first vector using a decoding function to obtain the first vector;

[0080] The second location determination module is used to determine the second location from the first vector for each recalled video based on the hash function corresponding to the recalled video.

[0081] The first storage status determination module is used to determine whether the values ​​at the second position all indicate that the storage status of the video is yes. If so, the recalled video is determined to be a recommended video.

[0082] In one possible implementation, the poster or title determination module includes:

[0083] The second vector acquisition module is used to obtain the encoded first vector from the first database;

[0084] The second decoding module is used to decode the encoded first vector using a decoding function to obtain the first vector;

[0085] The third position determination module is used to determine the third position from the first vector based on the hash function corresponding to the recalled video for the second poster to be recommended.

[0086] The second storage status judgment module is used to determine whether the values ​​at the third position all indicate that the storage status of the poster is yes. If so, the second poster to be recommended is determined to be a recommended poster.

[0087] The third module for obtaining vectors is used to obtain the encoded first vector from the first database;

[0088] The third decoding module is used to decode the encoded first vector using a decoding function to obtain the first vector;

[0089] The fourth position determination module is used to determine the fourth position from the first vector based on the hash function corresponding to the recalled video for the second title to be recommended;

[0090] The third storage status judgment module is used to determine whether the values ​​at the fourth position all indicate that the storage status of the title is yes. If so, the second title to be recommended is determined to be a recommended title.

[0091] In another aspect of the embodiments of this application, an electronic device is also provided, comprising:

[0092] Memory, used to store computer programs;

[0093] When a processor executes a program stored in memory, it implements any of the video push methods described in the embodiments of this application.

[0094] In another aspect of this application, a computer-readable storage medium is provided, wherein a computer program is stored therein, and when the computer program is executed by a processor, it implements any of the video push methods described above.

[0095] In another aspect of this application, a computer program product containing instructions is also provided, which, when run on a computer, causes the computer to execute any of the video push methods described above.

[0096] This application provides a video push method, apparatus, electronic device, and storage medium. By applying the method of this application, when the recalled video is a recommended video, it is possible to determine whether it can be displayed repeatedly based on the recall frequency and personalized score of the recalled video. When the condition for repeated display is met, the recommended video that can be displayed repeatedly is added to the first set of videos to be recommended and pushed to the client, thereby realizing repeated push of the video that can be displayed repeatedly, thereby increasing the probability of users clicking on the video that can be displayed repeatedly, and thus increasing the click-through rate of the video. Attached Figure Description

[0097] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the accompanying drawings used in the description of the embodiments or the prior art will be briefly introduced below.

[0098] Figure 1 A first schematic diagram of a waterfall-style page layout provided in an embodiment of this application;

[0099] Figure 2 This is a second schematic diagram of a waterfall-style page layout provided in an embodiment of this application;

[0100] Figure 3 A third schematic diagram of a waterfall-style page layout provided in an embodiment of this application;

[0101] Figure 4 A schematic diagram of a video push interface provided in an embodiment of this application;

[0102] Figure 5 This is a schematic flowchart of a video push method provided in an embodiment of this application;

[0103] Figure 6 A schematic diagram of sliding window calculation provided in an embodiment of this application;

[0104] Figure 7 Another flowchart illustrating the video push method provided in this application embodiment;

[0105] Figure 8 A schematic diagram illustrating the storage of video in a first database provided in an embodiment of this application;

[0106] Figure 9 This is a schematic diagram of a video push system provided in an embodiment of this application;

[0107] Figure 10 This is another structural diagram of the video push system provided in the embodiments of this application;

[0108] Figure 11 This is a schematic diagram of a video push device provided in an embodiment of this application;

[0109] Figure 12 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0110] The technical solutions of the present invention will now be described with reference to the accompanying drawings in the embodiments of the present invention.

[0111] The method of this application embodiment can be applied to various video recommendation scenarios. In one example, the waterfall page layout is a popular layout method nowadays. The visual appearance of this page layout method is a multi-column layout with unevenness. As the page scroll bar scrolls down, the client can continuously load the video data sent by the server and append it to the end of the current page.

[0112] Figures 1 to 3 Several diagrams illustrating a waterfall-style page layout. Figure 1 The waterfall-style page layout shown is commonly used in TV video software. On the TV interface, multiple video windows can be displayed, each showing a poster and recommendation for the corresponding video. When a user is attracted by a video poster or recommendation and clicks on the corresponding video window, they can access and watch the actual video content. If no video content of interest appears on the interface, the user can scroll down the page using the remote control to access new video content.

[0113] like Figure 2 The waterfall-style page layout shown is commonly used in short video apps. In this layout, the interface of the electronic device directly displays the actual content of a video. Users can watch the video content directly or switch videos by scrolling down or up on the screen. Figure 3 The waterfall-style page layout shown is commonly used in video websites or live streaming software. In this layout, the electronic device's interface can display multiple video windows, each directly showing the actual content of the video. Users can access the video content by clicking on the window corresponding to a video they are interested in, and the entire interface of the electronic device only displays that video. If no video of interest is displayed, the user can scroll down or up on the screen to access new videos.

[0114] The method described in this application is not only applicable to the waterfall layout scenario described above, but also to other video recommendation scenarios. For example, this application embodiment can be applied to a video page-turning recommendation scenario, such as... Figure 4 As shown, users can click the page-turning buttons to flip pages up and down or left and right to access other recommended videos.

[0115] In related technologies, to avoid recommending duplicate content to users, filtering functions are typically implemented. This means that videos already recommended to a user will not be recommended again during subsequent swiping or page turning. However, electronic devices have limited screen space. A user might not click on a video because the video poster or recommendation text displayed in the video window didn't attract their attention, or they might simply have missed the video altogether. The actual video content might be of interest to the user. Therefore, the filtering function might incorrectly classify a video as uninteresting simply because the user didn't click on it, and thus prevent it from being recommended in subsequent videos. This not only results in a low click-through rate for that particular video but also, due to the incorrect judgment that the video is uninteresting, the subsequent video recommendations based on this feedback may be affected, ultimately impacting the user experience.

[0116] To address at least one of the aforementioned problems, a first aspect of this application provides a video push method, which is applied to a server and includes, for example: Figure 5 The steps shown are as follows:

[0117] Step S501: Upon receiving a client recommendation request, video recall is performed based on the client's tag information and viewing data to obtain a first recall queue consisting of multiple recall videos.

[0118] In practical applications, the method of this embodiment is applied to a server-side terminal device, which can be an electronic device such as a computer or server. The client recommendation request is a video recommendation request sent by the client to the server. This recommendation request can be automatically triggered or triggered in response to a user's recommendation request operation. For example, in a short video recommendation application, the software directly recommends videos to the user when the user opens it; in this case, opening the software automatically triggers a client recommendation request. In another example, the client recommendation request can be triggered in response to a user's recommendation request operation while using the video recommendation software. This user recommendation request operation can be a page-turning signal sent by the user to the electronic display device via a remote control, or it can be a direct swipe up, swipe down, or page-turning operation on the screen of the electronic display device.

[0119] The client-side tagging information can be attribute information of the client user, which indicates the user's video viewing preferences. In one example, when a user logs into the software for the first time, the client can push an interest selection page to the user, guiding them to choose their interests and collecting the selected interest information. This interest information mainly indicates the user's viewing preferences and is sent to the server as tagging information. The user's selected interest information can be information indicating the video type, such as movies, variety shows, TV series, documentaries, etc.; or information indicating the video's related field, such as sports, entertainment, suspense, comedy, etc. In another example, the client-side attribute information can be information indicating the user's basic information, such as the user's age. If the user is under 18, then educational videos related to teenagers can be pushed to that user.

[0120] Client-side viewing data can represent how client users view video content. For example, client-side viewing data can include whether a user clicks to watch video content, the duration of the video viewing, and the number of times the user watches the video.

[0121] Video recall refers to the process in a push notification system of filtering videos that a user might be interested in from a massive library for the user to browse and select. This can be done based on multiple dimensions related to the user or the video itself. For example, based on the user's tags and viewing data, the system can filter content that the user might be interested in from a vast database of videos. In one example, if a user watches a comedy video starring actor A, the server, upon receiving a recommendation request from the client, can recall videos that include other videos starring actor A, as well as various comedy videos.

[0122] Step S502: For each recalled video, if the recalled video is a recommended video, calculate the recall frequency of the recalled video based on the first recall queue and the historical recall queue.

[0123] The historical recall queue is a video queue composed of recall videos corresponding to each client's recommendation request under the same client's first recommendation request. The client's first recommendation request is used to request the server to push videos to the client.

[0124] In practical applications, each time a user triggers a client recommendation request, the server performs a corresponding recall, obtaining a recall queue of videos. The server then filters the recall queue and recommends the filtered videos to the client. Each video is stored in a database after being recommended to the client. Users determine whether a video has been recommended by checking if it is already in the database.

[0125] In practical applications, the recalled videos obtained through video recall can be either videos that have already been pushed or videos that have not yet been pushed. The recall frequency is the sum of the number of times a particular recalled video appears in the first recall queue and all historical recall queues under the first recommendation request on the same client.

[0126] The client-side first recommendation request is a search request initiated by the user in actual application. It refers to a user's search request based on their personalized needs within the client. This can be triggered by the user clicking the search box on the client interface or by clicking on a specific video type area. For example, a user clicking the search bar in a video playback software to find a video they want to watch triggers the client-side first recommendation request. The client will then display relevant recommended videos based on the user's search query. Every swipe down or page turn performed by the user on the page displaying relevant recommended videos can trigger various client-side recommendation requests under this first recommendation request. In another example, a user directly clicking on the movie section on the client interface triggers the client-side first recommendation request. The server responds to this search request by pushing various movie videos to the client. Every pull-down search performed by the user on the movie video push display interface can trigger various client-side recommendation requests under this first recommendation request.

[0127] Step S503: For each recalled video, calculate the matching score of the recalled video based on the pre-trained first deep learning model.

[0128] The first deep learning model is pre-trained using the recalled videos and their ground truth matching scores. The matching score represents the degree of relevance between the recalled videos and the client users. In one example, the deep learning model can be trained using multiple feature data, including sample information from the recalled videos (such as the actor list, video type, and video content) and client-side tag information. This first deep learning model is primarily used to calculate the matching score between the recalled videos and the client users based on the relevant information (such as actors, content, and type) and the client's user-related information (such as client-side tag information and viewing data). A higher matching score indicates a higher relevance between the recalled video and the client user's tag information, a better match with the user's video viewing preferences, and a greater likelihood that the user will be interested in the recalled video. Therefore, the recalled video can be repeatedly pushed to increase its click-through rate.

[0129] Step S504: Determine whether the recalled video is a video that can be displayed repeatedly by using the recall frequency and matching score.

[0130] This system allows setting a recall threshold and a score threshold. The determination of whether a recalled video is a repeatable video is based on whether the recall frequency is greater than or equal to the recall threshold and whether the matching score is greater than or equal to the score threshold. The recall threshold can be determined based on actual filtering needs. If the frequency of pushing already pushed videos needs to be reduced, a larger value can be set for the recall threshold. For example, the recall threshold could be set to 6, 8, or 9. The score threshold can also be determined based on actual filtering needs. A higher score threshold results in fewer repeatable videos, but a higher probability that users will click on them.

[0131] If so, proceed to step S505: add it to the first set of videos to be recommended.

[0132] If the recall frequency of the recalled video is greater than or equal to the recall threshold and the matching score is greater than or equal to the score threshold, it is determined that the user has a high interest in the recalled video and is more likely to click on it. Therefore, the recalled video can be determined as a video that can be displayed repeatedly, and thus the video that can be displayed repeatedly is added to the first set of videos to be recommended, so as to facilitate subsequent push.

[0133] In practical applications, if the recall frequency of a recalled video is less than the aforementioned recall threshold or the matching score is less than the score threshold, it is considered that the user has little interest in the recalled video and is less likely to click on it. In order to avoid repeatedly pushing already pushed videos to the client and causing user resentment, the already pushed recalled video can be deleted and no longer pushed to it.

[0134] Step S506: Send the first set of videos to be recommended to the client for video push.

[0135] The method in this embodiment can be calculated using a sliding window. Its basic principle is to maintain a fixed window and slide the entire first recall queue, performing the aforementioned calculations for each video that is slid to. The sliding window can further include two windows: one is a non-repeatable display window used to filter out already pushed videos; the other is a repeatable display window used to push videos that can be repeatedly displayed.

[0136] In one example, such as Figure 6As shown, the sliding window includes window A and window B. Window A is a non-repeatable display window used to execute the recommendation method in related technologies to filter the already pushed videos. Window B is a repeatable display window, which can be used to execute the method of this application embodiment to repeatedly push the already pushed repeatable videos. Both slide in unit steps on the first recall queue, each executing the relevant push method to obtain a first subset of videos to be recommended and a second subset of videos to be recommended, and send them to the client as a push result, i.e., the first set of videos to be recommended.

[0137] By applying the method of this application embodiment, when the recalled video is a recommended video, a determination can be made as to whether it can be displayed repeatedly based on the recall frequency and matching score of the recalled video. When the recalled video meets the condition for repeated display, the video is added to the first set of recommended videos and pushed to the client, thereby realizing repeated push of videos that can be displayed repeatedly, thereby increasing the probability of users clicking on videos that can be displayed repeatedly, and thus increasing the click-through rate of the video.

[0138] In one possible implementation, the method of this application embodiment can also filter repeatedly pushed and repeatedly displayed videos. Before step S506 above, the method of this application embodiment may further include the following steps:

[0139] Step 1: For each video that can be displayed repeatedly, obtain the number of times it has been pushed.

[0140] The "push count" refers to the total number of times a repeatable video has been pushed to the client based on the first recommendation request from the same client. In practical applications, after a video is pushed, push information such as the number of times it has been pushed and the push time can be recorded. In one example, the recorded push information is updated in real time, and for a specific repeatable video, the number of times it has been pushed can be directly read.

[0141] In one possible implementation, after determining in step S504 that a recommended recall video is a repeatable video, the repeatable video can be marked as repeatable to obtain repeatable marking information. This repeatable marking information can be a tag, represented using binary data. In one example, "0" indicates that the video is not repeatable, and "1" indicates that the video is repeatable.

[0142] In the first batch of videos to be recommended, the repeatability information of each video can be obtained. If the repeatability information is "1", then the video to be recommended is confirmed as a video that can be displayed repeatedly.

[0143] Step 2: Determine if the number of times the video has been pushed is greater than or equal to the preset push threshold. If so, delete the video that can be displayed repeatedly from the first set of videos to be recommended.

[0144] The method in this embodiment is executed by the aforementioned repeatable display window. The size of the repeatable display window can be configured according to actual needs. Within the size range of the repeatable display window, the number of times the repeatable video has been pushed is determined. If the number of times the repeatable video has been pushed is greater than or equal to a preset push threshold, it indicates that the video has been recommended to the user multiple times in actual application. To avoid user annoyance caused by repeated pushes, it needs to be discarded, i.e., the repeatable video is deleted from the first set of videos to be recommended. The preset push threshold can be determined according to actual application needs. If it is necessary to push the video to the user more times to ensure that the user does not miss it due to not noticing it, the preset push threshold can be set to a larger value; if it is necessary to avoid causing user annoyance, the preset push threshold can be set to a smaller value.

[0145] After filtering the videos in the first set of videos to be recommended, the videos in the first set of videos to be recommended can be sorted as follows:

[0146] Step 3: Based on the number of times the videos that can be repeatedly displayed have been pushed, reorder the videos in the first set of videos to be recommended, and obtain the sorted set of videos to be recommended.

[0147] Step 4: Send the sorted first set of recommended videos to the client for video push.

[0148] To improve user experience, the videos in the first set of recommended videos can be reordered based on the number of times they have been pushed to the system. For example, videos that have been pushed more times can be placed at the bottom of the sorting list. This reordering can be done using a greedy algorithm. For each recommended video, the algorithm's optimization strategy is used to calculate whether it meets the preset rules of the optimization strategy. If it does, the video is then distributed to a designated location on the client interface.

[0149] In practical applications, to avoid pushing multiple similar videos to the client at once and negatively impacting user experience, the sorting of the first recommended videos can be based on their type or frequency, allowing for the distribution of various video types to the client. Furthermore, in one possible implementation, the number of videos that can be repeatedly displayed can be controlled during video distribution. Since the screen size of the client's electronic display device is limited, the number of videos pushed each time is also limited. To avoid an excessive proportion of repeatedly displayed videos being pushed to the user, the number of repeatedly displayed videos can be limited during video distribution. For example, the number of repeatedly displayed videos in the first set of recommended videos can be set to no more than 3, thus preventing a poor user experience caused by too many repeatedly pushed videos on the client's display interface.

[0150] By applying the method of this application embodiment, the number of times a re-displayable video has been pushed can be determined, and if the number of pushes has reached a preset push threshold, the re-displayable video can be discarded, thus avoiding recommending the same video to users too much and improving the user experience.

[0151] In one possible implementation, the videos in the first set of videos to be recommended may also be filtered as follows;

[0152] Step 1: For each repeatable video, determine the first push time that is closest to the current time in the push time.

[0153] In practical applications, after a video is pushed, the push time and number of pushes can be recorded. One possible implementation is to send a first set of videos to be recommended to the client for video push, and then record the push time of each push for each video in the first set. For example, for a specific video, the push time for each push is recorded as follows: Push Count: 1, Push Time: 2024-12-20-09:50; Push Count: 2, Push Time: 2024-12-20-09:56; Push Count: 3, Push Time: 2024-12-20-10:03. Therefore, for a given video, the push time corresponding to its last push is the most recent first push time, which in the above example is 2024-12-20-10:03.

[0154] Step 2: Determine whether the time difference between the current time and the first push time of the repeatable video is less than or equal to the preset duration. If so, delete the repeatable video from the first set of recommended videos.

[0155] The preset duration is a freeze period after a video is pushed, which is the TTL (Time To Live) period for the already pushed video. During this freeze period, the already pushed video will not be pushed again. This preset duration can be configured according to the actual application scenario requirements. For example, for short video pushes, a shorter freeze period can be set, such as 2 hours, 4 hours, or 6 hours; for long video pushes, a longer freeze period can be set, such as 12 hours, 24 hours, or 48 hours.

[0156] In one example, the preset duration is 5 minutes. Using the example above, if the current time is 2024-12-20-10:07, the time difference between the current time and the first push time is 4 minutes, which is less than the preset duration. This indicates that the repeatable video is within the freeze period and needs to be removed from the first set of videos to be recommended.

[0157] By applying the method of this application embodiment, it is possible to determine whether a repeatable video is in a freeze period and discard repeatable videos that are in a freeze period, thereby avoiding the repeated push of the same video to users in a short period of time, which would affect the user experience.

[0158] In one possible implementation, when pushing videos to clients, the videos are accompanied by a poster and / or title. Therefore, the method of this application embodiment may further include the following steps:

[0159] Step (1): Obtain the first recommended poster and / or the first recommended title corresponding to each first recommended video in the first recommended video set.

[0160] Step (2): For each first video to be recommended, randomly select one poster from each first poster to be recommended as the second poster to be recommended, and determine whether the second poster to be recommended is a recommended poster; and / or, randomly select one title from each first title to be recommended as the second title to be recommended, and determine whether the second title to be recommended is a recommended title.

[0161] If not, proceed to step (3): add the second poster to be recommended and / or the second title to be recommended along with the first video to be recommended to the first video set;

[0162] If so, return to step (2) to reselect a second poster to be recommended until the second poster to be recommended is not the already recommended poster, and / or reselect a second title to be recommended until the second title to be recommended is not the already recommended title.

[0163] In this context, the poster refers to the promotional poster corresponding to the video, and the title is the promotional name for the video. One video can correspond to multiple posters and titles. For example, when displaying a film or television series on the client interface, the promotional poster could be a full cast photo, or it could be a photo of the male and female leads; the synopsis could be used as the title; or it could be a plot point of a specific character.

[0164] In practical applications, recommended videos, recommended posters, and recommended titles are also stored in a database. To determine whether a second poster or title to be recommended has already been recommended, it is only necessary to check if it exists in the aforementioned database.

[0165] For each video to be recommended initially, if the selected second poster is a previously recommended video, it means that the previously recommended poster for the first video did not generate user interest. Therefore, the poster needs to be changed when recommending the first video until the selected second poster is one that has not been recommended. For example, a client user might be a loyal fan of team A. If, when recommending a video of a match between team A and team B, team B's images and descriptions are used as the poster and title, the user might not click to watch the video. However, the video is still of interest to the user. Therefore, when recommending the video again, if images and descriptions of team A (which haven't been recommended before) are used as the poster and title, the user is highly likely to click to watch the video.

[0166] By applying the method of this application embodiment, it is possible to determine whether the second poster and / or the second title selected for the first recommended video has already been recommended. If so, the selection is repeated until the selected second poster and / or the second title is a non-recommended poster and / or title. This can achieve the switching of repeatedly displayed recommended videos to non-recommended posters and / or titles, increasing the likelihood of user clicks and thus improving the video's click-through rate.

[0167] In one possible implementation, the recall frequency of the recalled videos can be calculated through the following steps:

[0168] The recall frequency of a video is obtained by counting the number of times it appears in the first recall queue and the historical recall queue.

[0169] In practical applications, the recall frequency can be recorded for each video to obtain recall frequency information. This recall frequency information is updated every time a video is recalled. Therefore, when obtaining the recall frequency of a recalled video, the recall frequency information can be directly identified to obtain the recall frequency.

[0170] By applying the method of the embodiments of this application to calculate the recall frequency of the recalled video, it is possible to determine whether the video is a repeatable video based on the recall frequency and matching score in the subsequent process. If the video is a repeatable video, it can be pushed repeatedly, thereby increasing the likelihood of users clicking on the video and increasing the click-through rate of the video.

[0171] In practical applications, recommended videos, recommended posters, and recommended titles can be stored in a database using a Bloom filter, as follows:

[0172] Step (1): For each client user, for each element in the recommended videos, recommended posters and recommended titles that have been recommended to that client user, use a preset number of hash functions to map the element to the first position of the first vector to obtain the first vector representing the storage status of each element.

[0173] Each client user corresponds to a first vector, and a hash function corresponds to a first position. The first position indicates the position of the vector element in the first vector, where the recommended video, recommended poster, or recommended title is mapped to the first vector at the specified row and column. In one example, a function maps a recommended video to the first row and third column of the first vector.

[0174] Step (2): For each vector element of the first vector, determine whether the value of the vector element adjacent to the vector element is the same as its own value. If so, determine that the vector element and the adjacent vector element are duplicate vector elements.

[0175] Step (3): Compress and encode the repeated vector elements in the first vector to obtain the encoded first vector.

[0176] In practical applications, the first vector is the mapped Bloom filter. The first vector can be compressed and stored using the snappy compression algorithm, thereby reducing the storage space occupied by the Bloom filter.

[0177] Step (four): Store the encoded first vector in the first database, wherein the first vector is used to determine whether the recalled video, and / or the second poster to be recommended, and / or the second title to be recommended is already recommended.

[0178] To avoid excessive data storage and pressure on bandwidth and cache databases, the list of pushed videos stored in the first database shall not exceed 600, and the list of poster image entities shall not exceed 6000. Of course, these values ​​can be dynamically configured according to actual needs.

[0179] The method described in this application can store recommended videos, posters, and titles using a Bloom filter and a snappy compression algorithm, thereby saving system resources, reducing cache pressure, improving system IO (input / output) efficiency, and ensuring system latency requirements.

[0180] In one possible implementation, the following steps can be used to determine whether a recalled video is a previously recommended video:

[0181] Step A: Obtain the encoded first vector from the first database.

[0182] When obtaining the encoded first vector, the encoded first vector corresponding to the client user can be retrieved from the first database based on the client user's ID.

[0183] Step B: Decode the encoded first vector using a decoding function to obtain the first vector.

[0184] The decoding function is the same as the decoding function for the snappy compression algorithm in related technologies, which will not be described in detail in this application.

[0185] Step C: For each recalled video, determine the second position from the first vector according to the hash function corresponding to the recalled video.

[0186] Step D: Determine whether the values ​​at the second position all indicate that the video is stored as "yes". If so, determine that the recalled video is a recommended video.

[0187] In practical applications, a recommended video is mapped to three positions in a first vector using three hash functions. The values ​​at these three positions in the first vector are then set to 1. When determining whether a recalled video is a recommended video, the hash function corresponding to the recalled video is used to determine the three positions in the first vector. If all three positions have a value of "1", it means the recalled video exists in the first database and is a recommended video. If any one of the three positions has a value other than "1", it means the video is not a recommended video.

[0188] By applying the method of this application embodiment, it is possible to determine whether the recalled video is a recommended video by using the first vector in the first database, and then, if the recalled video is a recommended video, to determine the condition for repeated display.

[0189] In one possible implementation, the determination of whether the second poster to be recommended is a previously recommended poster can also be made through the following steps:

[0190] Step a: Obtain the encoded first vector from the first database.

[0191] Step b: Decode the encoded first vector using a decoding function to obtain the first vector.

[0192] Step c: For the second poster to be recommended, determine the third position from the first vector according to the hash function corresponding to the recalled video.

[0193] Step d: Determine whether the values ​​at the third position all indicate that the poster is stored as "yes". If so, determine that the second poster to be recommended is a recommended poster.

[0194] To determine whether the second title to be recommended is already a recommended title, follow these steps:

[0195] Step e: Obtain the encoded first vector from the first database.

[0196] Step f: Decode the encoded first vector using a decoding function to obtain the first vector.

[0197] Step g: For the second title to be recommended, determine the fourth position from the first vector according to the hash function corresponding to the recalled video.

[0198] Step h: Determine whether the value at the fourth position indicates that the title is stored as "yes". If so, determine that the second title to be recommended is a recommended title.

[0199] In this embodiment, step ef is the same as the methods of steps ab and AB, and will not be described again in this embodiment.

[0200] By applying the method of this application embodiment, it is possible to determine whether the second poster or title to be recommended has already been recommended by using the first vector in the first database. If it has already been recommended, the poster or title can be switched, and the poster or title that has not been recommended can be pushed along with the first video to be recommended, thereby increasing the likelihood of user interest and thus increasing the video click-through rate.

[0201] The following example is used to specifically illustrate the method of the embodiments of this application, such as Figure 7As shown, upon receiving a client recommendation request, video recall is performed. For recalled videos that have not been pushed before, they are finely ranked and scored. Each recalled video is scored based on its type, content, and other characteristics. A higher score indicates a greater likelihood of user interest in the video, and these videos are placed at a higher position when sorting the recalled videos. For recalled videos that have already been pushed, it is necessary to determine whether they are repeatable videos. If they are repeatable videos, they can be directly sent to the re-ranking step, which involves re-ranking the videos in the first set of videos to be recommended. The videos sent to the re-ranking step will not appear in the non-repeatable sliding window, and the number of videos displayed repeatedly outside the window needs to be controlled. The re-ranked first set of videos to be recommended is pushed to the client as the final push result. Simultaneously, the first set of videos to be recommended is stored in the first database and updated. The stored and updated information may include the ID of the pushed video, the number of times it has been pushed, the ID of the pushed poster, and the address information of the pushed poster.

[0202] The storage format of the first database can be as follows: Figure 8 As shown, the first database stores the global set of pushed videos. Each client recommendation request corresponds to a set of pushed videos stored in this database, such as the set of videos pushed for the first refresh, the set for the second refresh, ..., the set of videos pushed for the Nth refresh, and the set of videos pushed for the N+1th refresh. The calculated video results from repeatable and non-repeatable sliding windows together constitute a set of pushed videos.

[0203] A second aspect of this application provides a video push system, which is applied to a server, such as... Figure 9 As shown, the system includes a video computing device 901 and a video pushing device 902;

[0204] The video computing device 901 is used for,

[0205] Upon receiving a recommendation request from a client, video recall is performed based on the client's tag information and viewing data, resulting in a first recall queue consisting of multiple recall videos; where the client's tag information represents the attribute information of the client user.

[0206] For each recalled video, if the recalled video is already recommended, the recall frequency of the recalled video is calculated based on the first recall queue and the historical recall queue. The historical recall queue is a video queue composed of recalled videos corresponding to the recommendation requests of each client under the first recommendation request of the same client. The first recommendation request is used to request the server to push videos to the client.

[0207] For each recalled video, a matching score is calculated based on a pre-trained first deep learning model. The first deep learning model is pre-trained based on the sample recalled video and the ground truth of the matching score of the sample recalled video. The matching score represents the matching degree between the recalled video and the client user.

[0208] Based on the recall frequency and matching score, it is determined whether the recalled video is a video that can be displayed repeatedly. If so, it is added to the first set of videos to be recommended.

[0209] Send the first set of videos to be recommended to the video push device.

[0210] The video push device 902 is used to push the first set of videos to be recommended to the client for video push.

[0211] The system using the embodiments of this application can determine whether a recalled video can be repeatedly displayed based on its recall frequency and personalized score when the recalled video is a recommended video. When the conditions for repeated display are met, the recommended video that can be repeatedly displayed is added to the first set of videos to be recommended and pushed to the client, thereby increasing the probability of users clicking on the video that can be repeatedly displayed and thus increasing the video's click-through rate.

[0212] In one possible implementation, the video computing device is also used for,

[0213] For each video that can be repeatedly displayed, obtain the number of times it has been pushed; where the number of times it has been pushed is the total number of times the video that can be repeatedly displayed has been pushed to the client based on the first recommendation request from the same client.

[0214] Determine if the number of times the video has been pushed is greater than or equal to the preset push threshold. If so, remove the video that can be displayed repeatedly from the first set of videos to be recommended.

[0215] The first set of videos to be recommended is sent to the client for video push notifications, including:

[0216] Based on the number of times a video that can be repeatedly displayed has been pushed, the videos in the first set of videos to be recommended are reordered to obtain the sorted first set of videos to be recommended.

[0217] The first set of videos to be recommended after sorting is sent to the client for video push.

[0218] In one possible implementation, the video computing device is also used for,

[0219] Record the push time of each push for each video in the first set of videos to be recommended.

[0220] Before sending the first set of videos to be recommended to the client for video push, the method also includes:

[0221] For each video that can be displayed repeatedly, determine the first push time that is closest to the current time in the push time.

[0222] Determine whether the time difference between the current time and the first push time of the repeatable video is less than or equal to a preset duration. If so, delete the repeatable video from the first video set.

[0223] In one possible implementation, the video computing device is also used for,

[0224] Retrieve the first recommended poster and / or first recommended title for each first recommended video in the first recommended video set.

[0225] For each first video to be recommended, randomly select one poster from the first posters to be recommended as the second poster to be recommended, and determine whether the second poster to be recommended is already recommended; and / or, randomly select one title from the first titles to be recommended as the second title to be recommended, and determine whether the second title to be recommended is already recommended.

[0226] If not, then add the second poster to be recommended and / or the second title to be recommended along with the first video to be recommended to the first video to be recommended collection.

[0227] If so, then reselect the second poster to be recommended until the second poster to be recommended is not a recommended poster, and / or reselect the second title to be recommended until the second title to be recommended is not a recommended title.

[0228] In one possible implementation, the video computing device is used for,

[0229] The recall frequency of a video is obtained by counting the number of times it appears in the first recall queue and the historical recall queue.

[0230] In one possible implementation, the video computing device is also used for,

[0231] For each client user, for each element in the recommended videos and recommended posters that have been recommended to that client user, a preset number of hash functions are used to map the element to the first position of the first vector, resulting in a first vector representing the storage state of each element; where one hash function corresponds to one first position.

[0232] For each element of the first vector, determine whether the value of the vector element adjacent to it is the same as its own value. If so, determine that the vector element and its adjacent vector element are duplicate vector elements.

[0233] Compress and encode the repeated vector elements in the first vector to obtain the encoded first vector.

[0234] The encoded first vector is stored in the first database, wherein the first vector is used to determine whether the recalled video, and / or the second poster to be recommended, and / or the second title to be recommended is already recommended.

[0235] In one possible implementation, the video computing device is used for,

[0236] Retrieve the encoded first vector from the first database.

[0237] The first vector is obtained by decoding the encoded first vector using a decoding function.

[0238] For each recalled video, the second position is determined from the first vector based on the hash function corresponding to that recalled video.

[0239] Determine whether the values ​​at the second position all indicate that the video is stored in a "yes" state. If so, then determine that the recalled video is a recommended video.

[0240] In one possible implementation, the video computing device is used for,

[0241] Retrieve the encoded first vector from the first database.

[0242] The first vector is obtained by decoding the encoded first vector using a decoding function.

[0243] For the second poster to be recommended, the third position is determined from the first vector based on the hash function corresponding to the recalled video.

[0244] Determine whether the values ​​at the third position all indicate that the poster is stored in a "yes" state. If so, then determine that the second poster to be recommended is a recommended poster.

[0245] Determine whether the second title to be recommended is already a recommended title; including:

[0246] Retrieve the encoded first vector from the first database.

[0247] The first vector is obtained by decoding the encoded first vector using a decoding function.

[0248] For the second title to be recommended, the fourth position is determined from the first vector based on the hash function corresponding to the recalled video.

[0249] Determine whether the value at the fourth position indicates that the title is stored as "yes". If so, then determine that the second title to be recommended is a title that has already been recommended.

[0250] like Figure 10 As shown, compared to Figure 9 The video push system in this embodiment further includes a first database. The video push device can obtain pushed video information from the first database and send a first set of videos to be recommended to the first database to facilitate updating the pushed information.

[0251] A third aspect of this application provides a video push device, which is applied to a server and includes, as shown in the example, a video push device. Figure 11 The structure shown is as follows:

[0252] The video recall module 1101 is used to recall videos based on the client's tag information and viewing data when a client recommendation request is received, and to obtain a first recall queue consisting of multiple recall videos; wherein, the client's tag information represents the attribute information of the client user.

[0253] The recall frequency calculation module 1102 is used to calculate the recall frequency of each recalled video, in the case that the recalled video is a recommended video, based on the first recall queue and the historical recall queue; wherein, the historical recall queue is a video queue composed of recalled videos corresponding to each client recommendation request under the same client's first recommendation request; the first recommendation request is used to request the server to push videos to the client.

[0254] The matching score calculation module 1103 is used to calculate the matching score of each recalled video according to a pre-trained first deep learning model; wherein, the first deep learning model is pre-trained based on the sample recalled video and the ground truth of the matching score of the sample recalled video; the matching score represents the matching degree between the recalled video and the client user.

[0255] The repeatable video determination module 1104 is used to determine whether the recalled video is a repeatable video by using the recall frequency and matching score. If so, it is added to the first set of videos to be recommended.

[0256] The video push module 1105 is used to send the first set of videos to be recommended to the client for video push.

[0257] In one possible implementation, the apparatus of this application embodiment further includes:

[0258] The module for obtaining the number of times a video has been pushed is used to obtain the number of times each video can be repeatedly displayed; wherein, the number of times the video has been pushed is the total number of times the video can be repeatedly displayed has been pushed to the client based on the first recommendation request from the same client.

[0259] The push count determination module is used to determine whether the push count is greater than or equal to a preset push threshold. If so, the video that can be repeatedly displayed is deleted from the first set of videos to be recommended.

[0260] The video push module includes:

[0261] The sorting submodule is specifically used to reorder each of the first videos to be recommended in the first set of videos to be recommended based on the number of times the videos that can be repeatedly displayed have been pushed, so as to obtain a sorted set of first videos to be recommended.

[0262] The video push submodule is specifically used to send the sorted first set of recommended videos to the client for video push.

[0263] In one possible implementation, the device further includes:

[0264] The push recording module is used to record the push time of each push for each video in the first set of videos to be recommended.

[0265] The push time acquisition module is used to determine the first push time that is closest to the current time among the push times for each repeatable video.

[0266] The freeze period determination module is used to determine whether the time difference between the current time and the first push time of the repeatable video is less than or equal to a preset duration. If so, the repeatable video is deleted from the first video set.

[0267] In one possible implementation, the device further includes:

[0268] The poster or title acquisition module is used to acquire each first recommended poster and / or first recommended title corresponding to each first recommended video in the first set of recommended videos.

[0269] The poster or title judgment module is used to, for each first video to be recommended, arbitrarily select one poster from each of the first posters to be recommended as the second poster to be recommended, and determine whether the second poster to be recommended is the already recommended poster; and / or, arbitrarily select one title from each of the first titles to be recommended as the second title to be recommended, and determine whether the second title to be recommended is the already recommended title.

[0270] The poster or title addition module is used to, if not, add the second poster to be recommended and / or the second title to be recommended along with the first video to be recommended to the first video set.

[0271] The poster selection module is used to, if so, reselect a second poster to be recommended until the second poster to be recommended is not the already recommended poster, and / or reselect a second title to be recommended until the second title to be recommended is not the already recommended title.

[0272] In one possible implementation, the recall frequency calculation module includes:

[0273] The recall frequency calculation submodule is specifically used to count the number of times the recalled video appears in the first recall queue and the historical recall queue, and obtain the recall frequency of the recalled video.

[0274] In one possible implementation, the device further includes:

[0275] The hash function mapping module is used to map each element in the recommended videos and recommended posters recommended to the client user to a first position in a first vector using a preset number of hash functions, thereby obtaining a first vector representing the storage state of each element; wherein, one hash function corresponds to one first position.

[0276] The vector element value judgment module is used to determine, for each vector element of the first vector, whether the value of the vector element adjacent to the vector element is the same as its own value. If so, the vector element and its adjacent vector element are determined to be duplicate vector elements.

[0277] The compression encoding module is used to compress and encode the repeated vector elements in the first vector to obtain the encoded first vector.

[0278] A vector storage module is used to store the encoded first vector in the first database, wherein the first vector is used to determine whether the recalled video, and / or the second poster to be recommended, and / or the second title to be recommended has been recommended.

[0279] In one possible implementation, the device further includes:

[0280] The first vector acquisition module is used to obtain the encoded first vector from the first database.

[0281] The first decoding module is used to decode the encoded first vector through a decoding function to obtain the first vector.

[0282] The second location determination module is used to determine the second location from the first vector for each recalled video based on the hash function corresponding to the recalled video.

[0283] The first storage status determination module is used to determine whether the values ​​at the second position all indicate that the storage status of the video is yes. If so, the recalled video is determined to be a recommended video.

[0284] In one possible implementation, the poster or title determination module includes:

[0285] The second module for obtaining vectors is used to obtain the encoded first vector from the first database.

[0286] The second decoding module is used to decode the encoded first vector using a decoding function to obtain the first vector.

[0287] The third position determination module is used to determine the third position from the first vector based on the hash function corresponding to the recalled video for the second poster to be recommended.

[0288] The second storage status judgment module is used to determine whether the values ​​at the third position all indicate that the storage status of the poster is yes. If so, the second poster to be recommended is determined to be a recommended poster.

[0289] The third module for obtaining vectors is used to obtain the encoded first vector from the first database.

[0290] The third decoding module is used to decode the encoded first vector through a decoding function to obtain the first vector.

[0291] The fourth position determination module is used to determine the fourth position from the first vector based on the hash function corresponding to the recalled video for the second title to be recommended.

[0292] The third storage status judgment module is used to determine whether the values ​​at the fourth position all indicate that the storage status of the title is yes. If so, the second title to be recommended is determined to be a recommended title.

[0293] The apparatus using the embodiments of this application can determine whether a recalled video can be displayed repeatedly based on the recall frequency of the recalled video when the recalled video is a recommended video. When the condition for repeated display is met, the recommended video that can be displayed repeatedly is added to the first set of videos to be recommended and pushed to the client, thereby realizing repeated push of the video that can be displayed repeatedly, thereby increasing the probability of the user clicking on the video that can be displayed repeatedly, and thus increasing the click-through rate of the video.

[0294] This application also provides an electronic device, such as... Figure 12 As shown, it includes a processor 1201, a communication interface 1202, a memory 1203, and a communication bus 1204. The processor 1201, the communication interface 1202, and the memory 1203 communicate with each other through the communication bus 1204.

[0295] Memory 1203 is used to store computer programs;

[0296] When processor 1201 executes the program stored in memory 1203, it performs the following steps:

[0297] Upon receiving a recommendation request from a client, video recall is performed based on the client's tag information and viewing data, resulting in a first recall queue consisting of multiple recall videos; where the client's tag information represents the attribute information of the client user.

[0298] For each recalled video, if the recalled video is already recommended, the recall frequency of the recalled video is calculated based on the first recall queue and the historical recall queue. The historical recall queue is a video queue composed of recalled videos corresponding to the recommendation requests of each client under the first recommendation request of the same client. The first recommendation request is used to request the server to push videos to the client.

[0299] For each recalled video, a matching score is calculated based on a pre-trained first deep learning model. The first deep learning model is pre-trained based on the sample recalled video and the ground truth of the matching score. The matching score represents the matching degree between the recalled video and the client user.

[0300] Based on the recall frequency and matching score, it is determined whether the recalled video is a video that can be displayed repeatedly. If so, it is added to the first set of videos to be recommended.

[0301] The first set of videos to be recommended is sent to the client for video push.

[0302] The communication bus mentioned above can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. This communication bus can be divided into address bus, data bus, control bus, etc. For ease of illustration, only one thick line is used to represent it in the diagram, but this does not mean that there is only one bus or one type of bus.

[0303] The communication interface is used for communication between the aforementioned terminal and other devices.

[0304] The memory may include random access memory (RAM) or non-volatile memory, such as at least one disk storage device. Optionally, the memory may also be at least one storage device located remotely from the aforementioned processor.

[0305] The processors mentioned above can be general-purpose processors, including central processing units (CPUs), network processors (NPs), etc.; they can also be digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.

[0306] In another embodiment of the present invention, a computer-readable storage medium is also provided, wherein a computer program is stored therein, and when the computer program is executed by a processor, it implements any of the video push methods described in the above embodiments.

[0307] In another embodiment of the present invention, a computer program product containing instructions is also provided, which, when run on a computer, causes the computer to execute any of the video push methods described in the above embodiments.

[0308] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present invention are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium accessible to a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state disk (SSD)).

[0309] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0310] The various embodiments in this specification are described in a related manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the system, apparatus, electronic device, and computer-readable storage medium embodiments are basically similar to the method embodiments, so the descriptions are relatively simple; relevant parts can be referred to the descriptions of the method embodiments.

[0311] The above description is merely a preferred embodiment of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention are included within the scope of protection of the present invention.

Claims

1. A video push method, characterized in that, The method is applied to the server side, and the method includes: Upon receiving a client recommendation request, video recall is performed based on the client's tag information and viewing data to obtain a first recall queue consisting of multiple recall videos; wherein, the client's tag information represents the attribute information of the client user; For each of the recalled videos, if the recalled video is already recommended, the recall frequency of the recalled video is calculated based on the first recall queue and the historical recall queue; wherein, the historical recall queue is a video queue composed of recalled videos corresponding to each client recommendation request under the same client's first recommendation request; the first recommendation request is used to request the server to push videos to the client; the recall frequency is the sum of the number of times the recalled video appears in the first recall queue and each of the historical recall queues under the same client's first recommendation request; For each of the recalled videos, a matching score is calculated based on a pre-trained first deep learning model; wherein the first deep learning model is pre-trained based on the sample recalled videos and the ground truth of the matching scores of the sample recalled videos; the matching score represents the matching degree between the recalled video and the client user; Based on the recall frequency and the matching score, it is determined whether the recalled video is a video that can be displayed repeatedly. If so, it is added to the first set of videos to be recommended. The first set of videos to be recommended is sent to the client for video push.

2. The method according to claim 1, characterized in that, Before sending the first set of videos to be recommended to the client for video push, the method further includes: For each repeatable video, obtain the number of times it has been pushed; wherein, the number of times it has been pushed is the total number of times the repeatable video has been pushed to the client based on the first recommendation request from the same client; Determine whether the number of times the video has been pushed is greater than or equal to a preset push threshold. If so, delete the video that can be displayed repeatedly from the first set of videos to be recommended. Sending the first set of videos to be recommended to the client for video push includes: Based on the number of times the re-displayable video has been pushed, the first videos to be recommended in the first set of videos to be recommended are reordered to obtain the sorted first set of videos to be recommended. The first set of videos to be recommended after sorting is sent to the client for video push.

3. The method according to claim 2, characterized in that, After sending the first set of videos to be recommended to the client for video push, the method further includes: Record the push time of each push for each video in the first set of videos to be recommended; Before sending the first set of videos to be recommended to the client for video push, the method further includes: For each video that can be displayed repeatedly, determine the first push time that is closest to the current time among the push times; Determine whether the time difference between the current time and the first push time of the repeatable video is less than or equal to a preset duration. If so, delete the repeatable video from the first set of recommended videos.

4. The method according to claim 2, characterized in that, The method further includes: Obtain the first recommended poster and / or the first recommended title corresponding to each first recommended video in the first set of videos to be recommended; For each first video to be recommended, arbitrarily select one poster from each of the first posters to be recommended as the second poster to be recommended, and determine whether the second poster to be recommended is already recommended; and / or, arbitrarily select one title from each of the first titles to be recommended as the second title to be recommended, and determine whether the second title to be recommended is already recommended. If not, the second poster to be recommended and / or the second title to be recommended, along with the first video to be recommended, will be added to the first set of videos to be recommended. If so, then reselect a second poster to be recommended until the second poster to be recommended is not the already recommended poster, and / or reselect a second title to be recommended until the second title to be recommended is not the already recommended title.

5. The method according to claim 1, characterized in that, For each of the recalled videos, if the recalled video is a recommended video, the recall frequency of the recalled video is calculated based on the first recall queue and the historical recall queue, including: The recall frequency of a video is obtained by counting the number of times it appears in the first recall queue and the historical recall queue.

6. The method according to claim 4, characterized in that, The method further includes: For each client user, for each element in the recommended videos and recommended posters that have been recommended to that client user, a preset number of hash functions are used to map the element to the first position of the first vector to obtain the first vector representing the storage state of each element; wherein, one hash function corresponds to one first position; For each element of the first vector, determine whether the value of the vector element adjacent to the first vector element is the same as its own value. If so, determine that the first vector element and its adjacent vector element are duplicate vector elements. The repeated vector elements in the first vector are compressed and encoded to obtain the encoded first vector; The encoded first vector is stored in a first database, wherein the first vector is used to determine whether the recalled video, and / or the second poster to be recommended, and / or the second title to be recommended has already been recommended.

7. The method according to claim 6, characterized in that, Upon receiving a client recommendation request, after performing video recall based on the client's tag information and viewing data to obtain a first recall queue consisting of multiple recall videos, the method further includes: Obtain the encoded first vector from the first database; The encoded first vector is decoded using a decoding function to obtain the first vector; For each recalled video, the second position is determined from the first vector based on the hash function corresponding to the recalled video; Determine whether the values ​​at the second position all indicate that the video is stored as "yes". If so, determine that the recalled video is a recommended video.

8. The method according to claim 6, characterized in that, The determination of whether the second poster to be recommended is a poster that has already been recommended includes: Obtain the encoded first vector from the first database; The encoded first vector is decoded using a decoding function to obtain the first vector; For the second poster to be recommended, the third position is determined from the first vector according to the hash function corresponding to the recalled video; Determine whether the values ​​at the third position all indicate that the poster is stored as yes. If yes, then determine that the second poster to be recommended is a recommended poster. The step of determining whether the second title to be recommended is a title that has already been recommended includes: Obtain the encoded first vector from the first database; The encoded first vector is decoded using a decoding function to obtain the first vector; For the second title to be recommended, the fourth position is determined from the first vector according to the hash function corresponding to the recalled video; Determine whether the value at the fourth position indicates that the title is stored as "yes". If so, determine that the second title to be recommended is a recommended title.

9. A video push device, characterized in that, The device is used on a server side, and the device includes: The video recall module is used to recall videos based on the client's tag information and viewing data when a client recommendation request is received, and to obtain a first recall queue consisting of multiple recall videos; wherein, the client's tag information represents the attribute information of the client user; The recall frequency calculation module is used to calculate the recall frequency of each recalled video, assuming the recalled video is already recommended, based on the first recall queue and the historical recall queue. The historical recall queue is a video queue composed of recalled videos corresponding to each client recommendation request under the same client's first recommendation request. The first recommendation request is used to request video push to the client from the server. The recall frequency is the sum of the number of times the recalled video appears in the first recall queue and each historical recall queue under the same client's first recommendation request. The matching score calculation module is used to calculate the matching score of each recalled video based on a pre-trained first deep learning model; wherein, the first deep learning model is pre-trained based on the sample recalled video and the ground truth of the matching score of the sample recalled video; the matching score represents the matching degree between the recalled video and the client user. The repeatable video determination module is used to determine whether the recalled video is a repeatable video based on the recall frequency and the matching score. If so, it is added to the first set of videos to be recommended. The video push module is used to send the first set of videos to be recommended to the client for video push.

10. An electronic device, characterized in that, It includes a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other through the communication bus; Memory, used to store computer programs; A processor, when executing a program stored in memory, implements the steps of the method described in any one of claims 1-8.

11. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the method described in any one of claims 1-8.