Patent Publication Number: US-10776436-B1

Title: Ranking discussion forum threads

Description:
This application is a divisional of and claims priority to U.S. patent application Ser. No. 13/072,400, filed on Mar. 25, 2011, which is incorporated herein by reference in its entirety. 
    
    
     BACKGROUND 
     Companies utilizing network-accessible sites (e.g., websites, intranets, etc.) continually strive to make their sites more dynamic, compelling, and easier for users to use. For instance, e-commerce websites may strive to make it easier for customers to locate, learn about, and purchase or otherwise acquire items. To help achieve this and other goals, these companies typically allow users to participate in discussion forums. Discussion forums allow customers and enthusiasts to engage in discussions about items. For example, a discussion forum about a particular item may include discussion threads relating to the merits of the particular item, or how the item compares to another item. These discussion forums may be helpful to other customers who are considering acquiring an item described in one or more threads of the discussion forum. However, as a number of discussion threads in a discussion forum grows, customers may overlook pertinent discussion threads. In addition to providing a platform for such discussion forums, these companies continue to seek ways to improve customer experiences. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The detailed description references the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items. 
         FIG. 1  is a schematic diagram of an example architecture for enabling presentation of discussion forums. In this example, users are able to engage in discussion forums pertaining to items from an item catalog. 
         FIG. 2  is a screen rendering of an example user interface (UI) that includes a discussion forum. As illustrated, the discussion forum includes multiple discussion threads, one of which is shown to include multiple posts. The discussion threads are ranked based on a factor other than a time since a last post of the discussion threads. 
         FIG. 3  is a screen rendering of another example of a UI, which illustrates ranking discussion threads based on a comparison of text of a series of posts of a discussion thread with text of posts of other threads that have been found to be helpful/sticky and/or have received a high percentage of positive votes. 
         FIG. 4  is a screen rendering of another example UI, which illustrates ranking discussion threads based on their relation to one or more topics of current interest or “Hot Topics.” 
         FIG. 5  is a screen rendering of another example UI, which illustrates discussion threads ranked based on relevance to a specific user. 
         FIG. 6  is a schematic diagram, which illustrates selection of a thread ranking strategy and subsequent ranking of discussion threads using a parameterized equation corresponding to the selected thread ranking strategy. 
         FIG. 7  is a flow diagram of an example process of ranking discussion threads based on a factor other than a time since a last post of each thread. In the illustrated example, threads may be ranked based on a helpfulness of the discussion threads, a stickiness of the discussion threads, and/or another ranking strategy. 
         FIG. 8  is a screen rendering of another example UI, which illustrates determination and presentation of a title and a most relevant post of a discussion thread in a discussion forum. 
         FIG. 9  is a flow diagram of an example process of determining a title and a most relevant post of a discussion thread for presentation in a discussion forum. 
     
    
    
     DETAILED DESCRIPTION 
     As discussed above, discussion forums may be helpful to customers who are considering acquiring an item described in one or more threads of the discussion forum. However, existing discussion forums typically present discussion threads (or “threads”) based on a recency of a last post in the thread. That is, a thread with a most recent post will be presented first in the discussion forum, regardless of the information contained in the post. This may result in threads of marginal informational value being presented higher in a list than informative threads. Consequently, customers have to sort through a large number of marginal-value discussion threads to locate the informative discussion threads. 
     This disclosure describes ordering discussion threads in a discussion forum based on a factor, other than a time since a last post in the discussion threads. Discussion threads may be ranked and presented in an order based on a variety of different ranking strategies. In one example, discussion threads may be ranked and presented based on their relevance to one or more users. Discussion threads may be determined to be relevant if, for example, they are likely to be helpful to a customer (referred to herein as “helpfulness” of a thread) and/or are likely to enticing users to participate in the discussion (referred to herein as “stickiness” of a thread). These and other ranking strategies may be used to surface relevant discussion threads in discussion forums. In this way, pertinent discussion threads are presented to users without the user having to sort through discussion threads that are less pertinent but happen to have had a more recent post. 
     Different ranking strategies may be employed in different circumstances. In one example, different rankings strategies may be chosen for different discussion forums (e.g., a helpfulness ranking strategy may be employed for a frequently asked questions discussion forum, while a stickiness ranking strategy may be employed for a new product discussion forum). In another example, multiple discussion forums may be presented on a same page and different ranking strategies may be employed for each of the multiple discussion forums (e.g., a helpful forum with threads ordered based on their helpfulness presented along with a sticky forum with threads ordered based on their stickiness). In still another example, multiple different ranking strategies may be employed to rank threads of a single discussion forum. In that case, threads may be ordered based on a weighted average of their helpfulness and stickiness (with helpfulness and stickiness being weighted equally or differently) or in an alternating fashion (e.g., most helpful thread, followed by stickiest, followed by second most helpful thread, followed by second stickiest thread, and so forth). 
     Different raking strategies may additionally or alternatively be employed for different users and/or different user roles. For example, consumers may be presented with discussion threads organized based on a helpfulness ranking strategy, while enthusiasts may be presented with discussion threads organized based on a stickiness rankings strategy. That way, the threads listed first for a consumer will be those threads that include information useful in making a buying decision (e.g., descriptions of an item, comparisons of the item to other items, critiques of the item, etc.). In contrast the threads listed first for an enthusiast will be those threads that are likely to engage the enthusiast in discussion (e.g., debates of the merits of an item or technology, discussions of controversial topics, previews of new technology, etc.). User identity may be determined by the user logging into a site associated with the discussion forum. The type of ranking strategy to use may be determined by, for example, explicit or implicit user preferences (e.g., explicit settings and/or implied settings based on other explicit settings), a history of the user&#39;s interaction with the site (e.g., purchase history, previous posts to discussion threads, etc.), a user&#39;s interaction the site during a current session (e.g., viewing item detail pages, purchasing other items, etc.). 
     In some examples, the actual ranking of discussion threads (as distinguished from selection of the ranking strategy) may be performed for an individual user (i.e., user-specific rankings). However, in other examples, the ranking of discussion threads may be performed for a broad class of users. The actual ranking of discussion threads may be performed according to either of these examples, regardless of the ranking strategy employed. For example, a sticky ranking strategy could be chosen based on identification of the user as an enthusiast, while the discussion threads themselves could be ranked according to the sticky ranking strategy based on a likelihood of enticing a broad class of users (as opposed to just the identified user) to participate in the threads. 
     The techniques described herein may allow users to participate in discussion forums regarding any topic. For ease of illustration, many of these techniques are described in the context of discussion forums associated with items available for purchase from an item catalog of a merchant, such as an e-commerce merchant. In this context, the merchant presents discussion forums at various locations on the merchant&#39;s site to facilitate user discussion of items available for purchase from the merchant&#39;s site, which helps users make informed buying decisions. By ranking discussion threads of the discussion forums as described herein, users are able to readily find the most pertinent discussion threads. However, the techniques described herein are not limited to use in the merchant store context and may apply to discussion forums in other context as well. For example, the techniques described herein may be used to rank discussion threads of discussion forums associated with social networking sites, blogging sites, bulletin board sites, customer review sites, and the like. 
     Example Architecture 
       FIG. 1  is a schematic diagram of an example architecture  100  that is usable to enable users  102 ( 1 ), . . . ,  102 (M) (collectively  102 ) operating respective computing devices  104 ( 1 ), . . . ,  104 (M) (collectively  104 ) to engage in discussion forums about topics such as, for example, items from an electronic catalog. As described above, however, these techniques apply to discussion forums in other contexts as well. Accordingly, the architecture  100  is merely one example, and the techniques described herein are not limited to performance using the architecture of  FIG. 1 . 
     Within the architecture  100 , the users  102  may operate the computing devices  104  to access one or more content providers  106  via a network  108 . While illustrated as a personal computer and a personal digital assistant (PDA), these computing devices  104  may be implemented as any number of other types of computing devices. These devices may include, for instance, PCs, laptop computers, PDAs, mobile phones, set-top boxes, game consoles, electronic book readers, and so forth. The network  108 , meanwhile, represents any one or combination of multiple different types of wired and/or wireless networks, such as cable networks, the Internet, private intranets, and the like. Again, while  FIG. 1  illustrates the devices  104  communicating with the content providers  106  over the network  108 , the techniques may apply in any other networked or non-networked architectures. 
     One or more servers  110 ( 1 ),  110 ( 2 ) . . . ,  110 (P) (collectively  110 ), perhaps arranged in a cluster or as a server farm, may host the example content provider  106 . Other server architectures may also be used to host the provider  106 . In the illustrated implementation, the servers  110  are shown to include multiple modules and components, which may run as software on the web servers themselves. The illustrated modules may be stored in memory (e.g., volatile and/or nonvolatile memory, removable and/or non-removable media, and the like), which may be implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Such memory includes, but is not limited to, random access memory (RAM), read only memory (ROM), electrically-erasable programmable ROM (EEPROM), flash memory or other memory technology, compact disk ROM (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, redundant array of independent disks (RAID) storage systems, or any other medium which can be used to store the desired information and which can be accessed by a computing device. While  FIG. 1  illustrates the servers  110  as containing the illustrated modules, these modules and their corresponding functionality may be spread amongst multiple other actors, each of whom may or may not be related to the content provider  106 . 
     In some instances, the content provider  106  comprises a site (e.g., a website) that is capable of handling requests from many users and serving, in response, various pages (e.g., web pages) that can be rendered at the computing devices  104 . For instance, the site can be any type of site that supports user interaction, including online retailers, informational sites, social networking sites, blog sites, search engine sites, news and entertainment sites, and so forth. In another example, the content provider  106  provides an application for the computing devices  104  to download, store, and run locally. The content provider  106  may additionally or alternatively interact with the devices  104  or provide content to the devices  104  in any other way. 
     In this example, the site of the content provider  106  represents a merchant website that hosts an item catalog  112  that stores one or more items  114 ( 1 ),  114 ( 2 ), . . . ,  114 (N) (collectively  114 ) and/or information regarding the items  114 . An item includes anything that the merchant wishes to offer for purchase, rental, licensing, subscription, viewing, informative purposes, or some other form of consumption. In some embodiments, the item may be offered by the merchant for consumption. However, in some other embodiments, the merchant may host items that others are selling using the merchant&#39;s website. An item can include a product, a service, a digital download, a news clip, user-created content, information, or some other type of sellable or non-sellable unit. 
     While the item catalog  112  may store some items, the catalog  112  may additionally or alternatively store item records. Item records represent information regarding associated items being offered for sale or another form of consumption. For products such as books or music CDs, for example, the item record may contain a description, images of the product, author/artist names, publication data, pricing, shipping information, and so forth. For other types of items, the item record may contain different information appropriate for those items. Hereafter, the term “item” may be used interchangeably with the term “item record”. 
     When a user requests information about an item from the content provider  106 , the servers  110  retrieve the item information from the item catalog  112  and serve the information (e.g., via a web page) to the computing device of the requesting user. The item catalog  112  may therefore contain static pages that are pre-generated and stored prior to such requests, or may alternatively store data that is used to populate dynamic pages that are generated in response to such requests. 
     The servers  110  may further store, or have access to, a thread store  116  that includes one or more discussion threads (or simply “threads”)  118 ( 1 ), . . . ,  118 ( 0 ) (collectively  118 ). Each thread  118  comprises one or more discussion posts (or simply “posts”). Moreover, each thread  118  belongs to or is to be presented in one or more discussion forums. For instance, threads  118  may include discussions of items within the item catalog  112 .  FIG. 1  illustrates, for example, that the example thread  118 ( 0 ) comprises a particular discussion thread related to an “XYZ game console” and an “ABC game console” one or both of which may be available for purchase from the item catalog  112 . In order to access some or all of the information available from the content provider  106 , the user may be asked to create an account. A user profile store  120  stores user profiles  122 ( 1 ), . . .  122 (P) (collectively  122 ) associated with user accounts. The user profiles  122  store user authentication information (e.g., user name and password), purchase history, payment information (e.g., credit card numbers, gift cards, etc.), shipping and/or billing address information, and the like. 
     In some instances, the users  102  may utilize the computing devices  104  to upload and/or access the information stored in the item catalog  112  and the thread store  116 . In  FIG. 1 , for instance, the example user  102 ( 1 ) may utilize the example computing device  104 ( 1 ) to access a discussion forum, of which thread  118 ( 0 ) is a part. For instance, the user  102 ( 1 ) may request an item detail page associated with the ABC console and the discussion forum may be a part of the item detail page, may request a product category page (e.g., game consoles) and the discussion forum may be a part of the product category page, or may request a customer review page and may the discussion forum may be provided along with the customer review page. The discussion forum may be served to the user  102 ( 1 ) alone or alone with any of the foregoing or other pieces information. 
     In the illustrated example, the computing device  104 ( 1 ) comprises one or more processors  124  and memory  126 , which stores an application  128  (e.g., a browser, etc.) that communicates with the content provider  106  over the network  108 . Here, the user  102 ( 1 ) requests, and the content provider  106  serves, a user interface (UI)  130  that includes the discussion forum including a plurality of discussion threads  118 , ranked according to a factor other than a time at which a most recent post was received for each discussion thread. For instance, the discussion threads  118  may be ranked according to their relevance to a user based on, for example, their relative likelihood of helpful to a customer (“helpfulness”) and/or are their likelihood of enticing users to participate in the discussion thread (“stickiness”). 
     The bottom-right portion of  FIG. 1  illustrates information associated with the discussion thread  118 ( 0 ) in greater detail. As illustrated, the example discussion thread  118 ( 0 ) comprises multiple posts, three of which, posts  132 ( 1 ),  132 ( 2 ), and  132 ( 3 ) (collectively  132 ) are shown. In this example,  FIG. 1  illustrates three posts  132  of thread  118 ( 0 ), an original or first post  132 ( 1 ) (“Which is better the ABC game console or the XYZ console”), a second post  130 ( 2 ) (“XYZ console is easier to play”), and a third post  132 ( 3 ) (“XYZ game console is still better than ABC game console”). The second and third posts  132 ( 2 ) and  132 ( 3 ) were posted in reply to the original post  132 ( 1 ). 
     In addition to illustrating the example posts  132 ,  FIG. 1  illustrates that each of the posts may be associated with respective statistics indicating approval or disapproval of the corresponding segments from the user community  102 . In this example, the first post has statistics  134 ( 1 ) indicating that no positive or negative feedback has been provided for the first post  132 ( 1 ), the second post  132 ( 2 ) is associated with statistics  134 ( 2 ), which indicate that the post  132 ( 1 ) has received sixteen positive votes (or “thumbs up”) and two negative votes (or “thumbs down”). A positive vote may indicate that a voting user generally agreed with the post or thought that the post added value to the discussion thread, while a negative vote may indicate that a user generally disagreed with the post or found the post to add no real value to the discussion thread. In this example, the statistics  134 ( 2 ) indicate that the second post  132 ( 2 ) has received 89% positive votes (and/or has 11% negative votes), while post  132 ( 3 ) has a 100% positive votes. As described in more detail below, the statistics  134 , or more specifically the votes underlying the statistics, are one factor that may be used to rank discussion threads for presentation in a discussion forum. 
     To perform the functionality described immediately above, the content provider  106  includes one or more processors  136  and memory  138 . The memory stores or otherwise has access to the item catalog  112 , thread store  116 , and user profile store  120 . The memory  138  also stores one or more modules that are executable by the one or more processors  136  to implement various functionality. While  FIG. 1  illustrates each of the modules being stored on or accessible by the content provider  106 , in some instances some or all of these components may reside on one or more other entities. For instance, some or all of these components may reside on the computing devices  104  in some instances. Furthermore, in some instances, the components shown on the content provider  106  may provide code to the respective computing devices  104  to perform the respective functionality of the component. 
     In the illustrated example, the memory  138  stores a discussion forum module  140  to facilitate presentation of discussion forums to users, and a user ID module  142  to authenticate users to the content provider  106 . The discussion forum module  140  includes a strategy selector  144  to select an appropriate thread ranking strategy to use to rank threads  118  for presentation in one or more discussion forums. In the illustrated example, the strategy selector  144  can choose from among available thread ranking strategies including a helpful strategy  146 , in which threads are ranked based on their likelihood to be helpful to a broad range of customers, a sticky strategy  148 , in which threads are ranked according to their likelihood of enticing users to participate in a discussion thread, or one or more other strategies  150 . The selection of which strategy to employ may be based on, for example, a forum in which the thread is to be presented, a user that is presently viewing the forum, a product or category to which the forum pertains, or the like. 
     Each ranking strategy may rank the threads  118  based on one or more characteristics of the threads  118 . Examples of characteristics that may be used to rank threads  118  of a discussion forum include, by way of example and not limitation, a number of unique participants in the respective discussion thread, a number of users that have subscribed to the respective discussion thread, a number of positive and/or negative votes associated with posts of the respective discussion thread, a frequency of posts to the respective discussion thread, whether the respective discussion thread relates to a topic of current interest at a media source (e.g., micro-blogging site, news site, really simple syndication feed, etc.), a number of times that posts of the respective discussion thread have been viewed, a number of times that posts of the respective discussion thread have been clicked-on, a behavior of users after viewing or clicking-through posts of the respective discussion threads, a number of users that have voted positively for posts of the respective discussion thread, an amount of time users spent viewing posts of the respective discussion thread, a reputation of a voter who has voted on a post of the respective discussion thread, a reputation of an author of a post of the respective discussion thread, explicit feedback from users regarding helpfulness of a post of the respective discussion thread (e.g., in a subsequent post), a comparison of text of the respective discussion thread to text of other discussion threads previously determined to elicit positive votes, and/or a comparison of text of the respective discussion thread to text of other discussion threads previously determined to be helpful. 
     Discussion threads  118  may be ranked based on any one or more of the foregoing, or other, characteristics. Furthermore, when more than one characteristic is used to rank discussion threads  118 , the characteristics may be weighted evenly or unevenly and/or may be normalized to avoid outliers. Moreover, weights of one or more of these characteristics may be decayed over time so that old threads that have not received recent votes will not dominate discussion forums. The specific equations used to rank the discussion threads  118  may vary widely depending on the ranking strategy employed. 
     In one specific example corresponding to the helpfulness ranking strategy  146 , discussion threads  118  may be ranked according to the following parameterized equation:
 
CQ=( K +sum_over_ i ( o _ i*w _ i ))/( K+L +sum_over_ i ( w _ i ))  (1)
 
     In the preceding equation, CQ represents the content quality which is an indication of a likelihood that a user will vote for a post of a particular thread and, in this example, indicates the likelihood that a particular thread will be helpful to a user. K and L represent unitless constants chosen to represent an average number positive and negative voters per thread for all threads in a corpus of threads, such as the thread store  106 . In one specific example, K and L may be taken to be 10 to represent an average of ten positive voters and ten negative voters on each thread. A voter is said to be a positive voter if the average of all of the user&#39;s votes for posts of a thread is positive, and a voter is said to be a negative voter if the average of all of the user&#39;s posts of a thread is negative. A positive vote is assigned a value of 1 and a negative vote is assigned a value of 0. i represents the set of unique voting users that have voted positively or negatively for a post in the respective discussion thread. o_i is a value between 0 and 1 and represents an average of votes of a unique voting user for all posts in the respective discussion thread. w_i=0.5T/H, where T is an age of the unique voting user&#39;s last vote and H is a half-life in units of time (e.g., seconds, minutes, hours, days, months, years, etc.). 
     The foregoing example provides a weighted Bayesian average of all votes for each discussion thread  118 , weighted by decaying it over time. This approach ensures that a customer cannot stack the voting by voting on all posts, for example. Also, a thread that has one or a small number of very popular posts at or near the beginning is likely to be rated highly (as it should be), since every separate vote on that popular post adds one positive vote to the thread. In contrast, a thread that is contentious, where some posts are voted positively and others are voted negatively, will have a mediocre average vote score that will allow less contentious posts to bubble up above them. Additionally, threads that are no longer getting votes will decay to the mean (0.5), letting currently popular threads overtake them. 
     In another specific example corresponding to the stickiness ranking strategy  148 , discussion threads may be ranked based at least in part on a number of unique participants in the respective discussion thread, a number of users that have subscribed to the respective discussion thread, a number of positive and/or negative votes associated with posts of the respective discussion thread, and a time since a last positive vote for a post of the respective discussion thread. More specifically, under the stickiness ranking strategy  148 , discussion threads may be ranked based on the following parameterized equation: 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           
                             
                               ( 
                               
                                 
                                   ( 
                                   
                                     C 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     1 
                                     * 
                                     
                                       S 
                                       u 
                                     
                                   
                                   ) 
                                 
                                 + 
                                 
                                   N 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   1 
                                 
                               
                               ) 
                             
                             
                               
                                 V 
                                 
                                   C 
                                   ⁢ 
                                   4 
                                 
                               
                               + 
                               
                                 D 
                                 ⁢ 
                                 1 
                               
                             
                           
                           + 
                           
                             
                               ( 
                               
                                 
                                   ( 
                                   
                                       
                                   
                                   ⁢ 
                                   
                                     C 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     2 
                                     * 
                                     
                                       P 
                                       u 
                                     
                                   
                                   ) 
                                 
                                 + 
                                 
                                   N 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   2 
                                 
                               
                               ) 
                             
                             
                               
                                 V 
                                 
                                   C 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   4 
                                 
                               
                               + 
                               
                                 D 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 2 
                               
                             
                           
                           + 
                         
                       
                     
                     
                       
                         
                           
                             
                               ( 
                               
                                 
                                   ( 
                                   
                                     C 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     3 
                                     * 
                                     
                                       V 
                                       t 
                                     
                                   
                                   ) 
                                 
                                 + 
                                 
                                   N 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   3 
                                 
                               
                               ) 
                             
                             
                               
                                 V 
                                 
                                   C 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   4 
                                 
                               
                               + 
                               
                                 D 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 3 
                               
                             
                           
                           + 
                           
                             ( 
                             
                               C 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               7 
                               * 
                               CQ 
                             
                             ) 
                           
                         
                       
                     
                   
                   
                     
                       ( 
                       
                         
                           A 
                           / 
                           C 
                         
                         ⁢ 
                         5 
                       
                       ) 
                     
                     
                       C 
                       ⁢ 
                       6 
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
     In the preceding equation, C1-C7 are weight factors chosen based on the importance and/or significance of the respective thread characteristics. N1-N3 and D1-D3 are constants chosen to Normalize the equation to account for outliers and edge cases. In one specific example, C2 may be chosen to be about 5, C1 and C3 may be chosen to be about 1, and C4-C7, D1-D3, and N1-N3 may be chosen to be zero. S u  represents the number of unique subscribers not counting the author of the post. P u  represents the number of unique posters not counting the author of the original post. V t  represents the total number of votes (positive and negative) received for a thread. V represents a total number of views of the thread. A represents an age since the thread was first created in units of time (e.g., hours, days, months, years, etc.). CQ is the same as that in equation 1 above and represents a content quality of each thread. 
     The foregoing example provides a weighted Bayesian score based on a number of unique participants in the respective discussion thread, a number of users that have subscribed to the respective discussion thread, a number of positive and/or negative votes associated with posts of the respective discussion thread, weighted by decaying it over time. By counting only posts by unique users, this approach will minimize threads with conversations between a small set of enthusiasts (e.g., about topics of interest only to the members of the conversation). This approach also takes into account threads that others have found sufficiently interesting to subscribe to. Also, by decaying the score, the same threads will not stay at the top of the rankings unless they continue to receive votes over time. 
     In a variation on the foregoing example, the parameterized equation for stickiness may also take into account a number of users that, after viewing a thread title, selected the title to view the individual posts. In that case, the number of selections relative to the total number of views may be an indication of how enticing the thread title is. 
     Example User Interfaces (UIs) 
       FIG. 2  is a screen rendering of an example user interface (UI)  200  that includes a discussion forum, such as the one shown in  FIG. 1 . The discussion forum  200  includes a list of multiple discussion threads  118 . In the illustrated example, one of the discussion threads  118 ( 0 ) is shown in bold italics to indicate that it has been selected by a user. Upon selection by the user, the discussion thread  118 ( 0 ) is opened and individual posts of the discussion thread  118 ( 0 ) are presented to the user. While the example UI  200  comprises a web page served by the content provider  106  and rendered by a computing device, such as computing device  104 ( 1 ), in this example, in other instances the UI  200  may be rendered for local applications or in any other context. 
     The example UI  200  illustrates several of the characteristics of discussion threads that may be used to rank discussion threads. For example, the UI  200  illustrates that the discussion thread  118 ( 0 ) includes a subscription indicator  202 , which indicates a number of users that have subscribed to the discussion thread  118 ( 0 ). In this case, fifty-two (52) users have subscribed to the discussion thread. To subscribe to the discussion thread, a user may, for example, select the subscription indicator  202  to open a dialog box to create a subscription. 
     The discussion thread  118 ( 0 ) includes a total of twelve (12) posts, three (3) of which are shown in  FIG. 2  as elements  132 ( 1 ),  132 ( 2 ) and  132 ( 3 ) (collectively  132 ). Additional posts can be displayed by selecting the “See More Posts” control in the lower left corner of the page. As discussed briefly with respect to  FIG. 1 , each of the posts  132  includes statistics  134 , indicating a number of positive and negative votes that have been received for the respective post. As discussed above, positive votes may indicate that a voting user generally agreed with the post or thought that the post added value to the discussion thread, while negative votes may indicate that a user generally disagreed with the post or found the post to add no real value to the discussion thread. In some examples, votes may be used as explicit indicators of whether users found a particular post to be helpful. The statistics  134 , or more specifically the votes underlying the statistics, are one factor that may be used to rank discussion threads for presentation in a discussion forum. In the event that the votes represent a helpfulness of the posts, when applying a helpfulness ranking strategy, the positive votes for posts of a thread may be used as a primary measure of the helpfulness of a thread. 
       FIG. 2  also illustrates an example of an explicit indication of helpfulness in the text of a subsequent post. Specifically, the third post  132 ( 3 ) includes an explicit indication of helpfulness  204  (“Die Hard Gamer, thanks for the comment, that was very helpful”), referring to a statement made in the second post  132 ( 2 ). The discussion forum module  140  or other component of the content provider  106  may recognize this sort of explicit indication of helpfulness by analyzing the text of posts for terms such as “helpful,” “great post,” “thanks,” “informative,” and other terms that indicate the beneficial nature of a post. The text analysis may further be used to identify a post to which the explicit feedback applies by, for example, looking at text surrounding the identified term of helpfulness to identify a subject to which it applies (in this case a previous post by Die Hard Gamer). 
     A timing of the posts  132  of thread  118 ( 0 ) can also be analyzed to determine a frequency of posts to the respective discussion thread. A higher frequency of posts may, for example, be an indication of high stickiness, particularly when the posts are provided by multiple unique users. 
     The discussion forum module  140  may also examine an amount of time that each thread, or each post of the thread, are viewed, a number of threads that after being viewed are selected (e.g., clicked on), and/or a behavior of users after having viewed and/or selected a thread. For example, if after viewing a particular thread, users often purchase an item mentioned in the thread, the thread may be determined to have a high helpfulness ranking. 
       FIG. 3  is another example UI  300 , which illustrates additional characteristics that may be used to rank discussion threads according to various ranking strategies. In  FIG. 3 , text of the various posts may be analyzed for comparison to other previous posts. For example, the discussion forum module  140  or another component of the content provider  106  may determine that a discussion thread is likely to be helpful to a broad range of users based on a comparison of text of the respective discussion thread to text of other discussion threads previously determined to be helpful. Likewise, a discussion thread may be found to be likely to be sticky based on a comparison of text of the respective discussion thread to text of other discussion threads previously determined to be sticky. In the illustrated example, the text “XYZ game console is still better than ABC game console” was found to be similar to text in three other posts, shown collectively as  302 , which were determined to have the respective similarity scores  304 , helpfulness scores  306 , and stickiness scores  308  shown. 
     As another example, the discussion forum module  140  or another component of the content provider  106  may determine that a discussion thread is likely to be helpful to a broad range of users based on a comparison of text of the respective discussion thread to text of other discussion threads previously determined to elicit positive votes. In the illustrated example, the text “XYZ game console is still better than ABC game console” was found to be similar to text in three other posts, shown collectively as  310 , which were determined to have the respective similarity scores  312  and percentages of positive votes  314  shown. The similarity score for each thread relates to a number of words the respective discussion thread shares with titles and/or posts of other discussion threads. 
       FIG. 4  is another example UI  400 , which illustrates additional characteristics that may be used to rank discussion threads according to various ranking strategies. In the example of  FIG. 4 , discussion threads are shown ranked at least in part on their relation to one or more topics of current interest or “Hot Topics.” As shown in  FIG. 4 , the discussion thread  118 ( 0 ) relates to three hot topics, a micro-blog post  402  related to the ABC gaming console, a recent news article  404  from Gamer News magazine related to the ABC game console, and a recent really simple syndication (RSS) feed post  406  related to the ABC game console. The discussion forum module  140  or another component of the content provider  106  may crawl the web to identify hot topics from other media sources, may subscribe to feeds from one or more other media sources, and/or may query a search engine or other intermediary service to obtain information regarding hot topics. 
       FIG. 5  is yet another example UI  500 , which illustrates additional characteristics that may be used to rank discussion threads. In this example, the user ID module  142  or other component of content provider  106  may identify a user that is viewing the discussion forum. The user&#39;s identification may be determined by asking the user to log into the system using a user name and password, or using another authentication credential (e.g., certificate, token, etc.). Additionally or alternatively, the user&#39;s identification may be determined based on one or more files exchanged between the user&#39;s computing device (e.g., computing device  104 ( 1 )) and the content provider  106 , such as a cookie. In the illustrated example, the user (user BB 12 ) is logged-in, as shown by the welcome banner  502  on the UI  500 . 
     The discussion forum module  140  may then select a parameterized equation to use to rank the discussion threads based at least in part on an explicit selection of a thread ranking strategy by the user. For example, the user may be given the option to set a binary thread ranking strategy (e.g., helpful, sticky, other), or may be allowed to choose a hybrid strategy (e.g., surface 70% helpful threads and 30% sticky threads). Alternatively, a parameterized equation to use to rank the discussion threads may be selected based at least in part on an implicit selection of a thread ranking strategy. An implicit selection may be inferred based, for example, on a history of the user&#39;s interaction with the discussion forum, previous explicit settings by a user, a purchase history of the user (from an entity/site hosting the discussion forum and/or other entities/sites), or the like. As another example, the implicit selection of a ranking strategy may be inferred based on a user&#39;s previous purchase history with respect to a particular item or category of items. For instance, a user that has a history of purchasing audio CDs, when viewing an item detail page for an audio CD may be presented with a discussion forum with threads ranked according to a helpful ranking strategy. However, when viewing an item detail page for electronics, the same user may be presented with a discussion forum with threads ranked according to a sticky ranking strategy if the user has a history of commenting on electronics forums without purchasing electronics. Once the thread ranking strategy is selected, the threads may be served by the discussion forum module  140  for presentation to the user based on the relevance to the user, as indicated by the “Relevance to Me” scores  504  shown in the UI  500 . 
     Example Thread Ranking Processes 
       FIG. 6  is a schematic diagram and schematically illustrates an overview of a process  600  of selecting a thread ranking strategy and ranking threads according to one or more thread ranking equations.  FIG. 6  illustrates yet another example UI  600  presenting a discussion post including a plurality of discussion threads  118 . Each of the discussion threads  118  has a number of characteristics  602 , some of which are visible on the UI  600  (e.g., time since last post), and others of which are not (e.g., number of views, number of clicks, etc.). The characteristics  602  shown in  FIG. 6  are merely examples, and other characteristics may also be used. Any or all of the characteristics  602  may be used as a basis to rank threads according to one or more thread ranking strategies. The values of the characteristics  602  shown in  FIG. 6  correspond to the example thread “XYZ console is better” shown in the listing of threads in the discussion forum of  FIGS. 1, 2, 4, and 6 . 
     Strategy selector  144  determines a strategy to employ to rank the discussion threads  118 . In the illustrated example, strategy selector  138  can select from among a helpful strategy  146  (in which threads are ranked based on their likelihood of being helpful to a broad range of consumers), a sticky strategy  148  (in which threads are ranked according to their likelihood of enticing users to participate in the discussion thread), and one or more other strategies  150 . The thread ranking component  152  then ranks the threads using a parameterized equation corresponding to the selected ranking strategy chosen from among a helpful equation  602 ( 1 ), a sticky equation  602 ( 2 ), and one or more other equations  602 (Q). Output of the thread ranking component  152  is, for each thread a helpful rank  604 ( 1 ) if the helpful equation  602 ( 1 ) was employed, a sticky rank  604 ( 2 ) if the sticky equation  602 ( 2 ) was employed, or one or more other ranks  604 (Q) if an other equation  602 (Q) was employed. In some embodiments, threads may be ranked according to multiple different ranking schemes (and hence equations) simultaneously or sequentially for presentation in different discussion forums and/or in different rank orders. In that case, users may be given the option to sort discussion threads based on one or more different ranking strategies (e.g., by selecting the desired ranking strategy from a drop down menu). 
       FIG. 7  is a flow diagram of an example process  700  of surfacing discussion threads based on a factor other than a time since a last post of each discussion thread. The process is illustrated as a collection of blocks in a logical flow graph, which represent a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described blocks can be combined in any order and/or in parallel to implement the process. Moreover, in some embodiments, one or more blocks of the process may be omitted entirely. 
     The process  700  includes, at operation  702 , receiving one or more discussion threads, each having one or more posts. The discussion threads may be received by the discussion forum module  140  from another component of the content provider  106  and/or from one or more user computing devices  104 . At  704 , the process  700  continues by determining a discussion forum in which the threads are to be presented. For instance, discussion forum module  140  may determine one or more forums to which each discussion thread belongs based on, for example, a forum in which the discussion thread was created, a forum to which a post of the discussion thread relates, or the like. In some examples, threads may be configured to be presented in multiple different discussion forums. 
     In some embodiments, an operation  706  then identifies a user that is viewing a particular forum in which the threads are to be presented. For example, the user ID module  142  may identify a user based on a login credential, such as a username and password. However, in other embodiments, the process  700  may omit the operation of determining the identity of the user. 
     An operation  708  includes determining a ranking strategy to use to rank the discussion threads from among a helpfulness strategy, a stickiness strategy, and one or more other strategies. Then, based on the ranking strategy chosen, an operation  710  includes selecting a parameterized equation corresponding to the chosen ranking strategy to use to rank the discussion threads. If the helpfulness equation was selected in operation  710 , then at operation  712  a helpfulness of each thread is determined. If the stickiness equation was selected at operation  710 , then at operation  714  a stickiness of each thread is determined. If another equation was selected at operation  710 , then at operation  716 , the other factor of each thread is determined. In one example, the strategy selector  144  may implement operations  708 ,  710 ,  712 ,  714 , and  716 . Alternatively, in some embodiments, the thread ranking component  146  may implement operations  712 ,  714 , and  716 . 
     The process  700  then proceeds, at operation  718 , to rank the threads according to the determined ranking strategy, the discussion forums in which the threads are to be presented, and/or the user determined to be viewing the discussion forum. For instance, thread ranking component  146  may rank the threads according to the thread ranking strategy selected by the strategy selector  144 . Then, operation  720  serves the threads for presentation in a discussion forum in an order based on the ranking. For instance, thread serving component  152  may serve the threads for display by application  126  on a display of a client computing device  104 . Alternatively, in some embodiments, operation  720  may include causing the threads to be displayed at a display of the content provider  106 . 
     Example Title and Relevant Post Determination Processes 
       FIG. 8  is a screen rendering of another example UI  800 , which illustrates determination and presentation of a title and a most relevant post of a discussion thread in a discussion forum.  FIG. 8  illustrates a discussion thread having three posts  132 . In one example, in addition to or instead of ranking the threads based on a ranking strategy as discussed above, a most relevant post, reply, or post/reply combination in a thread may be surfaced along with a title of the thread, as shown by thread  118 ( 0 ) in this figure. 
     The most relevant post, reply, or post/reply combination may be determined using a parameterized equation using one or more thread characteristics, such as thread characteristics  602  in  FIG. 6 . For instance, the most relevant post may be determined based at least in part on a number of positive votes for each post of the respective discussion thread, a number of unique voters for each post of the respective discussion thread (vote diversity), and/or a position of the post within the discussion thread. In one specific example, the most relevant post, reply, or post/reply combination may be determined using following equation:
 
 R =( X 1+ S 1* Vp )/( X 2+ S 1* V   t )  (3)
 
     In the preceding equation, R is the relevance of the respective post or reply. X1 and X2 are unitless constants chosen to represent an average number positive and total votes per post in a corpus of threads, such as the thread store  106 . S1 is a scaling factor, which is a function of a position of the post or reply in the thread. The position of the post or reply in the thread may be in terms of distance between the post and the original post in the thread and/or the number of intervening replies in a chain of replies to the original post. In one example, S1 may be equal to 1/position in the thread. V p  represents the number of positive votes for the post, and V t  represents the total number of votes (positive and negative) for the post. In some embodiments, a weight associated with the first post (e.g., the question) may be scaled down, in order to capture the best answer/reply in the thread. The foregoing strategy may also be employed to choose the best title for a thread from among posts that best articulate the gist of the thread. 
     In the example of  FIG. 8 , the second post is found to be the most relevant post based on the current ratio of positive to negative votes and based on the position of the post in the thread. Therefore, the second post is surfaced along with the title of the thread at  118 ( 0 ). Also, text from the third post is determined to be most representative of the posts of the discussion thread and is therefore used as the title of thread  118 ( 0 ). The title may comprise a summary of a post of the thread and/or a snippet of text from a post of the thread that best captures the sentiment or gist of the thread. Topic sentence identification techniques may be use to identify topic sentences of posts, which may then be compared to other posts in the thread to determine the sentiment or gist of the thread. In the illustrated example, the text used for the title is not a direct quote from the third post. Rather, certain words may be dropped to shorten the title and/or remove unneeded words, such as the word “still” in this example. 
       FIG. 9  is a flow diagram of an example process  900  of determining a title and a most relevant post of a discussion thread for presentation in a discussion forum. Like process  700 , process  900  is illustrated as a collection of blocks in a logical flow graph, which represent a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described blocks can be combined in any order and/or in parallel to implement the process. Moreover, in some embodiments, one or more blocks of the process may be omitted entirely. 
     The process  900  includes, at operation  902 , receiving discussion threads having one or more posts. The process continues at operation  904  by determining a most relevant post of each discussion thread using, for example, the parameterized equation described above with reference to  FIG. 8 . Next, operation  906  includes determining a representative title for each discussion thread from text of a post of the thread using the same or different parameterized equation. Finally, operation  908  includes surfacing the most relevant post of one or more of the discussion threads along with the title of the respective discussion thread in a discussion forum. The operations of process  900  may be performed partly or entirely by the discussion forum module  140 . In some embodiments, operation  906  may be omitted and the thread title may be chosen to be the original title given the thread by a creator of the thread. Also, as noted above, the process  900  may be performed independently or in combination with the example thread ranking process  700 . 
     CONCLUSION 
     Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as illustrative forms of implementing the claims.