The Network of Trust (NoT)
Information –
information is either a collection of loose bits (such as a text comment), or a
numerical rating. All ratings are
considered to be real numbers in the range [0,1]. Information is considered to be created by an
Agent.
Agent – an agent is an entity that provides information and/or trust values for other agents and/or ratings of other information. Examples might be other human beings, corporations, web sites, or media sources. The client (user) is an agent as well.
Trust – trust is a measure of to what extent an agent’s information should be believed by another agent (such as the client). Trust is directed, so agent A may “trust” agent B more than agent B trusts A. Trust is a real number in [0,1]. Each agent is considered to trust itself an infinite amount. Note that Trust may actually be different for each topic – agents may Trust each other some amount for topic X and a different amount for topic Y. In practice, we would define various topic groups, and have an overall “global trust” for all topics, and modifiers for each topic. This allows you to establish that you trust agent X some amount overall, but don’t agree with them on certain topics, or especially agree with them on other topics. This allows the NoT to track the idea of “taste”.
Confidence – confidence
is a measure of the certainty of any value.
The NoT is considered to be a partial, inaccurate picture of some hidden
model. The various values in the NoT are
uncertain, and confidence measures the degree of certainty. Confidence is a real number in [0,1]. In particular,
trust values and ratings should generally have a confidence associated with
them.
The Network of Trust (NoT) – the NoT is a directed cyclic graph connecting all the agents. Each edge of the graph carries the Trust and Confidence values for that link. For example, agent A may trust agent B with a trust of 0.6 and a confidence of 0.2 ; if agent B has a link to agent A, that would be a separate edge. In general, for any two agents, there may be a wide number of paths between them. Agents may also be in the network and not connected to any other agents.
The NoT provides two basic operations – queries and updates. Queries do not mutate the graph, they provide rated information to the user on some topic. The results of the query are rated based on the trust values of agents and the ratings those agents have applied to that information. Updates add new links to the graph or change the values associated with links. The NoT is a forever growing and mutating entity – it changes over time to reflect learning of the system, and also changing tastes of the agents (the agents themselves are considered to be hidden models that are not constant in time; an agent which you initially trust may over time change to become non-trusted).
The basics of the operations :
Queries – to perform a query, the set of all information we care about is first established using some other search mechanism. For example, if we have a network of restaurant ratings, you might query “good restaurants near this location”; a separate search engine is used to gather the set of information which suits that query. This search engine may return the full set of all information and simply supply an ordering or a rating of that information; we can then proceed with our NoT query in the order provided from the external search. Thus the atomic operation the NoT query provides is – given the agent doing the query (“you”, the client) and some piece of information, what is the trust of that information (note that the “information” here may be a rating of some other information). The trust for a piece of information is just the trust for the agent providing that information.
The Net Trust between two agents is a combination of all the trust pathways between them in the NoT graph. Each link provides a trust adn confidence pair (T,C). We consider all possible paths between two agents; each path provides a sequence of TC pairs. For example, a direct link is one TC pair. This set of all paths provides a set like – { (TC), (TC-TC), (TC-TC), … }. This provides a set of expert opinions, which must be combined using an expert weighting method, to be discussed later.
Updates – updates
are ideally provided by the client after each query.
New links – default trust & confidence
Updating links -
Expert Weighting
-
Degrading trust by distance – Agents you have directly marked as trusted have priority over indirect trust; the farther the separation, the farther it falls off, by some multiplicative factor (perhaps the trust of those agents).
Each expert provides a rating of an item; the weights of all experts is normalized and the weighted sum of ratings provides the final value.
----------------------------
In the NoT universe, "critics" are just agents that provide datagrams – ratings of other items, and information. Critics associated with an insitution would be trusted by them, so they would be indirectly trusted by many. For example, I might trust "citysearch" 25% , trust "New York Times" 40% , etc. and thereby trust their critics through trust inheritance, but I might also provide direct trust overrides by rating individuals. Of course the NoT era provides for the rise of non-affiliated critics. A freelance critic simply provides information, and if he's good he will quickly become trusted in the NoT because individuals will trust him, and that will spread through their connections. There will be major purveyors of taste, like major bloggers, that can spread their own trust networks to many others. Now, when I do a search for "movie reviews" or something like that, I get results based on my NoT, so it gives me critics who I trust highly (directly or indirectly).
----------------------------
A peripheral part of the NoT is automatically finding Agents you should trust. This is not necessary, it's an indirect way of building the graph, but it's a nice way of building your graph into new spaces. The goal is to connect agents that have similar ratings within a topic. This can be built up incrementally. Whenever an Agent enters a new rating on a given item, a search is done to find other Agents that rate that item similarly. Then the found agents are checks to see if they agree with the original agent on other items within that topic. If so, they are found to be an automatically trusted agent based on similar taste in the topic. This link is marked and has to be updated periodically to make sure the tastes don't diverge. Initially this link is low confidence, but if the tastes reinfornce the confidence can grow; if this link provides recommendations, whether they are good or bad will either strengthen or weaken this link.
----------------------------
The NoT provides for the true democratizing of the internet. Wiki-like annotation allows the users to modify any web site. This is not up to the site – it's done client side so it can apply to any site. If users like the site, they will leave it as is, if not, it will be modified or marked. Of course with the NoT you only see the remarks and changes from people you trust. This eliminates "graffiti", which ruins all current attempts at open wikis. The major web addresses would become "addresses" where people would gather and post information. The major news sites would have valuable commentary on the news provided by the people you trust. The major trusted commentators would become the real sources of news.
----------------------------
Using something like my "Network of Trust" idea,
you should be able to do "taste extrapolation". eg.
based on my movie ratings at Netflix, find people who have similar tastes, see
what music they like, or clothes, or whatever, and give me recommendations in
that category. When you actually find people with tastes in common it's a very
powerful correlation; on the other hand, one-item correlation is very poor. eg. I like the movie "
Datagrams and the Network of Trust : a new model for the internet. There's a ton of great information out there on the net that's not indexed by any search well. One example I'm thinking of are all the bits of goodies that people write in blogs. I want to be able to search those bits based on their subject, and of course also using something like the "NoT" to rate their content based on my connections and opinions. So the blog is not indexed as an entire page, but each paragraph or each "datagram" is indexed on its own by topic. There are lots of sources of these datagrams - blog entries, ordinary web pages, news & forum posts, review sites like epinions or igougo, etc. Of course you can't rank this stuff using the silly Google ranking based on links from other places, since most of these things aren't linked. You have to just know the subject, and then you rank the datagram just based on something like NoT - it's ranked by how I rank the source of the information (eg. do I trust this guy, or do I trust someone who trusts them, etc.)
Another thought on the NoT - I heard this interview on NPR with the head of
the French national library. He was complaining about the fact that Google has
a
The response I'm getting to requests on 4-17 is awesome; people coming together to help each other is a beautiful thing. I wish everyone could help each other in a similar way; of course the reason we don't is you say, "who is this douche, why should I take time to help him?". It reminds me of an old idea I had - there needs to be an international "cool person's club". Basically this is just a collective of people who want to be nice to each other and have indirect approval of each other. So, when you're travelling you could look up the club and see other "cool" members in whatever town. People could rate each other, so if someone in the club visits you and trashes your house, you just go put a bad review on him on the site and people won't like him any more. Ideally this would be a rating using the "Network of Trust", so each person doesn't have an absolute rating at all, but rather a rating *for me* through my taste & trust network. So, for example, if I trust person B, and he likes person C, then C is rated well for me. You might trust person D, who hates person C, so then C is rated poorly for you. If someone else trusts both of us, then they'll see that person C is rated mediocre on average, with a huge spread (very low confidence in the rating). In my original conception I thought the club would have to vote people in & ban people who are bastards, but that makes it like an exclusive clique, I don't like that idea. Rather, let anyone join, they just have no rating. Also, anyone who's a bastard would get rated way down. It would be interesting if the club could become a social mini game, where people start being nice to each other in real life in order to get points in the game. That could actually be easily encouraged by giving prizes semi-randomly to people who are well rated (like subsidized parties for club members).
I need my Network of Trust. I know there are good DJ's out there making great song selections - why can't my mp3 player tap into their mixes? I know there are people with good taste in movies making movie lists - why can't I get that? The whole idea of "critics" is obsolete. What we have instead of networks and taste-clusters. People with similar opinions on topics are grouped and share information.
If I was smart I would patent my internet ideas (see
"network of trust"
My new big idea is to use the search to improve the search. Google has become so mainstream that they should use searches to improve the searches. It goes like this - you search for some keywords, "a b c", you're trying to find the best pages that are about those things. You go clicking around the search results, eventually you find a good one. That's the page that should be found first! So, you take the behavior of the searcher and roll it back into the search; you mark the final page as being the best page "about" a,b,c. This approval could be done using some extra thumbs-up/thumbs-down buttons, or even just by watching a person's activity as they browse around. This could also be enhanced by the old "network of trust", since you know *who* approved the page, my searches can be conditioned on people who are approved in my network.
Basically this becomes a fuzzy way of experts sharing information. When I go searching for 3d graphics stuff, I can make use of all the searches that other 3d graphics gurus have done. My "network of trust" will be conditioned on other people who are smart and expert, so the pages they found will be more likely for me to find. This kind of thing could *very* rapidly improve the quality of searches, especially difficult ones. For example, trying to find something like an SSE 4x4 matrix multiply is nearly impossible with Google, but would be very easy once the conditioning on quality results and similar experts is done.
Another trick for conditioning is the use of "base pages". For example, if you condition from a hub page like www.realtimerendering.com , then you prefer pages based on how close their web graph-distance is to that page, you will automatically get much better results for any 3d graphics search.
The internet is the core of computing these days. It's still woefully under-used. I want to know a good restaurant near the Bicycle Casino - how do I find that on the internet? It's a big mess. Only the most crafty of computer users (like myself and most readers of my site) can build up a repertoire of search techniques that can answer their queries; the average shlub has no hope of navigating the mess of information that is the net.
So, some ideas of how to make this better. The key is a big database of side-data which has information associated with a user id and a web site. So, for example, I would log into the net, and then there would be various queries of this database. Some examples -
Comments on web sites. At every web site, you would have a side-bar. You would be able to rate the site, and that would go into the database; you could also comment on it, ideally even insert comments ala Wiki. You would also be shown several comments. You would be shown the comments of the people that you had most highly rated (more on this later), plus a few more random ones. These comments could for example, include things like "this site sucks, use one instead".
Crucial to all this is the "network of trust". You rate other users, just by adding your friends, or by putting approvals on other peoples' comments. This way the database builds up a network, of "who do I trust", then indirectly "who do they trust", and "who do they trust twice removed", etc. Then, you can do searches like "show me a website on bicycles which is approved by someone I trust (directly or indirectly)". Obviously the strength of trust goes down by the indirection of the relationship. You could even get into "similar-taste networks" on specific topics, like so you could find web-sites on music that are highly-rated by people who you agree with *on music*. That way your trust network could be different by topic.
Then you can add nice little UI things, like whenever you go to a site, you get some links in your side-bar which are related recommended sites that your "friends" approved. You can also just play around and navigate your friends recommendations in ways like GNOD