Patent Publication Number: US-2019197034-A1

Title: Recommendation filtering based on common interests

Description:
BACKGROUND 
     Applications available on the Internet have progressed from facilitating a medium of information delivery to a venue for sales and, more recently, to a platform for social networking. An online marketplace such as eBay.com is an example of an online seller. Similarly, Facebook.com is an example of social networking. 
     TECHNICAL FIELD 
     The subject matter disclosed herein generally relates to the processing of data. Specifically, the present disclosure addresses systems and methods of providing content generated by a user of an ecommerce network for social network platform integration. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which: 
         FIG. 1  is a network diagram depicting a system, according to one example embodiment, having a client-server architecture; 
         FIG. 2  is a block diagram illustrating social applications, according to an embodiment; 
         FIG. 3  is a block diagram illustrating a database, according to an embodiment; 
         FIG. 3A  is an illustration of a system usable with or as part of the system of  FIG. 1 ; 
         FIG. 4  is an illustration of a screen shot in accordance with an embodiment; 
         FIG. 5  is an illustration of a screen shot in accordance with an embodiment; 
         FIG. 6  is an illustration of a screen shot in accordance with an embodiment; 
         FIG. 7  illustrates a flow diagram explaining operation of an embodiment; 
         FIG. 8  illustrates another flow diagram explaining operation of an embodiment; 
         FIG. 8A  illustrates a user interface, according to an embodiment; 
         FIG. 8B  illustrates a user interface, according to an embodiment; and 
         FIG. 9  is a block diagram illustrating components of a machine, according to some example embodiments, able to read instructions from a machine-readable medium and perform any one or more of the methodologies discussed herein. 
     
    
    
     DETAILED DESCRIPTION 
     In the following description, for purposes of explanation, numerous specific details are set forth in order to provide embodiments of the subject matter of the present disclosure. It will be evident, however, to one skilled in the art that the present disclosure may be practiced without these specific details. 
     Content may be provided over a network from a first server to a second server. The first server may be, e.g., a web server, a database server, or a listing server. For example, a network-based publication system may include a first web server that provides content over a network to the second web server. Specifically, the second server may be a third-party social network server that provides a social networking service (e.g., Facebook®) to millions of users and provides social network data. 
     Each of the first server and second server may provide the content to one or more client machines, which client machines may be the same client machine or a different client machine. 
     A client machine may be a computer, a mobile device, or other machine functioning, temporarily or permanently, as a client in relation to the content machine. For example, the client machine may, as indicated above, have a user. The user may be a human user or a machine-implemented user (e.g., software executing on the client machine). The content provided by the social network server may be presented to a client machine and thence to the user by the client machine. Other couplings between these or similar servers and one or more client machines may be used. 
     In some example embodiments, a system and method for sharing product, shopping or other information on a network-based publication system such as an ecommerce system or a social system is illustrated. A request may be received from a first user of a client machine to such a network-based publication system for a product recommendation from one or more second users of the same or a different network-based publication system. For example, the first user may be using an ecommerce network, and some or all of the second users may be using a social platform. One or more of the users may be using a review or recommendation site. Other examples of the parties and the networked-based publication systems may be used. The recommendation may be, for example, for an item that may be listed for sale on a network-based marketplace. For example, a predetermined agreement for providing and receiving recommendations may have been consensually established by the first user and the second users by, in one example, by an opt-in process. The system may communicate the request to the second users who may provide one or more product recommendations. The users providing the recommendations may be using a product recommendation site or a product review site. However, it is difficult to quickly and easily determine the bias or perspective of a user who is making the recommendation. But determination of a user&#39;s bias or perspective is important in ascertaining the credibility of the recommendation. On a review site or a social network, each user may be prompted to enter interest, purchased items, and other personal information in a user profile. Each such user may post comments, reviews, and product recommendations either of their own volition, or in response to another user&#39;s posts. In response to the first user&#39;s request for recommendation, which may include searching for posts or a request to see the most interesting posts, the system may filter or sort posts based on compatibility between the poster and the user. The compatibility may be determined based on data in each user&#39;s profile along with user actions taken on the site, such as following the same post, similar responses to a posed request, similar purchase, and the like. The site may facilitate transactions based on the filtered recommendations, as more fully described below. 
     Platform Architecture 
       FIG. 1  is a network diagram depicting a system  100 , according to one embodiment of the present disclosure, having a client-server and a peer-to peer architecture. The system  10  facilitates shopping activity, in the exemplary form of a network-based marketplace  12  and a network-based social platform  13  that communicate over a network  14 . In one embodiment, the network-based marketplace  12  and the network-based social platform  13  communicate in peer-to peer architecture via programmatic interfaces. Further, the network-based marketplace  12  and the network-based social platform  13  respectively communicate in client-server architecture with clients. The network-based marketplace  12  provides server-side functionality, via the network  14  (e.g., the Internet), to the one or more client machines  20  and  22 . Similarly, the network-based social platform  13  provides server-side functionality, via the network  14  (e.g., the Internet), to the one or more client machines  20  and  22 .  FIG. 1  illustrates, for example, a web client  16  (e.g., a browser, such as the Internet Explorer browser developed by Microsoft Corporation of Redmond, Wash. State), and a programmatic client  18  executing on respective client machines  20  and  22 . 
     Turning specifically to the network-based social platform  13 , an application program interface (API) server  25  and a web server  27  are coupled to, and provide programmatic and web interfaces respectively to, one or more application servers  29 . The application servers  29  may host one or more social applications  31  and a network-based marketplace interface module  33  that communicates with a communication module  39  and a processing module  41 . The application servers  29  are, in turn, shown to be coupled to one or more database server(s)  35  that facilitate access to one or more database(s)  37 . 
     The social applications  31  provide a number of social networking functions and services to users that access the network-based social platform  13 . For example, the social applications  31  may enable a user to store information in a profile that may be viewed at the client machines  20 ,  22  and to selectively grant access to information that appears on the profile to other users who may also view the profile at their client machines  20 ,  22 . The social applications  31  may provide criteria that may be employed by a user to grant various levels of access to various levels of users. For example, a first user may access profile information associated with a second user responsive to the first user achieving the status of “friend” in relation to a second user. A user may achieve the status of friend by accepting an invitation from another user or by sending a request to a user that subsequently grants the request. 
     The social applications  31  may further enable third-party service providers to add “applications” on the network-based social platform  13  that are utilized by users to interact with other users. For example, a network-based marketplace application may be added by a third-party service provider in the form of the network-based marketplace interface module  33 , the communication module  39 , and the processing module  41  that may provide market application services in the network-based social platform  13  environment and may communicate with the network-based marketplace  12 . 
     In one embodiment, a request related to the marketplace application may be generally processed as follows. The request may originate at the client machines  20 ,  22  that communicate the request via programmatic or web interface services  25 ,  27  to the social applications  31  that, in turn, communicate the request to the network-based marketplace interface module  33  that, in turn, communicates the request to the communication module  39  and processing module  41  that process the request. Conversely, the communication module  39  and processing module  41  may respond to the social applications  31  via the network-based marketplace interface module  33 . In some instances processing of the request may require communication with the network-based marketplace  12 . In such instances the communication module  39  or the processing module  41  may communicate via the API server  25  with the network-based marketplace  12 . 
     The network-based social platform  13  may be embodied as FACEBOOK® services, a social utility that connects people with friends and others who work, study and live around them provided by Facebook of Palo Alto, Calif. 
     The web client  16 , it will be appreciated, in one embodiment accesses the various social applications  31  via the web interface supported by the web server  27 . Similarly, the programmatic client  18  in one embodiment accesses the various services and functions provided by the social applications  31  via the programmatic interface provided by the API server  25 . 
     Turning to the network-based marketplace  12 , an application program interface (API) server  24  and a web server  26  are coupled to, and provide programmatic and web interfaces respectively to, one or more application servers  28 . The application servers  28  host one or more marketplace applications  30  and payment applications  32 .The application servers  28  are, in turn, shown to be coupled to one or more database server(s)  35  that facilitate access to one or more databases  36 . 
     The marketplace applications  30  provide a number of marketplace functions and services to users that access the network-based marketplace  12 . The payment applications  32  likewise provide a number of payment services and functions to users. The payment applications  32  may allow users to quantify for, and accumulate, value (e.g., in a commercial currency, such as the U.S. dollar, or a proprietary currency, such as “points”) in accounts, and then later to redeem the accumulated value for products (e.g., goods or services) that are made available via the marketplace applications  30 . While the marketplace and payment applications  30  and  32 , respectively, are shown in  FIG. 1  to both form part of the network-based marketplace  12 , it will be appreciated that, in alternative embodiments of the present disclosure, the payment applications  32  may form part of a payment service that is separate and distinct from the network-based marketplace  12 . The network-based marketplace  12  may be embodied as eBay, the world&#39;s online marketplace, provided by eBay of San Jose, Calif. 
     Further, while the system  100  shown in  FIG. 1  employs a client-server architecture and a peer-to-peer architecture, the present disclosure is of course not limited to such an architecture, and could equally well find application in any combination of client-server, distributed, or peer-to-peer, architecture systems. The various marketplace and payment applications  30  and  32  could also be implemented as standalone software programs, which do not necessarily have networking capabilities. 
     The web client  16 , it will be appreciated, accesses the various marketplace and payment applications  30  and  32  via the web interface supported by the web server  26 . Similarly, the programmatic client  18  accesses the various services and functions provided by the marketplace and payment applications  30  and  32  via the programmatic interface provided by the API server  24 . The programmatic client  18  may, for example, be a seller application (e.g., the TurboLister application developed by eBay Inc., of San Jose, Calif.) to enable sellers to author and manage listings of items on the network-based marketplace  12  in an off-line manner, and to perform batch-mode communications between the programmatic client  18  and the network-based marketplace  12 . 
     It will be appreciated that the marketplace applications  30 , payment applications  32 , social applications  31 , the network-based marketplace interface module  33 , the communication module  39  and the processing module  41  may execute on a single platform. Accordingly, in one embodiment, the aforementioned applications/modules may execute on the network-based marketplace  12  and in another embodiment the aforementioned applications/module may execute on the network-based social platform  13 . 
       FIG. 1  also illustrates a third-party application  38 , executing on a third-party server machine  40 , as having programmatic access to the network-based marketplace  12  via the programmatic interface provided by the API server  24 . For example, the third-party application  38  may, utilizing information retrieved from the network-based marketplace  12 , support one or more features or functions on a website hosted by the third party. The third-party website may, for example, provide one or more promotional, marketplace or payment functions that are supported by the relevant applications of the network-based marketplace  12 . 
     Social Platform Applications 
       FIG. 2  is a block diagram illustrating applications that execute on the network-based social platform, according to an embodiment. The network-based social platform applications include news feed applications  47 , profile applications  49 , note applications  51 , forum applications  53 , search applications  55 , relationship applications  57 , network applications  59 , communication applications  61 , account applications  63 , photo applications  65 , event applications  67 , and group applications  69 . 
     The news feed applications  47  publish events associated with the user and friends of the user on the network-based social platform  13 . The news feed applications  47  may publish the events on the user profile of a user. For example, the news feed applications  47  may publish the uploading of a photo album by one user on the user profile of the user and the user profiles of friends of the user. 
     The profile applications  49  may maintain user profiles for each of the users on the network-based social platform  13 . Further, the profile applications  49  may enable a user to restrict access to selected parts of their profile to prevent viewing by other users. The note applications  51  may be used to author notes that may be published on various user interfaces. 
     The forum applications  53  may maintain a forum for users to post comments and display the forum via the profile associated with a user. The user may add comments to the forum remove comments from the forum and restrict visibility to other users. In addition, other users may post comments to the forum. 
     The search applications  55  may enable a user to perform a keyword search for users, groups, and events. In addition, the search applications  55  may enable a user to search for content (e.g. favorite movies) on profiles accessible to the user. 
     The relationship applications  57  may maintain relationship information for the users. The network applications  59  may facilitate the addition of social networks by a user, the social networks based on a school, workplace, or region or any social construct for which the user may prove an affiliation. The communication applications  61  may process incoming and outgoing messages, maintain an inbox for each user, facilitate sharing of content, facilitate interaction among friends (e.g., poking), process requests, process events, process group invitations and process communicating notifications. 
     The account applications  63  may provide services to facilitate registering, updating, and deleting user accounts. The photo applications  65  may provide services to upload photographs, arrange photographs, set privacy options for albums and tag photographs with text strings. The event applications  67  may provide services to create events, review upcoming events, and review past events. The group applications  69  may be used to maintain group information, display group information, and navigate to groups. 
       FIG. 3  is a block diagram illustrating a database  37 , according to an embodiment, at the network-based social platform  13  of  FIG. 1 . The database  37  is shown to include social platform user profile information  40  that stores user profile information  42  for each user on the network-based social platform  13 . The user profile information  42  may include information related to the user and specifically may include relationship information  43  and block information  45 . The relationship information  43  may store a predetermined relationship between the user associated with the user profile information  42  and other users on the network-based social platform  13 . For example, a first user may be designated a “friend,” or “favorite friend,” etc. with a second user, the first user associated with the user profile information  42  and the respective designations associated with increasing levels of disclosure between the first user and second user. The block information  45  may store a configured preference of the user to block the addition of an item by other users to the watch list associated with the user. 
     Turning to  FIG. 3A , there is seen a system that forms part of the transaction network-based marketplace  12  of  FIG. 1 . The network-based marketplace  12  is shown in part in the drawing to make it clear that the system forms only a part of the network-based marketplace  12 . The system includes a receiver module  71  for receiving signals from client machine  20 , the signals identifying content to be transmitted to a social network server for storing at a message space of a user of the social network server. As used herein, “signals” could mean analog signals or digital signals such as web-based messages, including packet-based messages, or even a request message via an API call. Also included is analysis module  73 . Analysis module  73  includes detector module  75  responsive to the receiver module  71  for detecting the content, the identity of the social network, and the identity of the user of the social network. The analysis module  73  also includes a signal generation module  77  coupled to the detector module  75  responsive to the detection of signals such as, for example, signals identifying the content, the identity of the social network, and the identity of the user of the social network, for whom the content is intended, and other types of signals. 
     The signal generation module  77  can provide a rendering signal for rendering at least the content of the received signal. This rendering signal is transmitted by transmission module  79  via network  14  to a social network, not shown. Alternatively, instead of transmitting signals via the network to a social network server, the transmission module  79  may transmit the signals, either via the network  14  or internally to the network-based marketplace  12 , to a social platform integrated within a network-based marketplace  12 . Further, the signals from signal generation module  77  may include signals such as signals requesting a user of the social network for an opinion about the content, or for outfit suggestions about the content, among other things, as more fully discussed below. 
     Recommendations and Collections 
     An embodiment described is a social community website where parents share images, attribute tags and descriptions for products, gear and services. The site allows, in an example embodiment, parents to find products on other sites that they are curious about or want to give feedback on, and then “collect” those items and share insights or request guidance from the larger community. A user collects images by finding products on the Internet that they are interested in. They then use an “add it” button to grab the image, which transitions him or her to a new “add item” screen. That is, the “add it” button may be a bookmarklet that the user drags and drops to the toolbar of his or her browser. When the user finds a product he or she wants to add to his or her collections, the user clicks on the Add It button and it transitions the user to a screen where the user can choose the image he or she wants to collect. For example, when the bookmarklet scrapes the page, it will grab every image on the page. This transitions the user to an interstitial screen where they pick which images off that page they want to collect (there maybe be various sizes of the same image, or other undesirable images the users does not want, but the scraper grabs everything so the user makes the choice). That selection then transitions the user to the “add item” screen. From there the user transitions to the “add item” screen discussed below. At this point the user adds non-optional attributes (description, collection name) and optional attributes (gender or specific individual collected for, descriptor tags, recommendation). Users may register for the site via email or Facebook or other network login, and are then prompted to fill out a profile. They are then able to start sharing their own items, or commenting on items others may have collected and posted to the site. 
     User Collections 
       FIG. 4  illustrates a user&#39;s profile screen  400  that includes information from the user&#39;s profile. A user such as Cyn S. at  402 , with a photograph of her son  404 , and particulars from her profile as at  406 , are illustrated. The user&#39;s profile page may also be populated with friends the user is following, with friends that are following the user, and with collections the user is following. When a user adds a friend the system may add the collections the friend is following. This can be added by auto-follow when the user adds someone as a friend. The user&#39;s latest activity in their feeds and their collections may also be stored in a database such as  37  in  FIG. 1 . The user may collect images by finding products on the Internet that they are interested in. They then use an “add it” button, which may obtained by selecting the “get your ‘add it’ button” icon  410 , to grab the images, which puts the images into the “add item” screen of  FIG. 5 , discussed below. Users collect items into user-defined categories such as “Toys”, “Games”, “Clothing” or whatever they choose to name them. They may also choose a system defined, meta category, which may be mandatory. 
     In  FIG. 4  the user, Cyn S.,  402 , has defined categories of collections shown as selectable icons such as “Weirdly Cute Toys”  414 , “Do I need this?”  416  which may be articles are nice but perhaps unneeded, “Weirdly Large Toys”  418 , and so on as further illustrated at  420 ,  422 , and  424 . When a user who selects  414 ,  416 , . . .  424 , the user is brought to the collection selected and the user can view the elements of those collections. Other categories may be added as discussed below with respect to  FIGS. 5 and 6 . 
       FIG. 5  illustrates an “add it” screen  500 . Seen at  502  is a Fisher Price telephone that has been grabbed from the Internet as explained above. At this point the user may also add non-optional attributes (collection name  504 , description  506 ) and optional attributes (gender or specific individual collected for, descriptor tags, recommendation)  508 ,  510 ,  512 ,  514 ,  516 . Selectable attributes  510  may include, from left to right, “Like,” “Dislike,” “Cute”, “Safety Conscious”, “Kid-Approved” “Eco-Friendly”, “Educational”, and “Kid-Tough,” respectively. The collection screen also allows the user to specifically collect items for individuals they have listed as family members, for example, at pull-down menu  514  in  FIG. 5 . When complete, the user selects submit  518 . An example of a completed “add it” page is seen in  FIG. 6  with reference numerals similar to the numerals of  FIG. 5  except that the selection of attributes  510  of  FIG. 5  are seen as attributes  611  (Like),  612  (Safety Conscious), and  613  (Kid Tough). These attributes may be viewed as an activity of the type discussed with respect to Table  2 , below, the activity in this example is collecting children&#39;s toys that represent safety consciousness and are kid tough. The toy may be displayed as part of a collection indicated on the user&#39;s profile page such as at areas corresponding to areas  414 ,  416 , . . . , and  424  of  FIG. 4 . This activity may be tabulated, stored in a database, and filtered in response to a query as discussed below with respect to  FIGS. 7, 8, 8A and 8B , and presented to a querying user. 
     User Commentary 
     Users are able to comment on other user&#39;s items, and also tag them with a static set of attributes that includes item descriptors and tags explaining who the item is for, but also allows them to specifically collect items for individuals they have listed as family members as stated above. 
     Parents Like You 
     One embodiment may include a “Parents Like You” feature that may use a unique process to determine relevant recommendations for users on the site. Unlike other recommendation systems, the disclosed system will take into account several types of data to recommend items and people that are germane to a user&#39;s experience on the site in order to provide recommendation filtering based on common interests. The types of data that may be used to determine common interest may include:
         User profile       

     
       
         
           
               
             
               
                 TABLE 1 
               
               
                   
               
             
            
               
                 Type of relative/individual listed (user can list their own children and 
               
               
                 other individuals they want to collect for) 
               
               
                 Gender of relative/individual 
               
               
                 Age of relative/individual (s) 
               
               
                 Age of user 
               
               
                 Partner/marital status 
               
               
                 Geography 
               
               
                 Friends in common 
               
               
                 Family member types 
               
               
                 Reputation level 
               
               
                   
               
            
           
         
       
         
         
           
             User activity 
           
         
       
    
     
       
         
           
               
             
               
                 TABLE 2 
               
               
                   
               
             
            
               
                 Collections created (both number and key word) 
               
               
                 Items collected 
               
               
                 Category of items collected 
               
               
                 Attributes assigned most often (gender, age, kid-tough, kid approved, eco- 
               
               
                 friendly, educational, safety conscious, cute) 
               
               
                 Number of items commented 
               
               
                 Types of items commented on not in your collection 
               
               
                 Number of similar Items made Favorites 
               
               
                 Total number of items favorited by others 
               
               
                 Cumulative activity level comparison; the gross count of actions taken on 
               
               
                 the site relative to other users 
               
               
                 Types of questions most often asked 
               
               
                 Types of questions most often answered 
               
               
                   
               
            
           
         
       
     
     Target-Specific Collections 
     
         
         Unlike usual wish lists, the disclosed system allows a first user to create collections specifically for individual users that the first user has listed on his or her profile. The collections are available to other users via the first user&#39;s profile. In one embodiment the first user creates a collection, names it as he or she wishes but, in one case, potentially for an event “Child&#39;s birthday.” The first user collects items wanted for the event and attributes them to the individual the event or collection is for. The functions may include: 
       
    
     
       
         
           
               
             
               
                 TABLE 3 
               
               
                   
               
             
            
               
                 The first user shares one or more collections to friends via email or 
               
               
                 Facebook. Other users can comment and attribute to that collection; 
               
               
                 The collections may also be used as a timeline of childhood events; 
               
               
                 A user may ask for specific contributions to an already defined concept 
               
               
                 (Ben&#39;s 3rd birthday; Items You Need to Have a Sleep Over, etc). 
               
               
                   
               
            
           
         
       
     
     Description of Flow Charts 
       FIG. 7  is a flowchart illustrating method  700  for illustrating the interests of the first user who is providing recommendations so that a user who views the collections or other recommendations of the first user will understand the bias, perspective and/or interests of the first user. In this manner the user who views the recommendations of the first user may be able to determine whether and to what extent the first user and viewing user have common interest. 
     The method of  FIG. 7  can be performed in any order, using the user profile information first, or using the user&#39;s activity first. In one embodiment the user profile is read at  702  and at  704  the user&#39;s interests, or in the case of profile, personal information (herein termed “parameters”) are tabulated. This may be accomplished by using Table 1, above. 
     At  706  the user&#39;s interest from the user&#39;s activities, such as at Table 2, are tabulated. A decision is taken at  708  based on whether the tabulation from user activity is complete. If a No decision is reached, the method continues at  706 . If a Yes decision is reached, then a decision is taken at  710  to determine whether there is a new instance, or occurrence, of any of the user&#39;s activities of Table 2 (as an example). If a Yes decision is taken, meaning that during the above tabulation new use activity has occurred, then that new user activity is entered into the tabulation at step  706 . If a No decision is taken, then the user activity may be stored in database  37 . In some embodiments, one or more of the activities may be posted at  408  of the user&#39;s profile,  FIG. 4 . The user who then views the first user&#39;s recommendations in  FIG. 4  can determine from  408 , in one embodiment, one or more of the user&#39;s biases, perspectives and interests in order to determine whether the recommendations of  FIG. 4  is from a user who has common interests with the user who views the UI of  FIG. 4 . In another embodiment, the user seeking recommendations may use the method discussed with respect to  FIGS. 8, 8A, and 8B . 
       FIG. 8  illustrates a method useful in an embodiment for seeking users with particular interests, or seeking collections from users with particular interests. At  802  the user provides a query based on an interest. The system may store parameters and interests from Table 1 and Table 2 in database  37 , categorized, for example, by each user who matches the parameters and/or interests and also, if desired, by collections made by users with the given parameters and interest. Auto-suggest may be used for the query based on interest. For example, a query may be to find a female who has twin boys and who is interested in eco-related products. The system may then at  804  search for the interest included in the query by filtering the interests stored in the database using the queried interest. The system may, if desired, rank users by interest as at  806 , and present the requested results to the user as at  808 . Or collections from users with the particular interest may be similarly filtered and presented to the user in ranked order, if desired. 
       FIG. 8A  illustrates the method discussed with respect to  FIG. 8 .  FIG. 8A  illustrates at  850  at least a part of a user interface at a client machine, for the user who is seeking a recommendation. As discussed above, the user may add the query that indicates the information the user is looking for. In this case in the “User,” area, indicating the type of person the querying user is seeking, the querying user enters Female as at  852 . At the space  854  indicating the children or number of children desired by the query, the querying user may enter “Twin Boys.” Then, at space  856  indicating the product desired, the querying user may enter “eco-friendly.” Taken in sum, the querying user is looking for recommendations for eco-friendly products, the recommendations made by females who have twin boys. 
       FIG. 8B  illustrates retrieving of the queried recommendation or recommendations. At  850 , which is the user interface illustrated in  FIG. 8A , the query is sent to a filter, which may be a comparator  860 . 
     As previously discussed, the interests of registered users may be stored in the Interests area of database  37 . The database is accessed and provides interests to filter  860  which filters the interests to find recommendations for eco-friendly products from females with twin boys. The results may be ranked in ranking apparatus  862  which may rank the results by any desired ranking. For example, the ranking may be based on the number of followers for the particular females with twin boys who recommend eco-friendly products. Those of ordinary skill in the art will be able to design other ranking schemes. 
     Modules, Components and Logic 
     Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules may constitute either software modules (e.g., code embodied on a machine-readable medium or in a transmission signal) or hardware modules. A hardware module is tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., a standalone, client or server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein. 
     In various embodiments, a hardware module may be implemented mechanically or electronically. For example, a hardware module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It may be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations. 
     Accordingly, the term “hardware module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed) to operate in a certain manner and/or to perform certain operations described herein. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where the hardware modules comprise a general-purpose processor configured using software, the general-purpose processor may be configured as respective different hardware modules at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time. 
     Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple of such hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation, and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information). 
     The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example embodiments, comprise processor-implemented modules. 
     Similarly, the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or processors or processor-implemented modules. The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations. 
     The one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., Application Program Interfaces (APIs).) 
     Electronic Apparatus and System 
     Example embodiments may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Example embodiments may be implemented using a computer program product, e.g., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable medium for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. 
     A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network. 
     In example embodiments, operations may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method operations can also be performed by, and apparatus of example embodiments may be implemented as, special purpose logic circuitry, e.g., a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC). 
     The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In embodiments deploying a programmable computing system, it will be appreciated that both hardware and software architectures require consideration. Specifically, it will be appreciated that the choice of whether to implement certain functionality in permanently configured hardware (e.g., an ASIC), in temporarily configured hardware (e.g., a combination of software and a programmable processor), or a combination of permanently and temporarily configured hardware may be a design choice. Below are set out hardware (e.g., machine) and software architectures that may be deployed, in various example embodiments. 
     Example Machine Architecture and Machine-Readable Medium 
       FIG. 9  is a block diagram of machine in the example form of a computer system  900  within which instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. 
     The example computer system  900  includes a processor  902  (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory  904  and a static memory  906 , which communicate with each other via a bus  908 . The computer system  900  may further include a video display unit  910  (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system  900  also includes an alphanumeric input device  912  (e.g., a keyboard), a user interface (UI) navigation device  914  (e.g., a mouse), a disk drive unit  916 , a signal generation device  918  (e.g., a speaker) and a network interface device  920 . 
     Machine-Readable Medium 
     The disk drive unit  916  includes a machine-readable medium  922  on which is stored one or more sets of data structures and instructions  924  (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. The instructions  924  may also reside, completely or at least partially, within the main memory  904 , static memory  906 , and/or within the processor  902  during execution thereof by the computer system  900 , the main memory  904  and the processor  902  also constituting machine-readable media. 
     While the machine-readable medium  922  is shown in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions  924  or data structures. The term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the described implementations, or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. Specific examples of machine-readable media include non-volatile memory, including by way of example semiconductor memory devices, e.g., Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. 
     Transmission Medium 
     The instructions  924  may further be transmitted or received over a communications network  926  using a transmission medium. The instructions  924  may be transmitted using the network interface device  920  and any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., WiFi and WiMax networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such software. 
     Although an embodiment has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled. 
     Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.