Method and device for providing banner service based on viewing history information of user
A banner recommendation model utilizing user viewing history data enhances personalized banner delivery in OTT services by calculating embedding vectors and updating weight matrices, addressing inefficiencies in existing non-targeted advertising.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-22
- Publication Date
- 2026-03-26
AI Technical Summary
Existing Over-The-Top (OTT) services lack personalized banner systems that provide customized content recommendations based on user viewing history, leading to inefficient and non-targeted advertising.
A banner recommendation model trained on user viewing history information calculates embedding vectors to determine semantic relationships between content, updates weight matrices based on behavioral data, and provides personalized banners in real-time using a lightweight model.
Enhances learning performance and enables real-time, customized banner recommendations tailored to user preferences, improving user engagement and advertising effectiveness.
Smart Images

Figure KR2025014761_26032026_PF_FP_ABST
Abstract
Description
METHOD AND DEVICE FOR PROVIDING BANNER SERVICE BASED ON VIEWING HISTORY INFORMATION OF USER
[0001] The present invention relates to a method and device for providing a banner service.
[0002] With the rapid increase in online and mobile video consumption due to ultra-high-speed mobile communications, the widespread use of smartphones, etc. Over-The-Top (OTT) services, which are online streaming platforms on the web and mobile, are expanding in addition to existing TV-based broadcasting platforms such as terrestrial broadcasting, cable broadcasting, satellite broadcasting, and IPTV. The size of the OTT market is increasing every year, and the demand for OTT services is expected to increase further as mobile communication technology advances.
[0003] In the case of banners displayed in OTT services, the development of a system that provides customized banners based on the viewing history information of the user rather than providing the banners uniformly to all users is required.
[0004] The present invention is intended to provide a customized banner to a user based on viewing history information of a user.
[0005] The present invention is intended to improve the learning performance of a banner recommendation model and provide a recommendation banner to a user in real time.
[0006] According to an aspect, there is provided an operating method of a server, including obtaining viewing history information about contents viewed by a user, obtaining at least one piece of recommendation banner information corresponding to the viewing history information of the user through a banner recommendation model trained based on at least one piece of the viewing history information, and providing at least one recommendation banner to an electronic device of the user based on the at least one piece of recommendation banner information.
[0007] According to an embodiment, the obtaining of the at least one piece of recommendation banner information through the banner recommendation model may include calculating embedding vectors of the contents representing a semantic relationship between the contents based on the banner recommendation model and the viewing history information and obtaining the at least one recommendation banner information based on the similarity between the embedding vectors of the contents and embedding vectors of candidate banners in a candidate banner list.
[0008] According to an embodiment, the banner recommendation model may be a first banner recommendation model generated through training of predicting central content from surrounding content based on a window size, based on the at least one piece of viewing history information.
[0009] According to an embodiment, the banner recommendation model may be a second banner recommendation model generated through training of predicting surrounding content from central content based on a window size, based on the at least one piece of viewing history information.
[0010] According to an embodiment, the second banner recommendation model may be trained by applying negative sampling that excludes content having low relevance to the central content from the training data.
[0011] According to an embodiment, the calculating of the embedding vectors of the contents may include obtaining an eigenvector that uniquely represents each of the contents as input data in the banner recommendation model, and calculating embedding vectors of the contents indicating a semantic relationship between the contents through a weight matrix from the eigenvectors of the contents.
[0012] According to an embodiment, the operating method of the server may further include training the banner recommendation model based on the at least one piece of viewing history information of the user.
[0013] According to an embodiment, the training of the banner recommendation model may include updating a weight matrix used to calculate embedding vectors of the contents based on behavioral data regarding at least one piece of content of the user within a content provision service.
[0014] According to an embodiment, the behavioral data may represent data regarding a completion rate, repeat playback frequency, and recent viewing status of the at least one piece of content.
[0015] According to an embodiment, the training of the banner recommendation model may include updating, through a loss function, at least one weight matrix of an input weight matrix used to calculate the embedding vectors of the contents and an output weight matrix used to obtain the at least one recommendation banner so that a difference between a prediction value predicted by the banner recommendation model and an actual value is reduced.
[0016] According to an embodiment, the obtaining of the at least one piece of recommendation banner information may include determining a priority of candidate banners in a candidate banner list based on the similarity between embedding vectors of the contents and embedding vectors of the candidate banners and obtaining at least one piece of recommendation banner information based on the priority of the candidate banners.
[0017] According to an embodiment, the determining of the priority of the candidate banners in the candidate banner list based on the similarity between the embedding vectors of the contents and the embedding vectors of the candidate banners may include calculating an average embedding vector of recently viewed contents viewed during a preset recent period among the contents and determining the priority of the candidate banners based on a similarity between the average embedding vector of the recently viewed contents and the embedding vectors of the candidate banners.
[0018] According to an embodiment, the calculating of the average embedding vector of the recently viewed contents may include calculating the average embedding vector of the recently viewed contents by setting a higher weight for content viewed closer to the last viewing point during the preset recent period.
[0019] According to an embodiment, the providing of the at least one recommendation banner to the electronic device of the user may include providing the at least one recommendation banner is composed of at least one scene customized to the user based on the viewing history information.
[0020] According to an embodiment, the providing of the at least one recommendation banner to the electronic device of the user may include providing the at least one recommendation banner in a certain area within an execution screen of a content provision service executed on the electronic device of the user.
[0021] According to an embodiment, a user interface for adjusting a playback section of a recommendation banner being played among the at least one recommendation banner may be provided on the execution screen of the at least one recommendation banner.
[0022] According to an embodiment, a thumbnail list of recommendation banners being played among the at least one recommendation banner may be provided on the execution screen of the at least one recommendation banner.
[0023] According to an embodiment, when the content of the recommendation banner is a series, the thumbnail list may be composed of thumbnails of episodes following an episode being played in the recommendation banner.
[0024] According to an embodiment, a type of the at least one recommendation banner may include at least one type of unopened content, recently added content, and existing content.
[0025] According to another aspect, there is provided a server including a communication device that communicates with an external device, a processor, and a memory that stores instructions executable by the processor, in which the processor executes the instructions to obtain viewing history information about contents viewed by a user, obtain at least one piece of recommendation banner information corresponding to the viewing history information of the user through a banner recommendation model trained based on at least one piece of the viewing history information, and provide at least one recommendation banner to an electronic device of the user based on the at least one piece of recommendation banner information.
[0026] According to still another aspect, there is provided a non-transitory computer-readable storage medium storing instructions that, when executed by a processor of a server, cause the server to perform a method including obtaining viewing history information about contents viewed by a user, obtaining at least one piece of recommendation banner information corresponding to the viewing history information of the user through a banner recommendation model trained based on at least one piece of the viewing history information, and providing at least one recommendation banner information to an electronic device of the user based on the at least one piece of recommendation banner information.
[0027] According to still yet another aspect, there is provided an operating method of an electronic device, including obtaining viewing history information about contents viewed by a user, transmitting the viewing history information to a server that provides content, receiving, from the server, at least one piece of recommendation banner information corresponding to the viewing history information through a banner recommendation model trained based on at least one viewing history information of the user, and displaying at least one recommendation banner based on the at least one piece of recommendation banner information.
[0028] According to still yet another aspect, there is provided an electronic device including a communication device that communicates with an external device, a user interface device, a processor, and a memory that stores instructions executable by the processor, in which the processor executes the instructions to obtain viewing history information about contents viewed by a user, transmit, through the communication device, the viewing history information to a server that provides content, receive, from the server, at least one piece of recommendation banner information corresponding to the viewing history information through a banner recommendation model trained based on at least one piece of viewing history information of the user, through the communication device, and display, through the user interface device at least one recommendation banner based on the at least one piece of recommendation banner information.
[0029] According to still yet another aspect, there is provided a non-transitory computer-readable storage medium storing instructions that, when executed by a processor of an electronic device, cause the electronic device to perform a method including obtaining viewing history information about contents viewed by a user, transmitting the viewing history information to a server that provides content, receiving, from the server, at least one piece of recommendation banner information corresponding to the viewing history information through a banner recommendation model trained based on at least one piece of viewing history information of the user, and displaying at least one recommendation banner based on the at least one piece of recommendation banner information.
[0030] The present invention can provide a banner customized to a user based on viewing history information of the user.
[0031] The present invention can enhance the learning performance of the banner recommendation model and can provide a recommendation banner to a user in real time.
[0032] The present disclosure can be readily understood by combining the following detailed description with the accompanying drawings, where reference numerals indicate structural elements.
[0033] FIG. 1 is a conceptual diagram illustrating operations between a server that provides recommendation banners to an electronic device based on viewing history information about content viewed by a user and the electronic device, according to an embodiment.
[0034] FIG. 2 is a flowchart illustrating an operating method of a server that provides recommendation banners to an electronic device based on viewing history information about content viewed by a user, according to an embodiment.
[0035] FIG. 3 is a diagram illustrating an operating method of a banner recommendation model, according to an embodiment.
[0036] FIG. 4 is a flowchart illustrating an operating method of a server that trains a banner recommendation model, according to an embodiment.
[0037] FIG. 5 is a diagram illustrating a training process of a banner recommendation model that predicts central content from surrounding content based on viewing history information, according to an embodiment.
[0038] FIG. 6a is a diagram illustrating a training process of a banner recommendation model that predicts surrounding content from central content based on viewing history information, according to an embodiment.
[0039] FIG. 6b is a diagram illustrating training data of the banner recommendation model described in FIG. 6a, according to an embodiment.
[0040] FIG. 7a is a diagram illustrating a training process of a banner recommendation model that applies negative sampling to exclude content having low relevance to central content from training data based on viewing history information, according to an embodiment.
[0041] FIGS. 7b and 7c are diagrams illustrating the training data of the banner recommendation model described in FIG. 7a, according to an embodiment.
[0042] FIG. 8 is a diagram illustrating a process of updating a weight matrix used to calculate embedding vectors of content based on user's behavioral data regarding content, according to an embodiment.
[0043] FIG. 9 is a flowchart illustrating an operating method of a server that obtains recommendation banner information based on the similarity between embedding vectors of contents and the embedding vectors of candidate banners, according to an embodiment.
[0044] FIG. 10 is a flowchart illustrating an operating method of a server that determines a priority of candidate banners, according to an embodiment.
[0045] FIGS. 11a and 11b are diagrams for illustrating recommendation banners provided in an electronic device, according to an embodiment.
[0046] FIG. 12 is a block diagram illustrating a configuration of a server, according to an embodiment.
[0047] FIG. 13 is a flowchart illustrating an operating method of an electronic device, according to an embodiment.
[0048] FIG. 14 is a block diagram illustrating a configuration of an electronic device, according to an embodiment.
[0049] According to an embodiment, an operating method of a server may include obtaining viewing history information about contents viewed by a user, obtaining at least one piece of recommendation banner information corresponding to at least one piece of viewing history information of the user through a banner recommendation model trained based on the at least one piece of viewing history information, and providing at least one recommendation banner to an electronic device of the user based on the at least one piece of recommendation banner information.
[0050] Hereinafter, various embodiments will be described in detail with reference to the drawings. The embodiments described below may be modified and embodied in various different forms. To more clearly describe the features of the embodiments, detailed descriptions of matters well known to those skilled in the art to which the embodiments pertain will be omitted.
[0051] Meanwhile, when a component is said to be "connected" to another component in this specification, this includes not only cases where they are "directly connected" to each other but also cases where it is "connected with another component in between." Furthermore, when a component is said to "include" another component, this does not mean that it excludes other components, but rather that it may include other components, unless otherwise specifically stated.
[0052] In addition, terms containing ordinal numbers, such as 'first' or 'second', used in this specification may be used to describe various components, but the components should not be limited by the terms. The terms are used solely to distinguish one component from another.
[0053] In this specification, a "server" may perform an operation that provides at least one recommendation banner corresponding to viewing history information to an electronic device based on the viewing history information about contents viewed by a user. The server may settle sales generated for each user to the content provider for each content.
[0054] In this specification, an "electronic device" may be a device that allows a user to execute a content provision service and receive information about the content provision service. For example, an electronic device may be, but is not limited to, a smartphone, tablet PC, PC, TV, smart TV, mobile phone, personal digital assistant (PDA), laptop, or non-mobile computing device.
[0055] In this specification, "content" may refer to information or content provided via the Internet or computer communications. Content may refer to information or content that is digitally produced, processed, or distributed, such as text, symbols, voice, sound, images, or video.
[0056] In this specification, "banner" may refer to a graphic element placed at the top or in a key location of a user interface (UI). and "banner" may guide a user to key categories or recommended content for easy access. Banners may be designed to be visually striking to attract the user's attention and induce clicks (to increase the click conversion rate). While "banners" can be displayed alongside individual "posters", "banners" may have a significant impact on user experience and content promotion methods in that "banners" may change from one banner to another in the same location, including animation effects, etc., may be updated in real time, at least one of various banners corresponding to the same content may be personalized and recommended, and "banners" include elements that induce user interaction (clicks, touches, swipes, etc.) and are displayed in a noticeable location in large format. In the case of "banner" recommendations, considering the flexibility of real-time updates, a model that is lighter and capable of real-time banner inference compared to a content recommendation model using "posters" can be more efficient and thus, a different model can be used for each recommendation. Furthermore, banners may be displayed in a certain area of an execution screen providing the content service and may be composed of at least one image to be displayed. Furthermore, when an input for selecting a banner is received on a screen where the banner is displayed, the screen where the banner is displayed may be switched to a screen where content corresponding to the banner is displayed. For example, the content corresponding to the banner may be provided as a visual element composed of at least one of an image, text, animation, and video.
[0057] FIG. 1 is a conceptual diagram illustrating an operation between a server 10, which provides recommendation banners to an electronic device 20 based on viewing history information about contents viewed by a user, and the electronic device 20, according to an embodiment.
[0058] Referring to FIG. 1, the server 10 may receive viewing history information, including information about content viewed by the user through a content provision service, from the electronic device 20 of the user. The electronic device 20 may transmit the viewing history information to the server 10 at preset intervals. The server 10 may collect viewing history information for each of a plurality of users.
[0059] The server 10 may train a banner recommendation model based on the viewing history information of the user. The server 10 may obtain banner recommendation information based on the results of training the banner recommendation model. The banner recommendation model may be a model for providing a banner for content with a high degree of interest of the user based on the viewing history information of the user. The server 10 may provide a customized banner determined through the banner recommendation model to the electronic device 20 of the user. The operation between the server 10, which provides a recommendation banner to the electronic device 20 based on the viewing history information of the user, and the electronic device 20 will be described in detail with reference to FIGS. 2 to 14.
[0060] FIG. 2 is a flowchart illustrating an operating method of a server 10 that provides recommendation banners to the electronic device 20 based on viewing history information about contents viewed by a user, according to an embodiment.
[0061] Referring to FIG. 2, in step S210, the server 10 may obtain viewing history information about contents viewed by the user.
[0062] In step S220, the server 10 may obtain at least one piece of recommendation banner information corresponding to the viewing history information through the banner recommendation model. The banner recommendation model may be a model trained based on at least one piece of viewing history information of the user.
[0063] For example, the server 10 may calculate embedding vectors of contents representing a semantic relationship between contents based on the banner recommendation model and the viewing history information. The server 10 may obtain at least one piece of recommendation banner information based on the similarity between the embedding vectors of the contents and embedding vectors of candidate banners in a candidate banner list.
[0064] For a specific example, the server 10 may obtain a eigenvector that uniquely represents each of contents as input data in the banner recommendation model. The server 10 may calculate embedding vectors of contents that represents a semantic relationship between contents through a weight matrix from the eigenvector of the contents.
[0065] Meanwhile, the server 10 may train the banner recommendation model based on at least one piece of viewing history information of the user. During the training process for the banner recommendation model, the server 10 may calculate a difference between the embedding vector predicted by the banner recommendation model and an actual embedding vector through a loss function, and update the weight matrix used to calculate the embedding vectors of the contents so that the difference is reduced. The loss function evaluates a vector distance as close and thus the loss is small when actual contents determined by the size of a window are included in the predicted content and the loss function evaluates the vector distance as large and thus the loss is large when the actual contents are not included in the predicted content, thereby allowing weights to be trained to reduce the loss value.
[0066] In addition, the server 10 may update a weight matrix used to calculate the embedding vectors of contents based on user's behavioral data regarding at least one piece of content within the content provision service. Here, the behavioral data may represent data regarding a completion rate, repeat playback frequency, and recent viewing status of at least one piece of content.
[0067] For example, the banner recommendation model may be a first banner recommendation model generated through training of predicting central content from surrounding content determined based on window size, based on at least one piece of viewing history information.
[0068] For another example, the banner recommendation model may be a second banner recommendation model generated through training of predicting surrounding content from central content based on window size, based on at least one piece of viewing history information.
[0069] In addition, the second banner recommendation model may be a model trained by applying negative sampling, which excludes content having low relevance to the central content from training data.
[0070] Meanwhile, the server 10 may determine the priority of candidate banners based on the similarity between the embedding vectors of contents and the embedding vectors of the candidate banners in the candidate banner list. For example, the server 10 may calculate an average embedding vector of recently viewed contents viewed during the preset recent period among contents. Specifically, the server 10 may calculate the average embedding vector of recently viewed contents by setting a higher weight for content viewed closer to the last viewing time point during the preset recent period. For example, the average embedding vector may be calculated using the exponentially weighted averages technique, but is not limited thereto. The server 10 may determine the priority of the candidate banners based on the similarity between the average embedding vector of the recently viewed contents and the embedding vectors of the candidate banners. The server 10 may obtain information on at least one recommendation banner based on the priority of candidate banners.
[0071] In step S230, the server 10 may provide at least one recommendation banner to the electronic device 20 of the user based on at least one piece of recommendation banner information.
[0072] For example, the server 10 may provide at least one recommendation banner in a certain area within an execution screen of a content provision service executed in the electronic device 20 of the user. In this case, the certain area may be located at the top of the screen, and the horizontal (or vertical) length of the size may be equal to or less than the horizontal (or vertical) length of the execution screen, and may be greater than or equal to a predetermined length (e.g., the horizontal or vertical length of the poster). However, it is not limited thereto, and the location and size of the banner area may vary.
[0073] Here, a user interface for adjusting a playback section of a recommendation banner being played among at least one recommendation banner may be provided on the execution screen of at least one recommendation banner.
[0074] In addition, a thumbnail list of recommendation banners being played among at least one recommendation banner may be provided on the execution screen of at least one recommendation banner. For example, when the content of the recommendation banner is a series, the thumbnail list may be composed of thumbnails for episodes following an episode being played in the recommendation banner.
[0075] In addition, at least one type of recommendation banner may include at least one type of unreleased content, recently added content, and existing content.
[0076] Meanwhile, the viewing history information of the user, which changes according to various update events (e.g., re-login, page transition, refresh, etc.) occurring on the electronic device 20 of the user by utilizing a lightweight banner recommendation model, may be input into the banner recommendation model, thereby capable of receiving new recommendation banners at any time. The update cycle of the banner recommendation model may be a longer cycle (e.g., 1 day, 1 week, etc.) than the occurrence of an inference update event caused by a change in viewing history, and considering that it is a lightweight model, it may be a banner recommendation model at a faster cycle than the recommendation cycle for general content (posters).
[0077] The lightweight banner recommendation model may be obtained in a form in which the structure of the banner recommendation model is simplified or has a reduced dimension. Furthermore, the lightweight banner recommendation model may be a model in which negative sampling is optimized and the amount of computation and memory used are reduced. The lightweight banner recommendation model may recommend a banner customized to the user in real time based on an event occurring in the electronic device 20.
[0078] FIG. 3 is a diagram illustrating the operation of a banner recommendation model 300, according to an embodiment.
[0079] Referring to FIG. 3, the banner recommendation model 300 may provide a recommendation banner customized to a user based on the viewing history information of the user. Specifically, in step S310, the banner recommendation model 300 may learn the viewing history information of the user. Here, the viewing history information may include information on a list of content viewed by the user. The information on the list of content may include information such as an identifier (e.g., content code), title, and viewing time of the content viewed by the user. The banner recommendation model 300 may learn semantic associations between contents viewed by the user. A process of training the banner recommendation model 300 will be described in detail in FIGS. 4 to 8.
[0080] In step S320, when the viewing history information of the user is obtained, the banner recommendation model 300 may provide a recommendation banner corresponding to the viewing history information of the user based on the results of learning the viewing history information of the user. The process of providing the recommendation banner will be described in detail with reference to FIGS. 9 through 11b.
[0081] FIG. 4 is a flowchart illustrating an operating method of a server 10 that trains a banner recommendation model, according to an embodiment.
[0082] Referring to FIG. 4, in step S410, the server 10 may collect viewing history information about contents viewed by a user.
[0083] In step S420, the server 10 may learn embedding vectors of contents representing the semantic relationship between the contents based on the viewing history information.
[0084] Specifically, the server 10 may obtain an eigenvector that uniquely represents each of contents viewed by the user. The eigenvector may be expressed in the form of a one-hot vector. Here, the one-hot vector has a high dimension, and each content may have a unique location in the high-dimensional space. The eigenvector may be converted into a low-dimensional embedding vector through a projection layer. In this case, the server 10 may use an input weight matrix to convert the eigenvector into an embedding vector. The embedding vector of the contents may gradually reflect the semantic similarity between the contents through learning based on the viewing history information of the user.
[0085] In step S430, the server 10 may minimize a loss function and update the weight matrix. Specifically, the server 10 may use an output weight matrix to transform the embedding vector of the contents back into a high-dimensional space and output a predicted value. The server 10 may calculate the loss function based on the difference between the prediction value and an actual value. The server 10 may update the weight matrix and embedding vector so that the difference calculated by the loss function is minimized. In this case, the weight matrix may be an input weight matrix and an output weight matrix. The server 10 may optimize the banner recommendation model by repeatedly performing the operations of steps S410 to S430.
[0086] FIG. 5 is a diagram illustrating a training process of a banner recommendation model that predicts central content from surrounding content based on viewing history information, according to an embodiment.
[0087] Referring to FIG. 5, the banner recommendation model may be a model generated through training of predicting central content from surrounding content determined based on a window size, based on at least one piece of the viewing history information of the user.
[0088] The viewing history information may include information on a list of content viewed by the user. The information on a list of content may include information such as the title and viewing time of the content viewed by the user. For example, the list of content may include the first content, the second content, the third content, the fourth content, and the fifth content, and the content included last in the list may be the content that was viewed recently.
[0089] A window may be numerical information considered to learn a semantic relationship between contents in the viewing history information of the user. For example, in the banner recommendation model described in FIG. 5, if the window size is 2 and the central content is the third content, the surrounding content may represent two pieces of surrounding content positioned at a time before and after the central content, and may be the first content, the second content, the fourth content, and the fifth content. For another example, if the central content is the second content, the surrounding content may be the first content, the third content, and the fourth content.
[0090] The banner recommendation model described in FIG. 5 is a model that predicts central content from surrounding content, and may obtain the first, second, third, fourth, and fifth content as training data. Here, the first content, the second content, the fourth content, and the fifth content may represent input data as surrounding content, and the third content may represent output data as central content.
[0091] Each content may be represented as an eigenvector, which is a high-dimensional vector. For example, the eigenvector may be represented as a one-hot vector. For example, eigenvectors may be represented as 0 and 1. The first content may be represented as [1,0,0,0,0,0,0], the second content as [0,1,0,0,0,0,0], the third content as [0,0,1,0,0,0,0], the fourth content as [0,0,0,1,0,0,0], and the fifth content as [0,0,0,0,1,0,0].
[0092] In addition, the banner recommendation model may use an input layer 510, a projection layer 520, and an output layer 530 during the training process. For example, input data represented as eigenvectors may be input to the input layer 510. Specifically, an eigenvector 511 of the first content, an eigenvector 312 of the second content, an eigenvector 513 of the fourth content, and an eigenvector 514 of the fifth content may be input to the input layer 510.
[0093] The projection layer 520 may transform the high-dimensional eigenvector input from the input layer 510 into a low-dimensional embedding vectors 521. The embedding vector 521 may have a unique location in the low-dimensional space. The projection layer may also be referred to as a projection layer or an embedding layer. The projection layer 520 may transform the eigenvector into the embedding vector 521 using a weight matrix W1V*M. Here, V represents the total number of contents, and M represents the dimension of the embedding vector. The weight matrix WV*M may be referred to as an input weight matrix. The embedding vector 521 is a vector obtained by mapping content from a high-dimensional space to a low-dimensional space, and may be a numerical expression of semantic similarity between contents. For example, it may mean that the closer the embedding vectors are to each other, the higher the semantic similarity between the contents corresponding to the embedding vector 521.
[0094] Meanwhile, an average embedding vector for the embedding vectors of pieces of surrounding content may be calculated through the projection layer 520. The average embedding vector may be referred to as a combined embedding vector. The average embedding vector may be used in the process of predicting the central content through the output layer 530. The output layer 530 may use a weight matrix W1'M*V to transform the low-dimensional embedding vector 521 back into a high-dimensional eigenvector 531, which is the original content space, and thus predict the central content. The weight matrix W'M*V may be referred to as the output weight matrix. Converting the low-dimensional embedding vector 521 into the high-dimensional eigenvector 531 through the output weight matrix may be understood as a process of predicting central content through the learned embedding vector of the pieces of surrounding content.
[0095] Specifically, the output layer 530 may output a prediction value predicted as the central content through the output weight matrix. The output layer 530 may calculate a loss function based on the difference between a prediction value predicted as the central content and an actual value of the central content. The output layer 530 may update the weight matrix to minimize the difference calculated by the loss function. When the weight matrix is updated, the embedding vectors of the pieces of surrounding content are also updated, and the prediction value predicted as the central content may be calculated to be close to the actual value. The banner recommendation model may be optimized by updating the weight matrix and embedding vector.
[0096] For example, the loss function may be a cross-entropy function, but is not limited thereto. Given a data set for training, it is necessary to decide how many contents to view before and after the central content. The thing used to set the training data set may be referred to as a window. For example, assume that a training data set containing the contents "Content 1, Content 2, Content 3, Content 4, Content 5, Content 6, and Content 7" is given. If the size of the window is 2 and central content to be predicted is "Content 4", two contents in front, "Content 2", "Content 3", and two contents in back, "Content 5", and "Content 6", may be used as inputs. If the central content to be predicted is "Content 2", one content in front, "Content 1", and two contents in back, "Content 3", and "Content 4", may be used as inputs. When the size of the window is determined, the data set for training may be obtained by changing the selection of surrounding content and central content while moving the window. This is called a sliding window. A banner recommendation model may use a sliding window to specify training data and may be trained based on the specified training data.
[0097] FIG. 6a is a diagram illustrating a training process of a banner recommendation model 610 that predicts surrounding content from central content based on viewing history information, according to an embodiment.
[0098] Referring to FIG. 6a, the banner recommendation model 610 may be a model generated through training of predicting surrounding content from central content determined based on a window size, based on at least one piece of viewing history information of the user.
[0099] For example, in the banner recommendation model 610 described in FIG. 6a, if the window size is 2 and the central content is the third content, the surrounding content may represent two surrounding content positioned at a time before and after the central content, and may be the first content, the second content, the fourth content, and the fifth content.
[0100] The banner recommendation model 610 described in FIG. 6a may obtain the first content, the second content, the third content, the fourth content, and the fifth content as training data. Here, the third content may represent input data, and the first content, the second content, the fourth content, and the fifth content may represent output data.
[0101] The banner recommendation model 610 may use an input layer 611, a projection layer 612, and an output layer 613 during the training process. For example, input data expressed as eigenvectors may be input into the input layer 611. Specifically, an eigenvector of the third content may be input into the input layer 611.
[0102] The projection layer 612 may transform the high-dimensional eigenvector input from the input layer 611 into a low-dimensional embedding vector. The embedding vector may have a unique location in the low-dimensional space. The projection layer 612 may transform the eigenvector into the embedding vector using a weight matrix W2V*M. Here, V represents the total number of contents, and M represents the dimension of the embedding vector. The weight matrix W2V*M may be referred to as an input weight matrix. The embedding vector is a vector obtained by mapping content from a high-dimensional space to a low-dimensional space, and may be a numerical expression of semantic similarity between contents. For example, it may mean that the closer the embedding vectors are to each other, the higher the semantic similarity between the contents corresponding to the embedding vector.
[0103] The output layer 613 may use a weight matrix W2'M*V to transform the low-dimensional embedding vector back into the high-dimensional eigenvector, which is the original content space, and thus predict pieces of surrounding content. The weight matrix W2'M*V may be referred to as the output weight matrix. Converting the low-dimensional embedding vector into the high-dimensional eigenvector through the output weight matrix may be understood as a process of predicting the pieces of surrounding content through the learned embedding vector of the central content.
[0104] Specifically, the output layer 613 may output a prediction value predicted as the surrounding content through the output weight matrix. The output layer 613 may calculate a loss function based on the difference between the prediction value predicted as the surrounding content and the actual value of the surrounding content. The output layer 613 may update the weight matrix to minimize the difference calculated by the loss function. When the weight matrix is updated, the embedding vector of the contents central content is also updated, and the prediction value predicted as the surrounding content may be calculated to be close to the actual value. The banner recommendation model may be optimized by updating the weight matrix and embedding vector.
[0105] FIG. 6b is a diagram illustrating training data of the banner recommendation model 610 described in FIG. 6a, according to an embodiment.
[0106] In the training data of the banner recommendation model 610 described in FIG. 6a the central content may be used as input data, and the surrounding content relative to the central content may be used as labels that are output data. Referring to a table 620 in FIG. 6b, for example, the viewing history information of the user may be, in order of viewing time, referred to as first content, second content, third content, fourth content, and fifth content, and the size of the window may be 2. If the central content is the third content, the surrounding content may be the first content, the second content, the fourth content, and the fifth content. In addition, if the central content is the second content, the surrounding content may be the first content, the third content, and the fourth content. That is, the banner recommendation model 610 may determine the data set for training by determining the central content and surrounding content using the sliding window. Meanwhile, the window or sliding window for determining the data set for training may be set to be smaller than the size of the viewing history sequence corresponding to the content viewed by the user.
[0107] FIG. 7a is a diagram illustrating a training process of a banner recommendation model 710 that applies negative sampling to exclude content having low relevance to central content from training data based on viewing history information, according to an embodiment.
[0108] Referring to FIG. 7a, the banner recommendation model 710 may be trained by applying negative sampling to exclude content having low relevance to the central content from the training data. Furthermore, the banner recommendation model 710 may be trained according to the training method described in FIG. 6a. By applying the negative sampling, the learning speed and performance of the banner recommendation model 710 may be improved.
[0109] For example, in the banner recommendation model 710 described in FIG. 7a, if the size of the window is 2 and the central content is the third content, the surrounding content may represent two pieces of surrounding content positioned at a time before and after the central content, and may be the first content, the second content, the fourth content, and the fifth content. The surrounding content of the central content may be used as positive sample data. Meanwhile, content unrelated to the central content may be randomly sampled. For example, the seventh content and eighth content may be used as negative sample data.
[0110] The banner recommendation model 710 may use an input layer 711, a projection layer 712, and an output layer 713 during the training process. For example, input data represented as eigenvectors may be input to the input layer 711. Specifically, the eigenvector of the third content may be input to the input layer 711.
[0111] The projection layer 712 may transform the high-dimensional eigenvector input from the input layer 711 into a low-dimensional embedding vector. The embedding vector may have a unique location in the low-dimensional space. The projection layer 712 may transform the eigenvector into the embedding vector using a weight matrix W3V*M. Here, V represents the total number of contents, and M represents the dimension of the embedding vector. The weight matrix W3V*M may be referred to as an input weight matrix. The embedding vector is a vector obtained by mapping content from a high-dimensional space to a low-dimensional space, and may be a numerical expression of semantic similarity between contents. For example, it may mean that the closer the embedding vectors are to each other, the higher the semantic similarity between the contents corresponding to the embedding vector.
[0112] The output layer 713 may use a weight matrix W3'M*V to transform the low-dimensional embedding vector back into the high-dimensional eigenvector, which is the original content space, and thus predict pieces of surrounding content. The weight matrix W3'M*V may be referred to as the output weight matrix. Converting the low-dimensional embedding vector into the high-dimensional eigenvector through the output weight matrix may be understood as a process of predicting the pieces of surrounding content through the learned embedding vector of central content.
[0113] Specifically, the output layer 713 may output a prediction value predicted as the surrounding content through the output weight matrix. The prediction value may be calculated as a probability, and the banner recommendation model 710 may be trained to predict a high probability for positive sample data and a low probability for negative sample data. That is, the loss function may update the weight matrix to predict a high probability for the positive sample data and a low probability for the negative sample data. By applying negative sampling, the amount of computation can be reduced and the learning speed can be increased. In this case, there may be separate layers for input 1 and input 2. Each layer may serve to transform the input into an embedding vector. A value of an inner product of the input, the central content, and the surrounding content may be used as the prediction value of model, and the weight of each layer may be updated by backpropagating the error with the label. After the training is completed, a weight matrix for the central content may be used, two matrices may be added or concatenated to be used, but is not limited thereto.
[0114] FIGS. 7b and 7c are diagrams illustrating training data of the banner recommendation model 710 described in FIG. 7a, according to an embodiment.
[0115] Referring to FIG. 7b, a prediction value of the first content predicted as the surrounding content for the third content, which is the central content, may be calculated as 0.63. According to the viewing history of the user, since the first content is surrounding content of the third content, the label is set to 1, and it may be trained so that the prediction value may be predicted with a high probability.
[0116] On the other hand, the prediction value of the seventh content predicted as surrounding content for the third content, which is the central content, may be calculated as 0.23. According to the viewing history of the user, since the first content is not surrounding content of the third content, the label is set to 0, and it may be trained so that the predicted value may be predicted with a low probability.
[0117] Referring to a table 730 of FIG. 7c, for example, the viewing history information of the user may be, in order of viewing time, referred to as the first content, the second content, the third content, the fourth content, and the fifth content, and the size of the window may be 2. If the central content is the third content, the surrounding content may be the first content, the second content, the fourth content, and the fifth content. For example, the first content, the second content, the fourth content, and the fifth content for the third content may be positive sample data, and the label thereof may be set to 1. On the other hand, the seventh and eighth content unrelated to the third content, may be negative sample data, and the label thereof may be set to 0. That is, the banner recommendation model 710 determine the data set for training by determining the central content and surrounding content using the sliding window and additionally determining negative sample data.
[0118] FIG. 8 is a diagram illustrating a process of updating a weight matrix used to calculate an embedding vector of content based on user's behavioral data regarding content, according to an embodiment.
[0119] The server 10 may update the weight matrix used to calculate the embedding vector of contents based on user's behavioral data regarding at least one piece of content within a content provision service.
[0120] For example, the behavioral data may refer to data indicating the user's preference and interaction intensity for each content, and parameters of the behavioral data may include items such as the completion rate, repeat playback frequency, and recent viewing status, etc. for at least one piece of content.
[0121] Specifically, the completion rate may represent information indicating how much of the content a user has watched until the end. It may be interpreted that the higher the completion rate, the higher the user's interest. Therefore, the higher the completion rate of content, the higher the weight may be set.
[0122] Furthermore, the repeat playback frequency may be information indicating the frequency with which the user has repeatedly played back the content. It may be interpreted that the higher the repeat playback frequency, the higher the user's interest. Therefore, the higher the repeat playback frequency, the higher the weight may be set.
[0123] In addition, the recent viewing status may be information indicating whether the user has viewed the content within a preset recent period. It may be interpreted that the more recently viewed content is, the higher the user's interest is, and the weight may be set higher.
[0124] Referring to FIG. 8, based on first user's behavioral data regarding contents 810 (central content, surrounding content, etc.), weights for completion rate, repeat playback frequency, and recent viewing can be set for each content, and an average of weight values may be calculated. The average of the weight values may be used in the process of updating the loss function and weight matrix. For example, the average of the weight values may update the weight matrix by defining a custom loss function by multiplying or adding the weights to the value of the loss function. In this case, an embedding vector that better reflects preferences may be obtained due to the weights that reflect preference. Alternatively, an embedding vector that reflects preferences during inference may be obtained by multiplying or adding weights to the one-hot encoded input vector and performing learning by multiplying or adding weights to the one-hot encoded vector of related content to the label vector that is compared with the predicted output vector. Alternatively, an embedding vector that reflects preferences during inference may be obtained by concatenating the average of the weight values in the form of adding dimensions in the one-hot encoded input vector, or by concatenating each weight value by adding dimensions as many as the number of preference weights, or by concatenating the average of the weight values in the form of adding dimensions to the one-hot encoded output vector (label vector) that is compared with the predicted output vector, or by concatenating each weight value by adding dimensions as many as the number of preference weights and learning.
[0125] FIG. 9 is a flowchart illustrating an operating method of the server 10 that obtains recommendation banner information based on the similarity between the embedding vectors of contents and the embedding vectors of candidate banners, according to an embodiment.
[0126] Referring to FIG. 9, in step S910, the server 10 may, based on the banner recommendation model and viewing history information, calculate the embedding vectors of contents representing the semantic relationship between contents.
[0127] For example, the server 10 may obtain an eigenvector that uniquely represents each of contents as input data in the banner recommendation model. The server 10 may calculate the embedding vectors of contents that represents a semantic relationship between contents through a weight matrix from the eigenvectors vectors of the contents. In this case, the server 10 may use the banner recommendation model of which training has been completed. For example, the server 10 may calculate the embedding vectors of contents using the projection layer (embedding layer) of the banner recommendation model of which training has been completed.
[0128] In step S920, the server 10 may obtain at least one piece of recommendation banner information based on the similarity between the embedding vectors of the contents and the embedding vectors of candidate banners in a candidate banner list.
[0129] For example, the server 10 may determine the priority of the candidate banners based on the similarity between the embedding vectors of the contents and the embedding vectors of the candidate banners in the candidate banner list. For example, the server 10 may calculate the similarity between the embedding vectors of the contents and the embedding vectors of the candidate banners according to a preset similarity calculation method, such as cosine similarity or Euclidean distance. The higher the similarity of the candidate banner, the higher its priority may be. The server 10 may obtain at least one piece of recommendation banner information based on the priority of the candidate banners.
[0130] FIG. 10 is a flowchart illustrating an operating method of the server 10 that determines the priority of candidate banners, according to an embodiment.
[0131] Referring to FIG. 10, in step S1010, the server 10 may calculate an average embedding vector of recently viewed contents viewed during a preset recent period among contents. Furthermore, the server 10 may set a higher weight for content viewed closer to the last viewing point during the preset recent period. The server 10 may calculate the average embedding vector based on the set weight.
[0132] In step S1020, the server 10 may determine the priority of candidate banners based on the similarity between the average embedding vector of recently viewed contents and the embedding vectors of the candidate banners.
[0133] FIGS. 11a and 11b are diagrams for illustrating a recommendation banner provided in the electronic device 20, according to an embodiment.
[0134] Referring to FIG. 11a, the electronic device 20 may execute a content provision service through a user's account. The electronic device 20 may display an execution screen of the content provision service. The electronic device 20 may provide at least one recommendation banner 1110 in a certain area within the execution screen. For example, the recommendation banner 1110 may be displayed in a certain area at the bottom of a menu of the content provision service.
[0135] A user interface for adjusting a playback section of the recommendation banner 1110 being played may be provided on the execution screen of the recommendation banner. The user may change the playback position of the recommendation banner by adjusting the position of the user interface. The user interface may include a playback bar 1111 of the recommendation banner and a controller 1112 for moving the playback position.
[0136] Meanwhile, the server 10 may provide at least one recommendation banner composed of at least one scene customized to the user to the electronic device 20, based on viewing history information. For example, even if a recommendation banner for the same content is provided to a plurality of users, the scenes constituting the recommendation banner may be set differently based on the viewing history information of the plurality of users. For example, a first scene of the first content may be provided as the start screen to a first user and a second scene of the first content may be provided as the start screen to a second user.
[0137] Referring to FIG. 11b, a thumbnail list 1120 of the recommended banner being played may be provided on the execution screen of the recommended banner. The user may select a thumbnail of interest from the thumbnail list 1120 to move to a playback time point of a location desired by the user.
[0138] For example, if the content of the recommendation banner is a series, the thumbnail list may be composed of thumbnails for the current episode being played, or may be composed of thumbnails for the next episode. Furthermore, a user interface may also be provided that allows the user to choose whether the screen that constitutes the recommendation banner is configured as the screen for the current episode or the next episode.
[0139] FIG. 12 is a block diagram illustrating a configuration of the server 10, according to an embodiment.
[0140] Referring to FIG. 12, the server 10 may include a communication device 1210, a memory 1220, and a processor 1230. However, not all of the illustrated components are essential components. The server 10 may be implemented with more components than the illustrated components, or with fewer components. These components will be described below. The server 10 illustrated in FIG. 12 may correspond to the server 10 described with reference to FIGS. 1 to 11b.
[0141] The communication device 1210 may communicate with an external device. For example, the communication device 1210 may be connected to a network in a wired manner or wirelessly to communicate with the external device. Here, the external device may be the electronic device 20 of the user.
[0142] The communication device 1210 may include a communication module that supports one of various wired and wireless communication methods. The communication module may be a short-range communication module or a wired communication module.
[0143] The memory 1220 may store at least one program for executing an operating method of the server 10 that provides a customized banner through a banner recommendation model trained based on the viewing history information of the user. The at least one program stored in the memory 1220 may be classified into a plurality of modules according to functions.
[0144] The processor 1230 may control the overall operation of the server 10 and may include at least one processor, such as a CPU. The processor 1230 may include at least one specialized processor corresponding to each function, or may be an integrated processor.
[0145] The processor 1230 may execute a program stored in the memory 1220, read data or a file stored in the memory 1220, or store a new file in the memory 1220. Furthermore, the processor 1230 may execute instructions stored in the memory 1220.
[0146] The processor 1230 may obtain viewing history information about contents viewed by the user.
[0147] The processor 1230 may obtain at least one piece of recommendation banner information corresponding to the viewing history information through the banner recommendation model. The banner recommendation model may be a model trained based on at least one piece of viewing history information of the user.
[0148] For example, the processor 1230 may, based on the banner recommendation model and viewing history information, calculate embedding vectors of contents representing a semantic relationship between the contents. The processor 1230 may obtain at least one piece of recommendation banner information based on the similarity between the embedding vectors of the contents and the embedding vectors of the candidate banners in the candidate banner list.
[0149] For a specific example, the processor 1230 may obtain an eigenvector that uniquely represents each piece of content as input data in the banner recommendation model. The processor 1230 may calculate the embedding vectors of contents that represents the semantic relationship between contents through a weight matrix from the eigenvectors of the contents.
[0150] Meanwhile, the processor 1230 may train the banner recommendation model based on at least one piece of viewing history information of the user. During the training of the banner recommendation model, the processor 1230 may calculate a difference between the embedding vector predicted by the banner recommendation model and the actual embedding vector through a loss function and update the weight matrix used to calculate the embedding vectors of the contents so that the difference is reduced.
[0151] In addition, the processor 1230 may update the weight matrix used to calculate the embedding vectors of contents based on user's behavioral data regarding at least one piece of content within the content provision service. Here, the behavioral data may represent data regarding the completion rate, repeat playback frequency, and recent viewing status of at least one piece of content.
[0152] For example, the banner recommendation model may be a first banner recommendation model generated through training of predicting central content from surrounding content determined based on a window size, based on at least one piece of viewing history information.
[0153] For another example, the banner recommendation model may be a second banner recommendation model generated through training of predicting surrounding content from central content based on a window size, based on at least one piece of viewing history information.
[0154] Furthermore, the second banner recommendation model may be a model trained by applying negative sampling that excludes content having low relevance to the central content from the training data.
[0155] Meanwhile, the processor 1230 may determine the priority of candidate banners based on the similarity between the embedding vectors of the contents and the embedding vectors of the candidate banners in the candidate banner list. For example, the processor 1230 may calculate the average embedding vector of recently viewed contents viewed during a preset recent period among the contents. Specifically, the processor 1230 may calculate the average embedding vector of recently viewed contents by setting a higher weight to content viewed closer to the last viewing time point during the preset recent period. The processor 1230 may determine the priority of the candidate banners based on the similarity between the average embedding vector of the recently viewed contents and the embedding vector of the candidate banners. The processor 1230 may obtain at least one piece of recommendation banner information based on the priority of the candidate banners.
[0156] The processor 1230 may provide at least one recommendation banner to the electronic device 20 of the user based on at least one recommendation banner information.
[0157] For example, the processor 1230 may provide at least one recommendation banner to a certain area within the execution screen of a content provision service executed on the electronic device 20 of the user.
[0158] Here, a user interface for adjusting a playback section of a recommendation banner being played among at least one recommendation banner may be provided on the execution screen of the at least one recommendation banner.
[0159] In addition, a thumbnail list of recommendation banners being played among at least one recommendation banner may be provided on the execution screen of at least one recommendation banner. For example, when the content of the recommendation banner is a series, the thumbnail list may be composed of thumbnails of the episodes following the episode being played in the recommendation banner.
[0160] Furthermore, the type of at least one recommendation banner may include at least one type of unopened content, recently added content, and existing content.
[0161] FIG. 13 is a flowchart illustrating an operating method of the electronic device 20, according to an embodiment.
[0162] Referring to FIG. 13, in step S1310, the electronic device 20 may obtain viewing history information about contents viewed by the user.
[0163] In step S1320, the electronic device 20 may transmit the viewing history information to the server 10 that provides content.
[0164] In step S1330, the electronic device 20 may receive at least one piece of recommendation banner information corresponding to the viewing history information from the server 10, through a banner recommendation model that recommends a banner trained based on at least one piece of viewing history information of the user.
[0165] In addition, the electronic device 20 may store a lightweight banner recommendation model in the memory, allows the viewing history information of the user to be learned by the banner recommendation model stored in the memory, and obtain at least one recommended banner information based on the learning result. The process of training the banner recommendation model and obtaining at least one piece of recommendation banner information in the electronic device 20 may correspond to the operations of the server 10 described in FIGS. 2 to 11b.
[0166] In step S1340, the electronic device 20 may display at least one recommendation banner based on at least one piece of recommendation banner information.
[0167] For example, the electronic device 20 may display at least one recommendation banner in a certain area within the execution screen of the content provision service. A user interface for adjusting the playback section of the recommendation banner being played may be displayed in a certain area of the execution screen of at least one recommendation banner.
[0168] In addition, the electronic device 20 may display a thumbnail list of the recommendation banner being played. For example, if the content of the recommendation banner is a series, the thumbnail list may be composed of thumbnails of episodes following the episode being played in the recommendation banner.
[0169] In addition, the type of at least one recommendation banner may include at least one type of unreleased content, recently added content, and existing content.
[0170] In addition, the execution screen of at least one recommendation banner may be composed of at least one scene customized to the user based on the viewing history information of the user.
[0171] FIG. 14 is a block diagram illustrating a configuration of the electronic device 20, according to an embodiment.
[0172] Referring to FIG. 14, the electronic device 20 may include a communication device 1410, a user interface device 1420, a memory 1430, and a processor 1440. However, not all of the illustrated components are essential components. The electronic device 20 may be implemented with more components than the illustrated components, or with fewer components. These components will be described below. The electronic device 20 illustrated in FIG. 14 may correspond identically to the electronic device 20 described with reference to FIGS. 1 to 13.
[0173] The communication device 1410 may communicate with an external device. For example, the communication device 1410 may be connected to a network in a wired manner or wirelessly to communicate with the external device. Here, the external device may be the server 10.
[0174] The communication device 1410 may include a communication module that supports one of various wired and wireless communication methods. The communication module may be a short-range communication module or a wired communication module.
[0175] The user interface device 1420 may refer to a device that receives data from a user to control the electronic device 20. The processor 1440 may control the user interface device 1420 to generate and output a user interface screen for receiving a predetermined instruction or data from the user.
[0176] The user interface device 1420 may include an input unit for receiving inputs to control the operation of the electronic device 20 and an output unit for displaying information such as the results of the operation of the electronic device 20 or the state of the electronic device 20. For example, the user interface device 1420 may include a control panel for receiving user input, a display panel for displaying a screen, etc.
[0177] Specifically, the input unit may include devices capable of receiving various types of user input, such as a keyboard, physical buttons, a touch screen, a camera, or a microphone. Furthermore, the output unit may include, for example, a display panel or a speaker. However, the user interface device 1420 is not limited thereto and may include a device that supports various input / output.
[0178] The memory 1430 may include at least one type of storage medium among a flash memory type, a hard disk type, a multimedia card micro type, a card-type memory (an SD memory, an XD memory, etc.), a random access memory (RAM), a static random access memory (SRAM), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a programmable read-only memory (PROM), a magnetic memory, a magnetic disk, and an optical disk.
[0179] The memory 1430 may store at least one program for executing an operating method of the electronic device 20 that provides a customized banner through a banner recommendation model trained based on the viewing history information of the user. At least one program stored in the memory 1430 may be categorized into a plurality of modules according to functions.
[0180] The processor 1440 may control the overall operation of the electronic device 20 and may include at least one processor, such as a CPU. The processor 1440 may include at least one specialized processor corresponding to each function, or may be an integrated processor.
[0181] The processor 1440 may execute a program stored in the memory 1430, read data or a file stored in the memory 1430, or store a new file in the memory 1430. Furthermore, the processor 1440 may execute instructions stored in the memory 1430.
[0182] The processor 1440 may obtain viewing history information about contents viewed by the user.
[0183] The communication device 1410 may transmit viewing history information to the server 10 that provides content.
[0184] The processor 1440 may receive at least one piece of recommendation banner information corresponding to the viewing history information from the server 10 through the communication device 1410, through the banner recommendation model trained based on at least one piece of viewing history information of the user.
[0185] Furthermore, the processor 1440 may store a lightweight banner recommendation model in the memory 1430, allows the viewing history information of the user to be learned by the banner recommendation model stored in the memory 1430, and obtain at least one piece of recommendation banner information based on the learning result.
[0186] The user interface device 1420 may display at least one recommendation banner based on the at least one piece of recommendation banner information.
[0187] For example, the user interface device 1420 may display at least one recommendation banner in a certain area within an execution screen of the content provision service. A user interface for adjusting a playback section of the recommendation banner being played may be displayed on the execution screen of the at least one recommendation banner.
[0188] In addition, the user interface device 1420 may display a thumbnail list of the recommendation banner being played. For example, if the content of the recommendation banner is a series, the thumbnail list may be composed of thumbnails of at least one episode following a current episode being played in the recommendation banner.
[0189] In addition, the type of at least one recommendation banner may include at least one type of unreleased content, recently added content, and existing content.
[0190] In addition, the execution screen of at least one recommendation banner may be composed of at least one scene customized to the user based on the viewing history information of the user.
[0191] Meanwhile, the electronic device 20 described with reference to FIGS. 13 and 14 may perform some of the operations of the server 10 described with reference to FIGS. 1 and 12, and is not limited to the examples described with reference to FIGS. 13 and 14.
[0192] The server 10 and electronic device 20 described in the present disclosure may be implemented with hardware components, software components, and / or a combination of hardware components and software components. Furthermore, the present disclosure may be provided in the form of a computer program stored on a computer-readable storage medium so as to perform the operating method of the server 10 and the electronic device 20. Furthermore, the present disclosure may be written as a computer-executable program and implemented on a general-purpose digital computer that executes such a program using a computer-readable storage medium.
[0193] Such computer-readable storage media may be read-only memory (ROM), random-access memory (RAM), flash memory, CD-ROMs, CD-Rs, CD+Rs, CD-RWs, CD+RWs, DVD-ROMs, DVD-Rs, DVD+Rs, DVD-RWs, DVD+RWs, DVD-RAMs, BD-ROMs, BD-Rs, BD-R LTHs, BD-REs, magnetic tape, floppy disk, magneto-optical data storage device, optical data storage device, hard disk, solid-state disk (SSD), and may be any device capable of storing instructions or software, related data, data files, and data structures, and providing instructions or software, related data, data files, and data structures to a processor or computer so that the processor or computer may execute the instructions.
[0194] Although the embodiments have been described in detail above, the scope of the rights of the present invention is not limited thereto, and various modifications and improvements made by those skilled in the art using the basic concept of the present invention defined in the following claims also fall within the scope of the rights of the present invention.
Claims
1.An operating method of a server, comprising:obtaining viewing history information about contents viewed by a user;obtaining at least one piece of recommendation banner information corresponding to the viewing history information through a banner recommendation model trained based on at least one piece of the viewing history information of the user; andproviding at least one recommendation banner to an electronic device of the user based on the at least one piece of recommendation banner information.2.The operating method of claim 1, wherein the obtaining of the at least one piece of recommendation banner information through the banner recommendation model includes:calculating embedding vectors of the contents representing a semantic relationship between the contents based on the banner recommendation model and the viewing history information; andobtaining the at least one recommendation banner information based on the similarity between the embedding vectors of the contents and embedding vectors of candidate banners in a candidate banner list.3.The operating method of claim 1, wherein the banner recommendation model includes a first banner recommendation model generated through training of predicting central content from surrounding content determined based on a window size, based on the at least one piece of viewing history information.4.The operating method of claim 1, wherein the banner recommendation model includes a second banner recommendation model generated through training of predicting surrounding content from central content based on a window size, based on the at least one piece of viewing history information.5.The operating method of claim 4, wherein the second banner recommendation model is trained by applying negative sampling that excludes content having low relevance to the central content from the training data.6.The operating method of claim 2, wherein the calculating of the embedding vectors of the contents includes:obtaining an eigenvector that uniquely represents each of the contents as input data in the banner recommendation model; andcalculating embedding vectors of the contents indicating a semantic relationship between the contents through a weight matrix from the eigenvectors of the contents.7.The operating method of claim 1, further comprising:training the banner recommendation model based on the at least one piece of viewing history information of the user.8.The operating method of claim 7, wherein the training of the banner recommendation model includes updating a weight matrix used to calculate embedding vectors of the contents based on behavioral data regarding at least one piece of content of the user within a content provision service.9.The operating method of claim 8, wherein the behavioral data represents data regarding a completion rate, repeat playback frequency, and recent viewing status of the at least one piece of content.10.The operating method of claim 7, wherein the training of the banner recommendation model includes updating, through a loss function, at least one weight matrix of an input weight matrix used to calculate the embedding vectors of the contents and an output weight matrix used to obtain the at least one recommendation banner so that a difference between a prediction value predicted by the banner recommendation model and an actual value is reduced.11.The operating method of claim 2, wherein the obtaining of the at least one piece of recommendation banner information includes:determining a priority of candidate banners in a candidate banner list based on the similarity between embedding vectors of the contents and embedding vectors of the candidate banners; andobtaining at least one piece of recommendation banner information based on the priority of the candidate banners.12.The operating method of claim 11, wherein the determining of the priority of the candidate banners in the candidate banner list based on the similarity between the embedding vectors of the contents and the embedding vectors of the candidate banners includes:calculating an average embedding vector of recently viewed contents viewed during a preset recent period among the contents; anddetermining the priority of the candidate banners based on a similarity between the average embedding vector of the recently viewed contents and the embedding vectors of the candidate banners.13.The operating method of claim 12, wherein the calculating of the average embedding vector of the recently viewed contents includes calculating the average embedding vector of the recently viewed contents by setting a higher weight for content viewed closer to the last viewing point during the preset recent period.14.The operating method of claim 1, wherein the providing of the at least one recommendation banner to the electronic device of the user includes providing the at least one recommendation banner that is composed of at least one scene customized to the user based on the viewing history information.15.The operating method of claim 1, wherein the providing of the at least one recommendation banner to the electronic device of the user includes providing the at least one recommendation banner in a certain area within an execution screen of a content provision service executed on the electronic device of the user.16.The operating method of claim 15, wherein a user interface for adjusting a playback section of a recommendation banner being played among the at least one recommendation banner is provided on the execution screen of the at least one recommendation banner.17.The operating method of claim 15, wherein a thumbnail list of recommendation banners being played among the at least one recommendation banner is provided on the execution screen of the at least one recommendation banner.18.The operating method of claim 17, wherein when the content of the recommendation banner is a series, the thumbnail list is composed of thumbnails of episodes following an episode being played in the recommendation banner.19.The operating method of claim 1, wherein a type of the at least one recommendation banner includes at least one type of unopened content, recently added content, and existing content.20.A server comprising:a communication device that communicates with an external device;a processor; anda memory that stores instructions executable by the processor,wherein the processor executes the instructions to:obtain viewing history information about contents viewed by a user;obtain at least one piece of recommendation banner information corresponding to the viewing history information of the user through a banner recommendation model trained based on at least one piece of the viewing history information; andprovide at least one recommendation banner to an electronic device of the user based on the at least one piece of recommendation banner information.21.A non-transitory computer-readable storage medium storing instructions that, when executed by a processor of a server, cause the server to perform a method comprising:obtaining viewing history information about contents viewed by a user;obtaining at least one piece of recommendation banner information corresponding to the viewing history information of the user through a banner recommendation model trained based on at least one piece of the viewing history information; andproviding at least one recommendation banner to an electronic device of the user based on the at least one piece of recommendation banner information.22.An operating method of an electronic device, comprising:obtaining viewing history information about contents viewed by a user;transmitting the viewing history information to a server that provides content;receiving, from the server, at least one piece of recommendation banner information corresponding to the viewing history information through a banner recommendation model trained based on at least one viewing history information of the user; anddisplaying at least one recommendation banner based on the at least one piece of recommendation banner information.23.An electronic device comprising:a communication device that communicates with an external device;a user interface device;a processor; anda memory that stores instructions executable by the processor,wherein the processor executes the instructions to:obtain viewing history information about contents viewed by a user;transmit, through the communication device, the viewing history information to a server that provides content;receive, from the server, at least one piece of recommendation banner information corresponding to the viewing history information through a banner recommendation model trained based on at leas6t one piece of viewing history information of the user, through the communication device; anddisplay, through the user interface device at least one recommendation banner based on the at least one piece of recommendation banner information.24.A non-transitory computer-readable storage medium storing instructions that, when executed by a processor of an electronic device, cause the electronic device to perform a method comprising: obtaining viewing history information about contents viewed by a user;transmitting the viewing history information to a server that provides content;receiving, from the server, at least one piece of recommendation banner information corresponding to the viewing history information through a banner recommendation model trained based on at least one piece of viewing history information of the user; anddisplaying at least one recommendation banner based on the at least one piece of recommendation banner information.
Citation Information
Patent Citations
Content recommendation device
JP2014027672A
Content recommending system interworking with set-top box and method thereof
KR1020140095675A
Digital device and method of processing data the same
KR1020170045829A
Method and system for managing load based on a location
KR1020210046152A
Integrated circuit device including vertically stacked field effect transistors
KR1020230037348A