Why do you need a reputation?
Reputation may reflect a multitude of connections in the system, connections between systems, their size and relevance. Reputation is the status of a given element in the system, be it a specific person, a book, a film, a website, or something else. It allows the end user to navigate among the large amount of information, to choose the best for themselves, and also, if he himself is an element of the system, such as, for example, in social networks, to “show himself”.
The simplest and most widely used type of reputation system is rating without connections. For example, users rate a product in an online store or film on a site whose reputation ultimately equals just the number of sales of this product or the number of people who watched and rated the movie.
In social networks, users can rate photos of other users and their reputation (rating) equals just the number of people who positively rate a photo.
More advanced reputation technologies use connections between objects in the system. At the same time, the reputation of an element of the system depends on the reputation of other related elements - donors, as well as on all other elements that affect the reputation of its donors. That is, the increase in the reputation of the object will be greater in the case when it receives a transaction from a higher-ranking object. The underwater stone in such systems is the problem of cyclic cheatings, when the elements of the system are connected to each other by not one-way communication, and their reputations depend on each other's reputations. If you do not take into account and do not remove these markups, then an uncontrolled growth of reputation is possible.
Briefly about the well-known rating system
The most well-known ranking system with links is PageRank, developed by Google. Since its first release, many of its various modifications and improvements have appeared, mainly related to the optimization of the basic algorithm. In this case, the problem of cyclic cheating is solved in it by reducing the value of the weight of the transaction so that transitive and cyclic links fade out quickly and do not lead to an avalanche-like increase in reputation.
Imkhoneta’s team has developed an alternate reputation system with links, called NDX. Currently, it is used to calculate users' reputations in the Imonet recommendation system. At the same time, the API of the system engine is quite flexible and does not limit its use within the framework of social networks. This technology allows you to enter an unlimited number of link properties so that the reputation of an object in the system can accumulate transactions in itself according to different types of links.
The problem of cyclic markups is not solved by reducing the weight of transactions, but by applying complex mathematical algorithms that remove the part to which the object associated with it contributes to the donor’s reputation. This makes it possible to take into account the contributions of all possible donors to the reputation of the object, not only close in terms of connections, but also far transitive and having a sufficiently large reputation. The implementation of the NDX engine takes into account multithreading and, in principle, is fairly easily clustered.
LinksPageRank Wikipedia InformationMore about Imhoneta's reputation engineTechnical Manual
Text writer: Maxim Shikhalev