Candidate post providing method, computer apparatus, and program
The method employs multiple candidate generators with different criteria for parallel processing and real-time filtering to efficiently select and filter candidate posts, addressing the challenge of selecting from an unlimited pool and ensuring high-quality recommendations.
Patent Information
- Application Number
- JP2025134062
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-08-20
- Filing Date
- 2025-08-12
- Publication Date
- 2026-03-05
AI Technical Summary
Existing recommendation systems face challenges in efficiently selecting candidate posts from an unlimited pool of posts, leading to increased time requirements and the inability to exclude low-quality posts, especially when the number of recommendable posts increases rapidly.
A method utilizing multiple candidate generators (CDGs) with different selection criteria for parallel processing, followed by real-time feature extraction and filtering to create a recommendation pool, including steps like post prioritization, duplication removal, and quality filtering.
Enables quick selection and efficient filtering of candidate posts, ensuring high-quality recommendations by reducing the time required and maintaining post quality, even with an unlimited number of posts.
Smart Images

Figure 2026036670000001_ABST
Abstract
Description
[Technical Field]
[0001] The following description relates to techniques for providing candidate posts for use in a recommendation model. [Background technology]
[0002] Social media, such as social network services (SNS) and messengers, is a general term for services that help build relationships between people, forming relationships between users and supporting interactions through posts.
[0003] Social media can provide users with information in different contexts, such as updates about users' connections, updates about posts, content recommendations, and many other types of information items.
[0004] For example, Patent Document 1 (registered date: June 29, 2017) discloses a technology for managing posts on SNS.
[0005] As social media becomes more widespread, the functions offered through these platforms are becoming more diverse, and video platforms are now being provided that allow users to watch and share videos they have uploaded. [Prior art documents] [Patent documents]
[0006] [Patent Document 1] Korean Patent Registration No. 10-1754373 Summary of the Invention [Problem to be solved by the invention]
[0007] Candidate posts can be quickly and efficiently selected from an unlimited number of available post pools.
[0008] Various types of candidate generators (CDGs) allow for the selection of candidate posts for asynchronous recommendation.
[0009] Features of candidate posts are obtained in real time and can be used to apply various filtering. [Means for solving the problem]
[0010] A method for providing candidate posts for a computer device including at least one processor is provided, the method including the steps of: selecting candidate posts from a pool of available posts with an unlimited number of posts by parallel processing using multiple candidate generators (CDGs) with different post selection criteria, using the at least one processor; filtering the candidate posts based on their features, using the at least one processor; and configuring the candidate posts remaining after filtering as a recommendation pool for recommending posts, using the at least one processor.
[0011] According to one embodiment, the step of selecting candidate posts may select candidate posts asynchronously through processing using two or more candidate generators, including a first candidate generator having post selection criteria based on content similarity, a second candidate generator having post selection criteria based on a relationship graph that shows the relationships between posts, a third candidate generator having post selection criteria based on popularity, and a fourth candidate generator having post selection criteria based on category.
[0012] In another embodiment, the step of selecting candidate posts may include, in at least one of the plurality of candidate generators, selecting candidate posts reflecting a user history, and in at least another of the plurality of candidate generators, selecting candidate posts reflecting a user feature.
[0013] Also, according to another embodiment, the step of selecting candidate posts may select as candidate posts a number of posts assigned to each candidate generator.
[0014] Furthermore, according to another embodiment, the step of selecting candidate posts may select as candidate posts the number of posts assigned to each priority according to the priority given to the candidate generator.
[0015] Also, according to other embodiments, filtering the candidate posts may include prioritizing each candidate generator based on user responses to previous recommendations.
[0016] In another embodiment, the step of selecting candidate posts may include a step of excluding posts with the same ID from the group of candidates selected by processing using each candidate generator.
[0017] In another embodiment, the step of excluding posts may take into account the priority given to each candidate generator, and leave only one post among posts with the same ID, while removing the other posts.
[0018] In another embodiment, the step of selecting candidate posts may include a step of combining the candidates selected by each candidate generator into one pool, taking into account the mixing ratio of each candidate generator.
[0019] In other embodiments, the filtering step may include filtering out from the candidate posts posts by authors that the user has marked as uninteresting or duplicate posts with similar content.
[0020] In yet another embodiment, filtering may further include filtering out from the candidate posts those posts from personal accounts or posts that do not have embedded videos.
[0021] A program is provided that is recorded on a computer-readable recording medium and that causes a computer device to execute a method for providing candidate posts. Also provided is a program that causes a computer device to execute the method for providing candidate posts.
[0022] The present invention provides a computer device including at least one processor configured to execute computer-readable instructions, the at least one processor performing the following steps: selecting candidate posts from an available post pool with an unlimited number of posts by processing in a parallel structure using multiple candidate generators (CDGs) with different post selection criteria; filtering the candidate posts based on their features; and configuring the candidate posts remaining after filtering as a recommendation pool for post recommendation. [Brief explanation of the drawings]
[0023] [Figure 1] FIG. 1 illustrates an example of a network environment in accordance with an embodiment of the present invention. [Figure 2] FIG. 1 is a block diagram illustrating an example of a computer device according to an embodiment of the present invention. [Figure 3] 1 is a flowchart illustrating an example of a method performed by a computer device in accordance with an embodiment of the present invention. [Figure 4]1 is a flowchart illustrating a candidate post selection process in one embodiment of the present invention. [Figure 5] FIG. 10 illustrates an example of a user history acquisition process in accordance with an embodiment of the present invention. [Figure 6] FIG. 10 illustrates an example of a combination of CDGs for screening candidate posts in one embodiment of the present invention. [Figure 7] FIG. 10 illustrates an example of a CDG priority candidate post-merge process in accordance with one embodiment of the present invention. [Figure 8] FIG. 10 illustrates another example of a CDG priority candidate post-merge process in accordance with an embodiment of the present invention. [Figure 9] FIG. 10 is a diagram illustrating another example of a combination of CDGs for filtering candidate posts in one embodiment of the present invention. [Figure 10] 10 is a flowchart illustrating a candidate post-filtering process in one embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0024] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
[0025] SUMMARY OF THE INVENTION Embodiments of the present invention relate to techniques for providing candidate posts for use in a recommendation model.
[0026] Embodiments including those specifically disclosed in this specification utilize a parallel structure that utilizes various types of candidate generators (CDGs) to quickly select candidate posts, obtain features of the selected candidate posts in real time, and then use these to apply various filtering processes to efficiently select candidate posts for recommendation from an unlimited pool of available posts.
[0027] The candidate post providing device according to an embodiment of the present invention may be embodied by at least one computer device, and the candidate post providing method according to an embodiment of the present invention may be executed by at least one computer device included in the candidate post providing device. In this case, a computer program according to an embodiment of the present invention may be installed and executed in the computer device, and the computer device may execute the candidate post providing method according to an embodiment of the present invention under the control of the executed computer program. The above-mentioned computer program may be combined with the computer device and recorded on a computer-readable recording medium to cause the computer to execute the candidate post providing method.
[0028] FIG. 1 is a diagram showing an example of a network environment in one embodiment of the present invention. The network environment in FIG. 1 shows an example including multiple electronic devices 110, 120, 130, and 140, multiple servers 150 and 160, and a network 170. FIG. 1 is merely an example for explaining the invention, and the number of electronic devices and the number of servers are not limited to those shown in FIG. 1. Furthermore, the network environment in FIG. 1 is merely an example for explaining an environment applicable to this embodiment, and the environment applicable to this embodiment is not limited to the network environment in FIG. 1.
[0029] The electronic devices 110, 120, 130, and 140 may be fixed or mobile terminals embodied as computers. Examples of the electronic devices 110, 120, 130, and 140 include smartphones, mobile phones, navigation systems, personal computers (PCs), notebook PCs, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), and tablets. While FIG. 1 illustrates a smartphone as an example of the electronic device 110, in embodiments of the present invention, the electronic device 110 may represent one of a variety of physical computer devices capable of communicating with the other electronic devices 120, 130, and 140 and / or the servers 150 and 160 via the network 170 using a substantially wireless or wired communication method.
[0030] The communication method is not limited, and may include not only a communication method utilizing a communication network (for example, a mobile communication network, a wired Internet, a wireless Internet, or a broadcast network) that can be included in network 170, but also short-range wireless communication between devices. For example, network 170 may include any one or more of a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a broadband network (BBN), the Internet, etc. Furthermore, network 170 may include any one or more of a network topology including, but not limited to, a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree network, or a hierarchical network.
[0031] Each of the servers 150, 160 may be embodied by one or more computing devices that communicate with the plurality of electronic devices 110, 120, 130, 140 via the network 170 to provide instructions, code, files, content, services, etc. For example, the server 150 may be a system that provides services (e.g., video services, social media services, etc.) to the plurality of electronic devices 110, 120, 130, 140 connected via the network 170.
[0032] 2 is a block diagram illustrating an example of a computer device according to an embodiment of the present invention. Each of the electronic devices 110, 120, 130, and 140 and each of the servers 150 and 160 described above may be embodied by a computer device 200 illustrated in FIG. 2.
[0033] As shown in FIG. 2 , the computer device 200 may include a memory 210, a processor 220, a communication interface 230, and an input / output interface 240. The memory 210 is a computer-readable recording medium and may include random access memory (RAM), read-only memory (ROM), and a permanent mass storage device such as a disk drive. The permanent mass storage device such as a ROM or a disk drive may be included in the computer device 200 as a separate permanent storage device distinct from the memory 210. The memory 210 may also store an operating system and at least one program code. Such software components may be loaded into the memory 210 from a computer-readable recording medium separate from the memory 210. Such separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD / CD-ROM drive, or a memory card. In another embodiment, the software components may be loaded into the memory 210 through a communication interface 230, which is not a computer-readable recording medium. For example, the software components may be loaded into the memory 210 of the computer device 200 based on a computer program installed by a file received over the network 170 .
[0034] Processor 220 may be configured to process computer program instructions by performing basic arithmetic, logic, and input / output operations. The instructions may be provided to processor 220 by memory 210 or by communication interface 230. For example, processor 220 may be configured to execute received instructions according to program code stored in a storage device such as memory 210.
[0035] The communication interface 230 may provide a function for the computer device 200 to communicate with other devices (e.g., the above-mentioned storage device) via the network 170. For example, requests, instructions, data, files, etc. generated by the processor 220 of the computer device 200 in accordance with program code stored in a storage device such as the memory 210 may be transmitted to other devices via the network 170 under the control of the communication interface 230. Conversely, signals, instructions, data, files, etc. from other devices may be received by the computer device 200 via the communication interface 230 of the computer device 200 via the network 170. The signals, instructions, data, etc. received via the communication interface 230 may be transmitted to the processor 220 or the memory 210, and the files, etc. may be recorded on a storage medium (e.g., the above-mentioned permanent storage device) that the computer device 200 may further include.
[0036] The input / output interface 240 may be a means for interfacing with the input / output device 250. For example, the input device may include a device such as a microphone, keyboard, or mouse, and the output device may include a device such as a display or speaker. As another example, the input / output interface 240 may be a means for interfacing with a device that integrates input and output functions into one, such as a touch screen. The input / output device 250 may be configured as a single device together with the computer device 200.
[0037] Also, in other embodiments, computing device 200 may include fewer or more components than those shown in Figure 2. However, most prior art components need not be explicitly shown in the figures. For example, computing device 200 may be embodied to include at least some of the input / output devices 250 described above, and may further include other components such as a transceiver, a database, etc.
[0038] The following describes a specific embodiment of a technique for providing candidate posts for a large-scale real-time recommendation system.
[0039] Previously, there was a limit to the number of posts that could be recommended per unit period (e.g., 1 day), and the features of the posts used in the recommendation model were stored in advance. However, limiting the number of posts that could be recommended could lead to a lack of posts on themes preferred by users, or to a decline in quality. Furthermore, because the number of posts that could be recommended was updated daily, it took time for newly generated posts to be recommended.
[0040] On the other hand, if the limit were lifted, the number of recommendable posts would increase to hundreds of thousands, and there was no way to exclude low-quality posts from recommendations because it was not possible to apply heuristic logic or filtering to this. Furthermore, if the limit were lifted, it would be impossible to know in advance what kind of posts would be provided as recommendations, so it was not possible to store post features in advance.
[0041] In this way, when the number of recommendable posts increases rapidly, the time required to select candidate posts for recommendation increases significantly, so an efficient structure to compensate for this was needed.
[0042] This embodiment optimizes the process of selecting candidate posts from a large pool of posts with no limit on the number of posts that can be recommended, and can apply various filters to remove low-quality posts from the list of recommended posts.
[0043] The computer device 200 according to the present embodiment may provide a video service to a client through a dedicated application installed on the client or through connection to a web / mobile site related to the computer device 200. A candidate post providing device embodied by a computer may be configured in the computer device 200. For example, the candidate post providing device may be implemented in the form of an independently operating program, or may be implemented in the form of an in-app for a specific application so as to be operable on the specific application.
[0044] The processor 220 of the computing device 200 may be embodied with components for performing the following candidate post providing method. Depending on the embodiment, the components of the processor 220 may be selectively included or excluded from the processor 220. Also, depending on the embodiment, the components of the processor 220 may be separated or combined to implement the functions of the processor 220.
[0045] Such processor 220 and components of processor 220 may control computer device 200 to perform steps included in the following method for providing candidate posts. For example, processor 220 and components of processor 220 may be embodied to execute instructions from operating system code and at least one program code contained in memory 210.
[0046] Here, the components of the processor 220 may represent different functions that are performed by the processor 220 according to instructions provided by program code stored on the computer device 200 .
[0047] The processor 220 may read the necessary instructions from the memory 210, which is loaded with instructions related to the control of the computing device 200. In this case, the read instructions may include instructions for controlling the processor 220 to perform the steps described below.
[0048] The steps included in the method for providing candidate posts described below may be performed in a different order than that shown in the figures, some steps may be omitted, or additional steps may be included.
[0049] The steps of the method for providing candidate posts may be performed on the server 150, although in some embodiments at least some of the steps may be performed on the client.
[0050] FIG. 3 is a flowchart illustrating an example method that may be performed by a computing device in accordance with an embodiment of the present invention.
[0051] Referring to FIG. 3, in step 310, the processor 220 may select candidate posts from a pool of available posts, which may contain an unlimited number of posts, based on multiple different logics. The processor 220 may select candidate posts through parallel processing using various types of candidate generators (CDGs) with different post selection criteria. The candidate generators (CDGs) for selecting candidate posts may include content similarity-based CDGs, relationship graph-based CDGs, popularity-based CDGs, and category-based CDGs. (1) The content similarity-based CDG may use collaborative filtering to select, as candidate posts, posts similar to posts consumed by a user or posts consumed by other users similar to the user based on user history. (2) The relationship graph-based CDG may use a relationship graph showing the relationships between posts to select, as candidate posts, posts related to posts consumed by a user. (3) The popularity-based CDG may select candidate posts based on their popularity over a recent period (e.g., a week, a month, etc.). Posts created during that period may be selected as candidate posts if they were highly popular during that period, or posts created during that period may be selected as candidate posts if they were highly popular over all posts, regardless of the post creation date. The popularity index for a post may be the cumulative number of likes (like count) or the cumulative number of clicks (view count). (4) The category-based CDG may use the post's category to select posts in a category preferred by the user (e.g., interests) or posts in the same category as posts consumed by the user as candidate posts. In other words, the processor 220 may generate multiple groups of candidate posts through parallel asynchronous processing using multiple candidate generators (CDGs) with different post selection logic.
[0052] In step 320, the processor 220 may perform filtering based on the features of the candidate posts selected in step 310. The processor 220 may obtain various features of the candidate posts in real time, such as the author, author type, category, and whether or not the candidate posts have embedded videos, and then use these features to apply various filters. For example, the processor 220 may filter out, from the candidate set for each CDG, posts by authors who the user has disliked (disliked authors), duplicate posts with similar content, posts by personal accounts (PAs), posts without embedded videos, etc.
[0053] In step 330, the processor 220 may configure the candidate posts remaining after applying the filtering as a recommendation pool for recommending posts in social media and provide them to a recommendation model for ranking the posts. At this time, the processor 220 may transmit the candidate posts configured as the recommendation pool and features of each candidate post to the recommendation model.
[0054] In addition, the processor 220 may transmit a seed post together with the candidate post to the recommendation model. For example, the processor 220 may set a post that has generated a user log, such as a post that has been "liked" or clicked, as a seed post. On the other hand, a post that has a negative feedback log, such as a post that the user has notified, a post that the user has marked as uninterested, or an impression post, cannot be set as a seed post.
[0055] FIG. 4 is a flow chart illustrating the candidate post selection process in one embodiment of the present invention.
[0056] Referring to FIG. 4, in step 401, the processor 220 may select multiple groups of candidate posts through parallel, asynchronous processing using multiple candidate generators (CDGs) with different post selection logic.
[0057] The processor 220 may obtain a first candidate group, a second candidate group, and a third candidate group by selecting candidate posts through asynchronous processing using a content similarity-based CDG, a relationship graph-based CDG, or a popularity-based CDG.
[0058] In this case, the content similarity-based CDG may select posts similar to the post consumed by the user or posts consumed by other users similar to the user as candidate posts. The relationship graph-based CDG may select posts related to the post consumed by the user as candidate posts using a relationship graph between posts. The popularity-based CDG may select candidate posts based on popularity over a recent period of time.
[0059] To select candidate posts, the processor 220 may first select a user history based on the user's identification information (eg, MID, etc.) according to the user's service request.
[0060] As shown in FIG. 5, the processor 220 may collect all the history of the user's service usage process based on the user log, such as posts consumed by the user (seen posts), posts reported by the user (report posts) or posts marked as disliked by the user (disliked posts), authors marked as not interested by the user (not interest authors), posts clicked by the user (clicked posts), posts marked as "liked" by the user (liked posts), and posts for which the user has entered negative feedback (negative posts).
[0061] In addition to the user history, the processor 220 may obtain user features (eg, age, gender, location, interests, whether the user is embedded, etc.) based on the user's identification information (MID).
[0062] Referring again to FIG. 4, the content similarity-based CDG and the relational graph-based CDG may generate a candidate set by reflecting a user history, and the popularity-based CDG may generate a candidate set by reflecting a user feature.
[0063] Processor 220 may also assign each CDG a number of candidate posts to be screened. Processor 220 may assign the same number of posts to each CDG, or, in some embodiments, may assign different numbers of posts to each CDG.
[0064] As another example, processor 220 may assign the number of posts to each priority level according to the priority of the CDGs. For example, as shown in Figure 6, if the content similarity-based CDG is ranked first, the relationship graph-based CDG is ranked second, and the popularity-based CDG is ranked third, 200 candidate posts may be selected from the first-ranked CDG, 150 from the second-ranked CDG, and 100 from the third-ranked CDG.
[0065] The priority of each CDG may be predetermined or, in some embodiments, may be dynamically and personalized based on the user's response to previous recommendations. For example, if a user consumes the most recommended posts selected by a popularity-based CDG, the popularity-based CDG may be ranked first for that user. Processor 220 may adaptively determine the priority of the CDG or the number of posts in the CDG depending on the user's response to the recommendations.
[0066] Referring again to FIG. 4, in step 402, processor 220 may remove posts with the same ID from the candidate sets selected by the process using each CDG. If posts with the same ID are included in two or more candidate sets, processor 220 may retain only one post and remove the others. In this case, processor 220 may retain the post selected by the process using the CDG with the highest priority among posts with the same ID and remove the others. For example, assuming that the content similarity-based CDG is ranked first, the relationship graph-based CDG is ranked second, and the popularity-based CDG is ranked third, if a post with ID AAA is selected in all three CDGs, only the AAA post included in the candidate set for the content similarity-based CDG may be retained and the AAA posts included in the candidate sets for the relationship graph-based CDG and the popularity-based CDG may be removed.
[0067] In step 403, the processor 220 may integrate the candidates selected by the processes using the content similarity-based CDG, the relationship graph-based CDG, and the popularity-based CDG into one pool, taking into account a predetermined mixing ratio of the CDGs. The processor 220 removes posts with the same ID and adjusts the number of remaining candidate posts. In this case, the number of candidate posts may be reduced while maintaining the mixing ratio between the CDGs.
[0068] Before applying filtering, the candidate posts may be initially adjusted to a predetermined number (e.g., 200), and a mixing ratio may be determined for each priority according to the priority given to the CDG.
[0069] For example, as shown in Figure 7, if the content similarity-based CDG is determined as the first place, the relationship graph-based CDG as the second place, and the popularity-based CDG as the third place, the candidate groups of each CDG may be mixed into one pool while maintaining the ratio of the first place CDG at 80%, the second place CDG at 15%, and the third place CDG at 5%.
[0070] In some embodiments, the mixing ratio between CDGs may be dynamically and personalized based on the user's response to previous recommendation results. For example, the priority and mixing ratio of each CDG may be determined based on the proportion of recommended posts consumed by the user. For example, as shown in FIG. 8, if the user consumes 40% of the recommended posts selected by the content similarity-based CDG, 40% of the recommended posts selected by the popularity-based CDG, and 20% of the recommended posts selected by the relationship graph-based CDG, the content similarity-based CDG and the popularity-based CDG may be ranked jointly first, and the relationship graph-based CDG may be ranked third, and the candidates from each CDG may be mixed in a mixing ratio of 40%, 40%, and 20%.
[0071] Although the above description has been given of obtaining three groups of candidates (first, second, and third candidate groups) from the content similarity-based CDG, the relationship graph-based CDG, and the popularity-based CDG, this is not limiting. Depending on the embodiment, one of the content similarity-based CDG, the relationship graph-based CDG, and the popularity-based CDG may be omitted or replaced with another CDG.
[0072] In addition to the content similarity-based CDG, the relationship graph-based CDG, and the popularity-based CDG, it is also possible to add at least one other CDG. For example, as shown in FIG. 9, four groups of candidates, i.e., a first group of candidates, a second group of candidates, a third group of candidates, and a fourth group of candidates, may be obtained by selecting candidate posts through asynchronous processing using the content similarity-based CDG, the relationship graph-based CDG, the popularity-based CDG, and the category-based CDG. In this case, the category-based CDG may use the post category to select, as candidate posts, posts in a category preferred by the user or posts in the same category as posts consumed by the user.
[0073] FIG. 10 is a flow chart illustrating the candidate post-filtering process in one embodiment of the present invention.
[0074] 10, in step 1001, the processor 220 may acquire features of candidate posts included in each candidate group in real time for candidate groups selected by multiple CDGs. As an example, the processor 220 may acquire, as features of each candidate post, meta features corresponding to metadata, and whether or not content is embedded (video embedded, text embedded, audio embedded, etc.).
[0075] In step 1002, the processor 220 may use characteristics of each candidate post to filter out from the candidate set posts whose authors the user has marked as uninteresting.
[0076] In step 1003, processor 220 may use the features of each candidate post to filter out duplicate posts with similar content from the candidate set. For example, processor 220 may compare the content embeddings of the candidate posts and filter out posts with a similarity to the content embeddings above a predetermined level as duplicate posts.
[0077] In step 1004, the processor 220 may use the features of each candidate post to filter out posts from personal accounts or posts without embedded videos from the candidate pool. The processor 220 may filter out posts from personal accounts that are of lower quality than official accounts from the recommendation pool. In addition, in the case of a service that recommends video posts, the processor 220 may filter out posts that do not have embedded videos from the recommendation pool. In this case, the processor 220 may preferentially filter out posts from personal accounts without embedded videos from the candidate posts, and then filter out posts from personal accounts and posts without embedded videos in that order.
[0078] The processor 220 may stop filtering if the maximum number of posts that can be removed is exceeded. For example, 50% of the number of candidate posts integrated by the CDG mixing ratio may be defined as the maximum number of posts for filtering. If 200 posts are ultimately selected from the available post pool as candidate posts for recommendation, the processor 220 may filter out low-quality posts by filtering out up to 50% of them.
[0079] Thus, according to an embodiment of the present invention, candidate posts can be quickly selected through parallel processing using various types of CDGs, and features of the selected candidate posts can be obtained in real time, and then various filtering methods can be used to quickly and efficiently select candidate posts for recommendation from an unlimited number of available post pools.
[0080] The devices described above may be implemented using hardware components, software components, and / or a combination of hardware and software components. For example, the devices and components described in the embodiments may be implemented using one or more general-purpose or special-purpose computers, such as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU), a microprocessor, or various devices capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the OS. The processing device may also access, record, manipulate, process, and generate data in response to the execution of the software. For ease of understanding, a single processing device may be described. However, those skilled in the art will understand that a processing device may include multiple processing elements and / or multiple types of processing elements. For example, a processing device may include multiple processors or one processor and one controller. Other processing configurations, such as parallel processors, are also possible.
[0081] Software may include computer programs, codes, instructions, or a combination of one or more of these, which may configure a processing device to operate as desired or may independently or collectively instruct the processing device. The software and / or data may be embodied in any type of machine, component, physical device, computer storage medium, or device to be interpreted by the processing device or to provide instructions or data to the processing device. The software may be distributed and stored and executed in a distributed manner on computer systems connected by a network. The software and data may be stored on one or more computer-readable storage media.
[0082] Methods according to embodiments may be implemented in the form of program instructions executable by various computer means and recorded on a computer-readable medium. In this case, the medium may continuously record a computer-executable program or may temporarily record the program for execution or download. The medium may be various recording or storage means in the form of a single piece of hardware or multiple pieces of hardware combined together. It may be a medium directly connected to a computer system or distributed over a network. Examples of media include magnetic media such as hard disks, floppy disks, and magnetic tapes; optical media such as CD-ROMs and DVDs; magneto-optical media such as floptical disks; and media configured to record program instructions, such as ROMs, RAMs, and flash memories. Other examples of media include recording media or storage media managed by app stores that distribute applications, or by websites or servers that provide or distribute various software.
[0083] Although the embodiments have been described above based on limited examples and drawings, those skilled in the art will appreciate that various modifications and variations may be made from the above description. For example, the described techniques may be performed in an order different from that described, and / or the described system, structure, device, circuit, or other element may be coupled or combined in a manner different from that described, or may be substituted or replaced by other elements or equivalents, and still achieve suitable results.
[0084] Therefore, different embodiments are within the scope of the appended claims, provided that they are equivalent to the claims.
[0085] This application claims priority based on Patent Application No. 10-2024-0111457, filed with the Korean Intellectual Property Office on August 20, 2024, the entire contents of which are incorporated herein by reference. [Explanation of symbols]
[0086] 110, 120, 130, 140: Electronic equipment 150, 160: Server 170: Network
Claims
1. 1. A method for providing candidate posts in a computer device including at least one processor, comprising: selecting, by the at least one processor, candidate posts from a pool of available posts with an unlimited number of posts by a parallel structured process using multiple candidate generators with different post selection criteria; filtering, by the at least one processor, based on features of the candidate posts; configuring, by the at least one processor, the candidate posts remaining after the filtering as a recommendation pool for making post recommendations; A method for providing candidate posts, including:
2. The step of selecting the candidate posts includes: The candidate posts are selected without synchronization through a process using two or more candidate generators selected from a first candidate generator having a post selection criterion based on content similarity, a second candidate generator having a post selection criterion based on a relationship graph showing the relationship between posts, a third candidate generator having a post selection criterion based on popularity, and a fourth candidate generator having a post selection criterion based on category. The method for providing candidate posts according to claim 1 ,
3. The step of selecting the candidate posts includes: In at least one of the plurality of candidate generators, selecting the candidate posts by reflecting a user history; In at least one other candidate generator among the plurality of candidate generators, selecting the candidate posts by reflecting user features; The method of claim 1 , comprising:
4. The step of selecting the candidate posts includes: Selecting the number of posts assigned to each of the candidate generators as the candidate posts. The method for providing candidate posts according to claim 1 ,
5. The step of selecting the candidate posts includes: Selecting the number of posts assigned to each of the priorities as the candidate posts according to the priorities given to the candidate generator. The method for providing candidate posts according to claim 1 ,
6. The step of selecting the candidate posts includes: assigning the priority to each of the candidate generators based on user response to previous recommendations. The method of claim 5 , comprising:
7. The step of selecting the candidate posts includes: A step of excluding posts having the same ID from the candidates selected by the process using each of the candidate generators. The method of claim 1 , comprising:
8. The step of filtering out posts includes: Taking into consideration the priority given to the candidate generator, only one post is left among the posts having the same ID, and the other posts are excluded. The method for providing candidate posts according to claim 7, characterized in that:
9. The step of selecting the candidate posts includes: a step of combining the candidates selected from each of the candidate generators into one pool, taking into account the mixing ratio of each of the candidate generators; The method of claim 1 , comprising:
10. The filtering step includes: filtering out posts from the candidate posts whose authors the user has set as uninteresting or duplicate posts with similar content; The method of claim 1 , comprising:
11. The filtering step includes: filtering out posts from personal accounts or posts without embedded videos from the candidate posts; The method of claim 10 further comprising:
12. A program for causing the computer device to execute the method for providing candidate posts according to any one of claims 1 to 11.
13. At least one processor configured to execute computer-readable instructions Including, The at least one processor selecting candidate posts from an unlimited pool of available posts by a parallel process using multiple candidate generators with different post selection criteria; filtering based on features of the candidate posts; configuring the candidate posts remaining after the filtering as a recommendation pool for making post recommendations; A computer device that processes
14. The at least one processor The candidate posts are selected without synchronization through a process using two or more candidate generators selected from a first candidate generator having a post selection criterion based on content similarity, a second candidate generator having a post selection criterion based on a relationship graph showing the relationship between posts, a third candidate generator having a post selection criterion based on popularity, and a fourth candidate generator having a post selection criterion based on category.
14. The computer device of claim 13.
15. The at least one processor Selecting the number of posts allocated to each of the candidate posts as the candidate posts.
14. The computer device of claim 13.
16. The at least one processor Selecting the number of posts assigned to each of the priorities as the candidate posts according to the priorities given to the candidate generator.
14. The computer device of claim 13.
17. The at least one processor and assigning the priority to each of the candidate generators based on user response to previous recommendations.
17. The computer device of claim 16.
18. The at least one processor excluding posts having the same ID from the group of candidates selected by the process using each of the candidate generators; Taking into consideration the priority given to the candidate generator, only one post is left among the posts having the same ID, and the other posts are excluded.
14. The computer device of claim 13.
19. The at least one processor From the candidate posts, excluding posts whose authors the user has set as uninteresting or duplicate posts with similar content.
14. The computer device of claim 13.
20. The at least one processor Exclude from the candidate posts any posts from personal accounts or posts without embedded videos.
20. The computer device of claim 19.
Citation Information
Patent Citations
Method of managing relay posts and server performing the same
KR101754373B1