Information processing device, information processing method, and information processing program
The information processing device uses an inverted index-based candidate generator and reranking to suggest suitable friend additions on SNS, addressing the limitations of existing methods by enhancing computational efficiency and diversity in friend addition recommendations.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-19
- Publication Date
- 2026-04-01
AI Technical Summary
Existing methods for friend addition on social networking sites (SNS) via advertisement placement destinations only consider conversion as adding friends to the advertiser's SNS account, lacking a comprehensive approach to suggest suitable friend additions for users.
An information processing device comprising a candidate generation processing unit that uses an inverted index-based candidate generator to suggest suitable accounts, followed by a reranking processing unit to refine recommendations, and a recommendation processing unit to suggest adding these accounts as friends.
Enables suggesting suitable friend additions to users, enhancing the effectiveness of friend addition processes by improving computational efficiency and diversity in recommendations.
Smart Images

Figure 2026056082000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an information processing apparatus, an information processing method, and an information processing program.
Background Art
[0002] There is disclosed a technique including data on advertisement-related data regarding an advertisement, the number of accesses from a first advertisement placement destination specified by advertisement placement destination information for an advertiser's advertisement, conversion which is the number of times of friend addition on an SNS via access from the advertisement placement destination, and the conversion rate (see Patent Document 1).
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the above prior art, although the friend addition on the SNS via access from the advertisement placement destination is regarded as conversion, it is only regarded as conversion of friend addition to the advertiser's SNS account, and there is room for improvement in the method of proposing friend addition to users.
[0005] The present application has been made in view of the above, and an object thereof is to propose friend addition to an account suitable for a user.
Means for Solving the Problems
[0006] The information processing device according to the present invention is characterized by comprising: a candidate generation processing unit that generates recommended account candidates using an inverted index-based candidate generator based on a corpus of accounts; a reranking processing unit that reranks the recommended account candidates obtained as a result of the recommended candidate generation to further narrow down the recommended candidates; and a recommendation processing unit that recommends adding the recommended candidate accounts as friends to the target user. [Effects of the Invention]
[0007] According to one embodiment, it is possible to suggest adding a friend to an account that is suitable for the user. [Brief explanation of the drawing]
[0008] [Figure 1] Figure 1 is an explanatory diagram showing an overview of the information processing system according to the embodiment. [Figure 2] Figure 2 is an explanatory diagram illustrating the general configuration of the recommendation system. [Figure 3] Figure 3 is an explanatory diagram illustrating the configuration of a recommendation system that applies only a deep learning model-based candidate generator. [Figure 4] Figure 4 shows an example of where recommendations are displayed. [Figure 5] Figure 5 is an explanatory diagram illustrating the overview of the calculation method for recommendation KPIs. [Figure 6A] Figure 6A is the first figure showing the verification results according to this embodiment. [Figure 6B] Figure 6B is a second figure showing the verification results according to this embodiment. [Figure 7] Figure 7 shows an example of the configuration of a terminal device according to this embodiment. [Figure 8] Figure 8 shows an example of the configuration of a server device according to the embodiment. [Figure 9] Figure 9 is a flowchart showing the processing procedure according to the embodiment. [Figure 10] Figure 10 shows an example of a hardware configuration. [Modes for carrying out the invention]
[0009] The following describes in detail, with reference to the drawings, embodiments for implementing the information processing device, information processing method, and information processing program according to the present application (hereinafter referred to as "embodiments"). Note that these embodiments do not limit the information processing device, information processing method, and information processing program according to the present application. Furthermore, the same parts are denoted by the same reference numerals in the following embodiments, and redundant descriptions are omitted.
[0010] [1. Overview of the Information Processing System] First, with reference to Figure 1, an overview of the information processing system according to the embodiment will be described. Figure 1 is an explanatory diagram showing an overview of the information processing system according to the embodiment. As shown in Figure 1, the information processing system 1 according to the embodiment includes a terminal device 10 and a server device 100. The terminal device 10 and the server device 100 are connected to each other via a network N, either by wired or wireless means, enabling communication between them. This allows the terminal device 10 to cooperate with the server device 100. The network N is, for example, a LAN (Local Area Network), a WAN (Wide Area Network), or the Internet.
[0011] Terminal device 10 is an information processing device used by user U. For example, terminal device 10 may be a smart device such as a smartphone or tablet, a PC (Personal Computer) such as a desktop or notebook (laptop), a mobile phone such as a feature phone, a PDA (Personal Digital Assistant), a game console or AV equipment with communication functions, an information appliance or digital appliance, a car navigation system, a wearable device such as a smartwatch, head-mounted display, or smart glasses. Alternatively, terminal device 10 may be a house or building compatible with the Internet of Things (IoT), a car, a home appliance, an electronic device, etc.
[0012] In this embodiment, the terminal device 10 is a smart device such as a smartphone or tablet used by user U, and is a mobile terminal device that can communicate with any server device via wireless communication networks such as LTE (Long Term Evolution), 4G (4th Generation), 5G (5th Generation), Bluetooth (registered trademark), or wireless LAN. The terminal device 10 also has a screen such as a liquid crystal display with touch panel functionality, and accepts various operations on displayed data such as content from user U using a finger or stylus, such as tapping, sliding, and scrolling. Operations performed on the area of the screen where content is displayed may also be considered as operations on the content. Furthermore, the terminal device 10 may be an information processing device such as a desktop PC or notebook PC, not just a smart device.
[0013] The server device 100 is, for example, a computer such as a PC or blade server, or a mainframe or workstation. The server device 100 may also be implemented through cloud computing.
[0014] In this embodiment, the server device 100 is an information processing device that works in conjunction with each user U's terminal device 10 and provides each user U's terminal device 10 with API (Application Programming Interface) services for various applications (hereinafter referred to as "apps") and various data, and is implemented by a computer or cloud system.
[0015] Further, the server device 100 may be an information processing device that provides some online service to the terminal device 10 of each user U. For example, as an online service, the server device 100 may provide services such as Internet connection, search service, chat service, dialogue service by voice, image, video, etc., SNS (Social Networking Service), electronic commerce (EC: Electronic Commerce), electronic payment, online game, online banking, online trading, accommodation and ticket reservation, video and music distribution, news, map, route search, route guidance, route information, operation information, weather forecast, etc. In fact, the server device 100 may cooperate with various servers that provide the above-mentioned online services and mediate the online services, or be responsible for the processing of the online services.
[0016] In addition, the server device 100 can acquire user information regarding the user U. For example, as user information, the server device 100 acquires information (attribute information) regarding the attributes of the user U, such as the gender, age, and residential area of the user U. Further, the server device 100 can acquire information regarding attributes such as the demographics (demographic attributes), psychographics (psychological attributes), geographics (geographical attributes), and behavioral (behavioral attributes) of the user U. Also, the server device 100 may acquire, as user information, the segment or persona (persona) to which the user U belongs in the field of marketing. Then, the server device 100 stores and manages the information (attribute information) regarding the attributes of the user U together with the identification information (user ID, etc.) indicating the user U.
[0017] In addition, the server device 100 acquires various types of history information (log data) indicating the actions of the user U from the terminal device 10 of the user U or from various servers or the like based on the user ID or the like. For example, the server device 100 acquires a location history, which is a history of the location and time of the user U, from the terminal device 10. Further, the server device 100 acquires a search history, which is a history of the search queries input by the user U, from a search server (search engine). Further, the server device 100 acquires a browsing history, which is a history of the content browsed by the user U, from a content server. Further, the server device 100 acquires a purchase history (settlement history), which is a history of the user U's product purchases and settlement processes, from an e-commerce server or a settlement processing server. Further, the server device 100 may acquire a listing history or a sales history, which is a history of the user U's listings on the marketplace, from an e-commerce server or a settlement processing server. Further, the server device 100 acquires a posting history, which is a history of the user U's posts, from a posting server or an SNS server that provides a word-of-mouth posting service. Note that each of the above various servers or the like may be the server device 100 itself. That is, the server device 100 may function as each of the above various servers or the like.
[0018] In addition, the number of each device included in the information processing system 1 shown in FIG. 1 is not limited to that shown. For example, in FIG. 1, only one terminal device 10 is shown for simplicity of illustration, but this is merely an example and is not limited, and two or more may be used.
[0019] 〔2. OA Recommendation Candidate Generation〕 There are countless official accounts (OAs) for apps (for example, tens of millions), and they are displayed on various distribution channels within the app. By recommending the most suitable official accounts to users to add as friends, it is possible to efficiently increase the number of effective friends. Note that adding an account as a friend does not automatically mean you will be followed. Conversely, following an account does not automatically mean you will be added as a friend. Accounts displayed under "Friends" and accounts displayed under "Following" are different. By adding an official account as a friend, you can receive notifications from the official account and send messages to it.
[0020] In this embodiment, the server device 100 generates OA recommendation candidates using an inverted index based on the category ranking of official accounts (OAs). An inverted index is an index structure for storing word position information from a group of documents targeted for full-text search.
[0021] [2-1. Recommendation System Configuration] Refer to Figure 2 to explain the configuration of the recommendation system. Figure 2 is an explanatory diagram showing an overview of the recommendation system configuration. For example, as shown in Figure 2, the recommendation of official accounts (OAs) uses a two-stage recommendation pipeline consisting of candidate generation and reranking. In the candidate generation stage, it is necessary to efficiently extract hundreds of user-related recommendation candidates from tens of millions of official account (OA) inventory items (OAs in the OA item corpus).
[0022] Server device 100 narrows down the recommendation candidates from a corpus of tens of millions of office automation items to several hundred by generating recommendation candidates, and further narrows them down to several dozen recommendation candidates by reranking using LightGBM (Light Gradient Boosting Machine).
[0023] The OA item corpus is a collection (database) of linguistic data such as text and audio collected regarding official accounts (OA). LightGBM is one of the Gradient Boosting Decision Tree (GBDT) algorithms. Rerank is a technique that improves accuracy by rearranging the results returned by Retrieval-Augmented Generation (RAG). In practice, similar methods may be used to the extent that they are feasible.
[0024] Here, Figure 3 is an explanatory diagram illustrating the configuration of a recommendation system that applies only a deep learning model-based candidate generator. As shown in Figure 3, when only a deep learning model-based candidate generator, such as a DNN (Deep Neural Network) model, is applied, the computation is heavy and dependent on the GPU (Graphics Processing Unit), making it unsuitable for online recommendations. Furthermore, a deep learning model-based candidate generator alone lacks diversity in recommendation candidates.
[0025] Therefore, in this embodiment, as shown in Figure 1, we propose increasing the number of inverted index-based candidate generators that reduce computational costs, thereby improving the feasibility of online recommendations. Furthermore, we enhance the overall diversity of recommendations by using a multi-axis candidate generation logic that increases the candidate generation logic. For example, the server device 100 performs OA recommendation candidate generation using an inverted index-based candidate generator as real-time processing, and performs OA recommendation candidate generation using a deep learning model-based candidate generator as batch processing. The server device 100 may perform the above batch processing at a specified time, such as at night, or it may perform the above real-time processing and batch processing in parallel.
[0026] The server device 100 may implement the above mechanism using AI (Artificial Intelligence) such as GPT (Generative Pre-trained Transformer). GPT is a text generation AI and a language model capable of generating text using natural language processing.
[0027] [2-2. Detailed Design of the Proposal Candidate Generation Logic] For example, as shown in Figure 1, the server device 100 aggregates the categories of official accounts (OAs) that each user has added as friends and the proportion of those categories from the user's friend-adding logs over a certain period of time, and creates user preferences (step S1). Here, the server device 100 creates user preferences for each user, sorting the pairs of categories and their scores in descending order of score. Note that the category scores may be normalized versions of the proportion of that category. In the following, users will be referred to as "user1", categories as "Category1", and official accounts (OAs) as "OA5".
[0028] For example, server device 100 creates a user preference like {"user1":{"Category1":0.8,"Category2":0.1,...,etc.}","user2":{...},...etc.}. The score for each category in the user preference is considered an element of the user preference vector (the dimension of the multidimensional vector).
[0029] Next, the server device 100 aggregates the category rankings of all users and then creates an inverted index of official accounts (OAs) and categories (step S2). Here, the server device 100 creates an inverted index for each category, sorting the pairs of official accounts (OAs) and their scores in descending order of score. The score of an official account (OA) may be the normalized ranking of the official account (OA) within its respective category.
[0030] For example, server device 100 creates an inverted index like {"Category1":{"OA5":0.6,"OA2":0.2,"OA4":0.1,...,etc.},"Category2":{"OA5":0.01,...,etc.},...,etc.}. The score of each official account (OA) in the inverted index is used as an element of the inverted index vector.
[0031] Next, the server device 100 obtains the association OAs of the user's category axis by taking the dot product of the user preferences and the inverted index (their respective vectors) (step S3). At this time, the server device 100 calculates the degree of association between the user and the official account (OA) by performing the dot product calculation of the user preferences and the inverted index.
[0032] For example, the correlation between user1 and OA5 is calculated as 0.8 × 0.6 + 0.1 × 0.01 = 0.481. In other words, for "user1", it is calculated as "Category1" "0.8" × "Category1's" "OA5" "0.6" + "Category2" "0.1" × "Category2's" "OA5" "0.01" = 0.481.
[0033] Next, the server device 100 retrieves the top N (where N is arbitrary) official accounts (OAs) in order of relevance and adds them to the recommendation candidates for the target user (step S4). In practice, the server device 100 may also retrieve official accounts (OAs) with a relevance of a threshold or higher and add them to the recommendation candidates for the target user.
[0034] Next, the server device 100 recommends to the target user that they add the recommended official account (OA) as a friend (step S5).
[0035] [2-3. Where recommendations are displayed] Refer to Figure 4 to explain where the recommendations are displayed. Figure 4 is a diagram showing an example of where the recommendations are displayed. The server device 100 displays recommended official accounts on the app screen of the user U's terminal device 10 via the network N.
[0036] For example, as shown in Figure 4, the server device 100 may display recommended official accounts on the Home tab, at the top of the SmartCH page, on the top page of the Official Account List (OA List), or on the basic information page of the Official Account Profile (OA Profile). However, the above is merely an example. In reality, it is not limited to the above examples.
[0037] [2-4. KPIs for Recommendations] Refer to Figure 5 to explain how to calculate the recommendation KPI (Key Performance Indicator). Figure 5 is an explanatory diagram showing an overview of how to calculate the recommendation KPI. First, the server device 100 calculates the LTV (Life Time Value) of the usage-based sales per user using the following formula 1.
[0038] (Formula 1) LTV (Lifetime Value) per user = (1 - Immediate Block Rate) × Average Message Cost × Number of Messages Received
[0039] Next, the server device 100 calculates the usage-based sales of the official account (OA) using the following equation 2.
[0040] (Formula 2) Official account (OA) revenue per user = LTV per friend added × number of friends added to the official account (OA)
[0041] In other words, the more friends an official account (OA) gains, the higher its per-user revenue becomes.
[0042] To efficiently increase the number of friend additions to the official account (OA), the recommendation KPI will be the number of friend additions per impression (add_imp). An impression is the number of times the recommendation is displayed. In other words, the recommendation is equivalent to an advertisement that uses friend additions as a conversion (CV) or engagement.
[0043] [2-5. Verification of Effects] The effectiveness verification will be explained with reference to Figures 6A and 6B. Figure 6A is the first figure showing the verification results according to this embodiment. Figure 6B is the second figure showing the verification results according to this embodiment. Figure 6A shows a table of the conversion rate (CVR) and KPI lift value (KPI Lift) for each user group, where adding a friend is defined as a conversion (CV). Figure 6A also shows line graphs for the number of recommendation impressions (imp), clicks (click), and click-through rate (CTR). Figure 6B shows line graphs for the number of friend additions (add), the number of immediate blocks per impression (im_block), and the number of friend additions per impression (add_imp).
[0044] As shown in Figures 6A and 6B, the online A / B test revealed that the test user group (Group T) that included recommendation candidate generation for official accounts (OA) using the inverted index of the category rankings mentioned above outperformed the current user group (Group C). Note that other candidate generation logics were also included in the A / B test, but their explanation is omitted here.
[0045] [2-6. Supplement] As described above, this embodiment proposes a new method for recommending official accounts (OAs). For example, the server device 100 selects candidate candidates for recommendations related to the messaging app using both a first method and a second method based on the history of user activity in the messaging app (for example, attributes of user U who added friends, message content, attributes of the official account (OA) that sent the message, and attributes of the official account (OA) that followed (plan, location, product category, etc.)), and further reranks and provides the selected candidate candidates for recommendations.
[0046] The first method is the generation of OA recommendation candidates using a deep learning model-based candidate generator. The second method is the generation of OA recommendation candidates using an inverted index-based candidate generator. For example, server device 100 generates candidates based on the inverted index of the category ranking of official accounts (OA).
[0047] Regarding the messaging app, the proposed content can be any account that adds user U as a friend, and may include other users, official accounts (OAs), or content provided by official accounts (OAs).
[0048] The server device 100 recommends the official accounts of apps at various times. The server device 100 then receives rewards from the official accounts of the recommended apps based on a percentage of the number of friends added (for views).
[0049] Furthermore, the server device 100 uses an inverted index based on a log base of friend additions as an inverted index. Specifically, it uses a score based on the relationship between users and each official account (OA) category, based on the logs of users adding friends. In addition, it uses the relationship between official account (OA) categories and each user category. For example, it uses the relationship between users and official account (OA) categories based on the attribute trends of users who have added official account (OA) categories as friends.
[0050] Furthermore, when generating recommendation candidates, the server device 100 may perform deep learning model-based candidate generation and inverted index-based candidate generation in batch processing, or it may perform only inverted index-based candidate generation in real time. It is difficult to perform deep learning model-based candidate generation in real time.
[0051] Furthermore, the server device 100 will ultimately rerank the data. At this time, the server device 100 will rerank the data overall (based on user attributes). Alternatively, the server device 100 may rerank the data based on whether it is a deep learning model or a semantic model.
[0052] Furthermore, the server device 100 may learn which accounts the user ultimately added as friends during the reranking process. The system can also utilize the results to determine which method is most effective. Note that the amount of money spent (bit value) is not included in the reranking process.
[0053] [3. Example of terminal device configuration] Next, the configuration of the terminal device 10 will be described using Figure 7. Figure 7 is a diagram showing an example of the configuration of the terminal device 10 according to the embodiment. As shown in Figure 7, the terminal device 10 comprises a communication unit 11, a display unit 12, an input unit 13, a positioning unit 14, a sensor unit 20, a control unit 30 (controller), and a storage unit 40.
[0054] (Communications Section 11) The communication unit 11 is connected to the network N by wire or wireless connection and transmits and receives information to and from the server device 100 via the network N. For example, the communication unit 11 can be implemented using a NIC (Network Interface Card) or an antenna.
[0055] (Display section 12) The display unit 12 is a display device that displays various information such as location information. For example, the display unit 12 may be a liquid crystal display (LCD) or an organic electro-luminescent display (OLED). The display unit 12 may also be a touch panel display, but is not limited to this.
[0056] (Input section 13) The input unit 13 is an input device that receives various operations from the user U. For example, the input unit 13 has buttons for inputting characters, numbers, etc. The input unit 13 may also be an input / output port (I / O port) or a USB (Universal Serial Bus) port. If the display unit 12 is a touch panel display, a part of the display unit 12 functions as the input unit 13. The input unit 13 may also be a microphone that receives voice input from the user U. The microphone may be wireless.
[0057] (Positioning unit 14) The positioning unit 14 receives signals (radio waves) transmitted from GPS (Global Positioning System) satellites and, based on the received signals, acquires position information (e.g., latitude and longitude) indicating the current position of the terminal device 10. In other words, the positioning unit 14 determines the position of the terminal device 10. Note that GPS is just one example of a GNSS (Global Navigation Satellite System).
[0058] Furthermore, the positioning unit 14 can determine its position using various methods other than GPS. For example, the positioning unit 14 may use various communication functions of the terminal device 10 to determine its position as an auxiliary positioning means for position correction, etc., as described below.
[0059] (Wi-Fi positioning) For example, the positioning unit 14 determines the location of the terminal device 10 by utilizing the Wi-Fi® communication function of the terminal device 10 and the communication network provided by each telecommunications company. Specifically, the positioning unit 14 determines the location of the terminal device 10 by performing Wi-Fi communication, etc., and determining the distance to nearby base stations and access points.
[0060] (Beacon positioning) Furthermore, the positioning unit 14 may determine the location using the Bluetooth® function of the terminal device 10. For example, the positioning unit 14 determines the location of the terminal device 10 by connecting to a beacon transmitter connected via the Bluetooth® function.
[0061] (Geomagnetic positioning) Furthermore, the positioning unit 14 determines the position of the terminal device 10 based on the geomagnetic pattern of the structure, which has been measured in advance, and the geomagnetic sensor provided by the terminal device 10.
[0062] (RFID positioning) Furthermore, if, for example, the terminal device 10 is equipped with an RFID (Radio Frequency Identification) tag function equivalent to that of a contactless IC card used at a train station ticket gate or in a store, or if it is equipped with a function to read RFID tags, the location where it was used will be recorded along with the information on the payment or other transactions made by the terminal device 10. The positioning unit 14 may determine the location of the terminal device 10 by acquiring such information. Alternatively, the location may be determined by an optical sensor or infrared sensor equipped in the terminal device 10.
[0063] The positioning unit 14 may, if necessary, determine the position of the terminal device 10 using one or a combination of the positioning means described above.
[0064] (Sensor unit 20) The sensor unit 20 includes various sensors mounted on or connected to the terminal device 10. The connection can be wired or wireless. For example, the sensors may be detection devices other than the terminal device 10, such as wearable devices or wireless devices. In the example shown in Figure 7, the sensor unit 20 includes an acceleration sensor 21, a gyro sensor 22, a barometric pressure sensor 23, a temperature sensor 24, a sound sensor 25, a light sensor 26, a magnetic sensor 27, and an image sensor (camera) 28.
[0065] The sensors 21-28 described above are merely examples and not limiting. In other words, the sensor unit 20 may be configured to include some of the sensors 21-28, or it may include other sensors such as humidity sensors in addition to or instead of the sensors 21-28.
[0066] The acceleration sensor 21 is, for example, a 3-axis acceleration sensor and detects the physical movement of the terminal device 10, such as its direction of movement, velocity, and acceleration. The gyro sensor 22 detects the physical movement of the terminal device 10, such as its tilt in the three axes, based on its angular velocity. The barometric pressure sensor 23 detects the atmospheric pressure around the terminal device 10, for example.
[0067] Since the terminal device 10 is equipped with the acceleration sensor 21, gyroscope 22, barometric pressure sensor 23, etc., it becomes possible to determine the position of the terminal device 10 using technologies such as pedestrian dead-reckoning (PDR) that utilize these sensors 21 to 23. This makes it possible to obtain indoor location information that is difficult to obtain with positioning systems such as GPS.
[0068] For example, a pedometer using an accelerometer 21 can calculate the number of steps, walking speed, and distance walked. Additionally, a gyroscope 22 can be used to determine the user U's direction of movement, gaze direction, and body tilt. Furthermore, the barometric pressure detected by the barometric pressure sensor 23 can be used to determine the altitude and floor number of the user U's terminal device 10.
[0069] The temperature sensor 24 detects, for example, the ambient temperature around the terminal device 10. The sound sensor 25 detects, for example, the ambient sound around the terminal device 10. The light sensor 26 detects the ambient illumination around the terminal device 10. The magnetic sensor 27 detects, for example, the Earth's magnetic field around the terminal device 10. The image sensor 28 captures an image of the area around the terminal device 10.
[0070] The aforementioned pressure sensor 23, temperature sensor 24, sound sensor 25, light sensor 26, and image sensor 28 can detect the surrounding environment and conditions of the terminal device 10 by detecting atmospheric pressure, temperature, sound, and illuminance, respectively, and by capturing images of the surroundings. Furthermore, it becomes possible to improve the accuracy of the location information of the terminal device 10 based on the surrounding environment and conditions.
[0071] (Control Unit 30) The control unit 30 includes, for example, a microcomputer having a CPU (Central Processing Unit) or MPU (Micro Processing Unit), ROM (Read Only Memory), RAM (Random Access Memory), input / output ports, and various circuits. Alternatively, the control unit 30 may be composed of hardware such as an integrated circuit (ASIC) or FPGA (Field Programmable Gate Array). The control unit 30 includes a transmission unit 31, a reception unit 32, and a processing unit 33.
[0072] (Transmitter 31) The transmission unit 31 can transmit various information, such as information input by the user U using the input unit 13, various information detected by sensors 21-28 mounted on or connected to the terminal device 10, and location information of the terminal device 10 determined by the positioning unit 14, to the server device 100 via the communication unit 11.
[0073] (Receiving unit 32) The receiving unit 32 can receive various information provided by the server device 100, as well as requests for various information from the server device 100, via the communication unit 11.
[0074] (Processing 33) The processing unit 33 controls the entire terminal device 10, including the display unit 12. For example, the processing unit 33 can output and display various information transmitted by the transmission unit 31 and various information received from the server device 100 by the reception unit 32 to the display unit 12.
[0075] (Storage unit 40) The storage unit 40 is implemented by, for example, semiconductor memory elements such as RAM (Random Access Memory) and flash memory, or by storage devices such as HDD (Hard Disk Drive), SSD (Solid State Drive), and optical discs. Various programs and various data are stored in this storage unit 40.
[0076] [4. Example of Server Device Configuration] Next, the configuration of the server device 100 according to the embodiment will be described using Figure 8. Figure 8 is a diagram showing an example of the configuration of the server device 100 according to the embodiment. As shown in Figure 8, the server device 100 includes a communication unit 110, a storage unit 120, and a control unit 130.
[0077] (Communications Department 110) The communication unit 110 is implemented, for example, by a NIC (Network Interface Card). The communication unit 110 is connected to the network N by wire or wireless connection.
[0078] (Storage unit 120) The storage unit 120 is implemented by, for example, semiconductor memory elements such as RAM (Random Access Memory) and flash memory, or by storage devices such as HDDs, SSDs, and optical discs. The storage unit 120 may store identification information (such as a user ID) indicating user U, as well as attribute information and history information (log data) of user U.
[0079] (Control unit 130) The control unit 130 is a controller, and is realized by executing various programs (corresponding to an example of an information processing program) stored in the internal storage device of the server device 100 using a storage area such as RAM as a working area, for example, by a CPU (Central Processing Unit), MPU (Micro Processing Unit), GPU (Graphics Processing Unit), ASIC (Application Specific Integrated Circuit), or FPGA (Field Programmable Gate Array). In the example shown in Figure 8, the control unit 130 has an acquisition unit 131, a candidate generation processing unit 132, a rerank processing unit 133, a recommendation processing unit 134, and a verification unit 135.
[0080] (Acquisition part 131) The acquisition unit 131 acquires the search query entered by the user U. For example, when the user U enters a search query into a search engine or the like and performs a keyword search, the acquisition unit 131 acquires the search query via the communication unit 110. In other words, the acquisition unit 131 acquires the keyword entered by the user U into the search box of a search engine, website, or application via the communication unit 110.
[0081] Furthermore, the acquisition unit 131 acquires user information about user U via the communication unit 110. For example, the acquisition unit 131 acquires identification information (such as user ID), location information, and attribute information of user U from user U's terminal device 10. The acquisition unit 131 may also acquire identification information and attribute information of user U when user U is registered. The acquisition unit 131 then stores the user information in the storage unit 120.
[0082] Furthermore, the acquisition unit 131 acquires various historical information (log data) indicating the user U's actions via the communication unit 110. For example, the acquisition unit 131 acquires various historical information indicating the user U's actions from the user U's terminal device 10, or from various servers based on the user ID, etc. The acquisition unit 131 then stores the various historical information in the storage unit 120.
[0083] Furthermore, the acquisition unit 131 collects linguistic data such as text and audio related to the account via the communication unit 110, and generates (or updates) a corpus of the account, which is a collection (database) of the collected linguistic data.
[0084] (Candidate generation processing unit 132) The candidate generation processing unit 132 generates recommended candidates for accounts using an inverted index-based candidate generator, based on the account corpus.
[0085] For example, the candidate generation processing unit 132 generates recommended account candidates using an inverted index-based candidate generator as a real-time process based on the account corpus, and generates recommended account candidates using a deep learning model-based candidate generator as a batch process.
[0086] In this case, the candidate generation processing unit 132 may include a transposed candidate generation processing unit 132a and a learned candidate generation processing unit 132b (not shown). The transposed candidate generation processing unit 132a generates recommended account candidates using a transposed index-based candidate generator as a real-time process. The learned candidate generation processing unit 132b generates recommended account candidates using a deep learning model-based candidate generator as a batch process.
[0087] Furthermore, the candidate generation processing unit 132 aggregates the categories of accounts that each user has added as friends and the percentage of those categories from the user's friend addition logs over a certain period in the past, and creates user preferences.
[0088] At this time, the candidate generation processing unit 132 creates a user preference for each user, which is a pair of a category and a score obtained by normalizing the proportion of that category, sorted in descending order of score.
[0089] Furthermore, the candidate generation processing unit 132 aggregates the category rankings of all users and then creates an inverted index of accounts and categories.
[0090] At this time, the candidate generation processing unit 132 creates an inverted index for each category, which is a pair of an account and a score that is a normalized version of the account's ranking within that category, sorted in descending order of score.
[0091] Furthermore, the candidate generation processing unit 132 calculates the dot product of user preferences and the inverted index to determine the degree of association between the user and the account.
[0092] Furthermore, the candidate generation processing unit 132 retrieves a predetermined number of accounts (for example, the top N accounts, where N is arbitrary) in order of relevance and adds them to the recommendation candidates for the target user (selects them as recommendation candidates).
[0093] (Rerank processing 133) The reranking processing unit 133 performs a reranking on the recommendation candidates for accounts obtained as a result of recommendation candidate generation to further narrow down the recommendation candidates.
[0094] (Recommendation processing unit 134) The recommendation processing unit 134 recommends to the target user that they add the recommended account as a friend.
[0095] (Verification section 135) The verification unit 135 verifies the results of recommending adding recommended accounts as friends. For example, the verification unit 135 conducts an online A / B test comparing the case where recommended account candidates are generated using the inverted index of category rankings with and without this feature. The verification unit 135 also calculates the conversion rate (CVR) and KPI lift value (KPI Lift) for each user group, assuming that adding friends is the conversion (CV). The verification unit 135 also creates graphs for recommendation impressions (imp), clicks (click), click-through rate (CTR), number of friends added (add), number of immediate blocks per impression (im_block), and number of friends added per impression (add_imp).
[0096] [5. Processing Procedure] Next, the processing procedure by the server device 100 according to the embodiment will be described using Figure 9. Figure 9 is a flowchart of the processing procedure according to the embodiment. Note that the processing procedure shown below is repeatedly executed by the control unit 130 of the server device 100.
[0097] For example, as shown in Figure 9, the acquisition unit 131 of the server device 100 collects linguistic data such as text and audio related to the account via the communication unit 110, and generates (or updates) an account corpus, which is a collection (database) of the collected linguistic data (step S101).
[0098] Next, the candidate generation processing unit 132 of the server device 100 generates recommended account candidates using an inverted index-based candidate generator as a real-time process based on the account corpus. To do this, it aggregates the categories of accounts that each user has added as friends and the proportion of those categories from the user's friend-adding logs over a certain period in the past, and creates user preferences (step S102). At this time, the candidate generation processing unit 132 creates user preferences for each user, sorted in descending order of scores, by pairing categories with a normalized score of the proportion of those categories.
[0099] Next, the candidate generation processing unit 132 of the server device 100 aggregates the category rankings of all users and then creates an inverted index of accounts and categories (step S103). At this time, the candidate generation processing unit 132 creates an inverted index for each category, in which pairs of accounts and the normalized score of the account's ranking within that category are arranged in descending order of score.
[0100] Next, the candidate generation processing unit 132 of the server device 100 calculates the dot product of user preferences and inverted index to determine the degree of association between the user and the account (step S104).
[0101] Next, the candidate generation processing unit 132 of the server device 100 retrieves a predetermined number of accounts (for example, the top N accounts, where N is arbitrary) in order of relevance and adds them to the recommendation candidates for the target user (step S105).
[0102] Furthermore, the candidate generation processing unit 132 of the server device 100 generates recommended account candidates using a deep learning model-based candidate generator as a batch process, based on the account corpus (step S106).
[0103] Next, the reranking processing unit 133 of the server device 100 performs a rerank on the recommendation candidates for the accounts obtained as a result of recommendation candidate generation to further narrow down the recommendation candidates (step S107).
[0104] Next, the recommendation processing unit 134 of the server device 100 recommends to the target user that they add the recommended account as a friend (step S108).
[0105] Next, the verification unit 135 of the server device 100 verifies the results of recommending adding the recommended account as a friend (step S109).
[0106] [6. Variant Example] The terminal device 10 and server device 100 described above may be implemented in various other forms besides those of the embodiment described above. Therefore, the following describes modifications of the embodiment.
[0107] In the above embodiment, some or all of the processing performed by the server device 100 may actually be performed by the terminal device 10 (or an application running on the terminal device 10). For example, the processing may be completed in a standalone manner (by the terminal device 10 alone). In this case, the terminal device 10 is assumed to have the same functions as the server device 100 in the above embodiment. Furthermore, in the above embodiment, since the terminal device 10 is in cooperation with the server device 100, from the perspective of the user U, it appears as if the processing of the server device 100 is also being performed by the terminal device 10. In other words, from another perspective, it can be said that the terminal device 10 is equipped with the server device 100.
[0108] Furthermore, in the above embodiment, the server device 100 that performs OA recommendation candidate generation using an inverted index-based candidate generator as real-time processing and the server device 100 that performs OA recommendation candidate generation using a deep learning model-based candidate generator as batch processing may be different server devices 100. That is, the functions may be distributed among multiple server devices 100, with each server device 100 performing OA recommendation candidate generation.
[0109] Furthermore, although the above embodiment describes official accounts (OAs), in practice, it is possible to process not only official accounts (OAs) but also unofficial accounts, personal accounts, or group accounts in the same manner. That is, the server device 100 may also generate recommendation candidates using an inverted index-based candidate generator for the above-mentioned accounts.
[0110] [7. Effects] As described above, the information processing device (terminal device 10 and server device 100) according to the present invention is characterized by comprising: a candidate generation processing unit 132 that generates recommended account candidates using an inverted index-based candidate generator based on an account corpus; a rerank processing unit 133 that reranks the recommended account candidates obtained as a result of the recommended candidate generation to further narrow down the recommended candidates; and a recommendation processing unit 134 that recommends adding the recommended candidate accounts as friends to the target user.
[0111] This enables the construction of a two-stage recommendation pipeline consisting of account recommendation candidate generation and reranking using an inverted index-based candidate generator with reduced computational costs. Furthermore, in the candidate generation stage, hundreds of user-related recommendation candidates can be efficiently extracted from tens of millions of account inventory items. As a result, it is possible to suggest accounts suitable for adding as friends to users, and by recommending the most suitable accounts to users, the number of effective friend additions can be efficiently increased.
[0112] The candidate generation processing unit 132 generates recommended account candidates using an inverted index-based candidate generator as a real-time process, and generates recommended account candidates using a deep learning model-based candidate generator as a batch process, based on the account corpus.
[0113] This allows for real-time generation of recommended account candidates using a computationally cost-effective inverted index-based candidate generator, while generating recommended account candidates using a computationally intensive deep learning model-based candidate generator can be done in batch processing. Furthermore, since deep learning model-based candidate generators alone lack diversity in recommended candidates, using an inverted index-based candidate generator can achieve this diversity.
[0114] The candidate generation processing unit 132 aggregates the categories of accounts that each user has added as friends and the percentage of those categories from the user's friend addition logs over a certain period in the past, and creates user preferences.
[0115] This allows for increased diversity in the overall recommendation system through a multi-axis candidate generation logic that expands the candidate generation logic.
[0116] The candidate generation processing unit 132 creates a user preference for each user, which consists of pairs of categories and scores obtained by normalizing the proportion of each category, sorted in descending order of score.
[0117] This allows for detailed design of user preferences.
[0118] The candidate generation processing unit 132 aggregates the category rankings of all users and then creates an inverted index of accounts and categories.
[0119] This allows for an increase in the number of inverted index-based candidate generators with reduced computational costs, thereby improving the feasibility of online recommendations.
[0120] The candidate generation processing unit 132 creates an inverted index for each category, which is a pair of an account and a score that is a normalized version of the account's ranking within that category, sorted in descending order of score.
[0121] This allows for detailed design of the inverted index.
[0122] The candidate generation processing unit 132 calculates the dot product of user preferences and the inverted index to determine the degree of relevance between the user and the account.
[0123] This allows us to retrieve related accounts based on the user's category.
[0124] The candidate generation processing unit 132 retrieves a predetermined number of accounts in order of relevance and adds them to the recommendation candidates for the target user.
[0125] This allows you to retrieve the top N accounts (where N is arbitrary) in order of relevance and include them as recommendation candidates for the target user.
[0126] Through any or a combination of the above-described processes, the information processing device according to the present invention can suggest adding a friend to a user's account that is suitable for them.
[0127] [8. Hardware Configuration] Furthermore, the terminal device 10 and server device 100 according to the above-described embodiment are realized by a computer 1000 having a configuration such as that shown in Figure 10. The following explanation will use the server device 100 as an example. Figure 10 shows an example of the hardware configuration. The computer 1000 is connected to an output device 1010 and an input device 1020, and has a configuration in which an arithmetic unit 1030, a primary storage device 1040, a secondary storage device 1050, an output interface 1060, an input interface 1070, and a network interface 1080 are connected by a bus 1090.
[0128] The arithmetic unit 1030 operates based on programs stored in the primary storage device 1040 and the secondary storage device 1050, as well as programs read from the input device 1020, and executes various processes. The arithmetic unit 1030 can be implemented using, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field Programmable Gate Array).
[0129] The primary storage device 1040 is a memory device, such as RAM (Random Access Memory), that temporarily stores data used by the arithmetic unit 1030 for various calculations. The secondary storage device 1050 is a storage device where data used by the arithmetic unit 1030 for various calculations and various databases are registered, and can be implemented using ROM (Read Only Memory), HDD (Hard Disk Drive), SSD (Solid State Drive), flash memory, etc. The secondary storage device 1050 may be internal storage or external storage. The secondary storage device 1050 may also be a removable storage medium such as USB (Universal Serial Bus) memory or SD (Secure Digital) memory card. The secondary storage device 1050 may also be cloud storage (online storage), NAS (Network Attached Storage), file server, etc.
[0130] The output I / F 1060 is an interface for transmitting information to be output to output devices 1010, such as displays, projectors, and printers, and is implemented using connectors of standards such as USB (Universal Serial Bus), DVI (Digital Visual Interface), and HDMI (High Definition Multimedia Interface). The input I / F 1070 is an interface for receiving information from various input devices 1020, such as mice, keyboards, keypads, buttons, and scanners, and is implemented using, for example, USB.
[0131] Furthermore, the output interface 1060 and input interface 1070 may be wirelessly connected to the output device 1010 and input device 1020, respectively. In other words, the output device 1010 and input device 1020 may be wireless devices.
[0132] Furthermore, the output device 1010 and the input device 1020 may be integrated as a touch panel. In this case, the output I / F 1060 and the input I / F 1070 may also be integrated as an input / output I / F.
[0133] The input device 1020 may also be a device that reads information from, for example, an optical recording medium such as a CD (Compact Disc), DVD (Digital Versatile Disc), or PD (Phase Change Rewritable Disk), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.
[0134] The network interface 1080 receives data from other devices via network N and sends it to the computing unit 1030, and also transmits data generated by the computing unit 1030 to other devices via network N.
[0135] The arithmetic unit 1030 controls the output device 1010 and the input device 1020 via the output interface 1060 and the input interface 1070. For example, the arithmetic unit 1030 loads a program from the input device 1020 or the secondary storage device 1050 onto the primary storage device 1040 and executes the loaded program.
[0136] For example, when computer 1000 functions as a server device 100, the arithmetic unit 1030 of computer 1000 realizes the functions of the control unit 130 by executing a program loaded onto the primary storage device 1040. Alternatively, the arithmetic unit 1030 of computer 1000 may load a program obtained from another device via the network interface 1080 onto the primary storage device 1040 and execute the loaded program. Furthermore, the arithmetic unit 1030 of computer 1000 may cooperate with other devices via the network interface 1080 and call and use program functions, data, etc., from other programs on other devices.
[0137] [9. Other] Although embodiments of the present invention have been described above, the present invention is not limited by the content of these embodiments. Furthermore, the aforementioned components include those that can be easily conceived by those skilled in the art, those that are substantially the same, and those that fall within the so-called equivalent range. Moreover, the aforementioned components can be combined as appropriate. Furthermore, various omissions, substitutions, or modifications of the components can be made without departing from the gist of the embodiments described above.
[0138] Furthermore, among the processes described in the above embodiments, all or part of the processes described as being performed automatically can be performed manually, or all or part of the processes described as being performed manually can be performed automatically by known methods. In addition, the processing procedures, specific names, and information including various data and parameters shown in the above document and drawings can be arbitrarily changed unless otherwise specified. For example, the various information shown in each figure is not limited to the information shown.
[0139] Furthermore, the components of each illustrated device are functionally conceptual and do not necessarily need to be physically configured as shown. In other words, the specific forms of distribution and integration of each device are not limited to those shown, and all or part of them can be functionally or physically distributed and integrated in any unit according to various loads and usage conditions.
[0140] For example, the server device 100 described above may be implemented using multiple server computers, and the configuration can be flexibly changed, such as by calling external platforms via APIs (Application Programming Interfaces) or network computing depending on the function.
[0141] Furthermore, the embodiments and modifications described above can be combined as appropriate, provided that the processing content is not inconsistent.
[0142] Furthermore, the terms "section, module, unit" mentioned above can be replaced with "means" or "circuit," etc. For example, the acquisition unit can be replaced with acquisition means or acquisition circuit. [Explanation of Symbols]
[0143] 1. Information Processing System 10 Terminal devices 100 Server Devices 110 Communications Department 120 Storage section 130 Control Unit 131 Acquisition Department 132 Candidate generation processing unit 133 Rerank Processing Unit 134 Recommendation Processing Unit 135 Verification Department
Claims
1. A candidate generation processing unit that generates recommended candidates for accounts using an inverted index-based candidate generator based on the account corpus, A reranking processing unit performs a reranking operation on the recommendation candidates for accounts obtained as a result of the aforementioned recommendation candidate generation, further narrowing down the recommendation candidates. A recommendation processing unit recommends that the target user add the recommended accounts as friends, An information processing device characterized by comprising:
2. The candidate generation processing unit generates recommended account candidates using an inverted index-based candidate generator as a real-time process, and generates recommended account candidates using a deep learning model-based candidate generator as a batch process, based on the account corpus. The information processing apparatus according to feature 1.
3. The candidate generation processing unit aggregates the categories of accounts that each user has added as friends and the percentage of those categories from the user's friend-adding logs over a certain period in the past, and creates user preferences. The information processing apparatus according to feature 1.
4. The candidate generation processing unit creates a user preference for each user, which consists of pairs of categories and scores that normalize the proportion of each category, sorted in descending order of score. The information processing apparatus according to claim 3.
5. The candidate generation processing unit aggregates the category rankings of all users and then creates an inverted index of accounts and categories. The information processing apparatus according to claim 3.
6. The candidate generation processing unit creates an inverted index for each category, which is a pair of an account and a score that is a normalized version of the account's ranking within that category, sorted in descending order of score. The information processing apparatus according to feature 5.
7. The candidate generation processing unit performs an inner product calculation between the user preference and the inverted index to calculate the degree of association between the user and the account. The information processing apparatus according to feature 5.
8. The candidate generation processing unit retrieves a predetermined number of accounts in order of relevance and adds them to the recommendation candidates for the target user. The information processing apparatus according to feature 7.
9. An information processing method performed by an information processing device, Based on the account corpus, a candidate generation process is performed to generate recommended account candidates using an inverted index-based candidate generator. The process includes a reranking step in which the recommendation candidates for accounts obtained as a result of the aforementioned recommendation candidate generation are reranked to further narrow down the recommendation candidates, A recommendation process that recommends adding the recommended accounts as friends to the target user, An information processing method characterized by including
10. A candidate generation process procedure that generates recommended candidates for accounts using an inverted index-based candidate generator based on an account corpus, A reranking procedure is performed to further narrow down the recommendation candidates by reranking the recommendation candidates for accounts obtained as a result of the aforementioned recommendation candidate generation, A recommendation process that recommends adding the recommended accounts as friends to the target user, An information processing program characterized by causing a computer to execute it.
Citation Information
Patent Citations
Advertisement management device
JP7542288B1