ArticleslgStudy

computer science

SimRank

SimRank is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand SimRank rather than just read about it. In short: SimRank is a general similarity measure, based on a simple and intuitive graph-theoretic model. SimRank is applicable in any domain with object-to-object relationships, that measures similarity of the structural context in which objects occur, based on their relationships with other objects.

Key takeaways

  • SimRank belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect SimRank to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of SimRank from memory before moving on to harder problems.

Reference excerpt

SimRank is a general similarity measure, based on a simple and intuitive graph-theoretic model. SimRank is applicable in any domain with object-to-object relationships, that measures similarity of the structural context in which objects occur, based on their relationships with other objects. Effectively, SimRank is a measure that says that two objects are considered to be similar if they are referenced by similar objects. Although SimRank is widely adopted, it may output unreasonable similarity scores which are influenced by different factors, and can be solved in several ways, such as introducing an evidence weight factor, inserting additional terms that are neglected by SimRank or using PageRank-based alternatives.

Introduction Many applications require a measure of "similarity" between objects. One obvious example is the "find-similar-document" query, on traditional text corpora or the World-Wide Web. More generally, a similarity measure can be used to cluster objects, such as for collaborative filtering in a recommender system, in which “similar” users and items are grouped based on the users’ preferences. Various aspects of objects can be used to determine similarity, usually depending on the domain and the appropriate definition of similarity for that domain. In a document corpus, matching text may be used, and for collaborative filtering, similar users may be identified by common preferences. SimRank is a general approach that exploits the object-to-object relationships found in many domains of interest. On the Web, for example, two pages are related if there are hyperlinks between them. A similar approach can be applied to scientific papers and their citations, or to any other document corpus with cross-reference information. In the case of recommender systems, a user’s preference for an item constitutes a relationship between the user and the item. Such domains are naturally modeled as graphs, with nodes representing objects and edges representing relationships. The intuition behind the SimRank algorithm is that, in many domains, similar objects are referenced by similar objects. More precisely, objects a {\displaystyle a} and b {\displaystyle b} are considered to be similar if they are pointed from objects c {\displaystyle c} and d {\displaystyle d} , respectively, and c {\displaystyle c} and d {\displaystyle d} are themselves similar. The base case is that objects are maximally similar to themselves . SimRank is a general algorithm that determines only the similarity of structural context. SimRank applies to any domain where there are enough relevant relationships between objects to base at least some notion of similarity on relationships. Obviously, similarity of other domain-specific aspects are important as well; these can — and should be combined with relational structural-context similarity for an overall similarity measure. For example, for Web pages SimRank can be combined with traditional textual similarity; the same idea applies to scientific papers or other document corpora. For recommendation systems, there may be built-in known similarities between items (e.g., both computers, both clothing, etc.), as well as similarities between users (e.g., same gender, same spending level). Again, these similarities can be combined with the similarity scores that are computed based on preference patterns, in order to produce an overall similarity measure.

Basic SimRank equation For a node v {\displaystyle v} in a directed graph, we denote by I ( v ) {\displaystyle I(v)} and O ( v ) {\displaystyle O(v)} the set of in-neighbors and out-neighbors of v {\displaystyle v} , respectively. Individual in-neighbors are denoted as I i ( v ) {\displaystyle I_{i}(v)} , for 1 ≤ i ≤ | I ( v ) | {\displaystyle 1\leq i\leq \left|I(v)\right|} , and individual out-neighbors are denoted as O i ( v ) {\displaystyle O_{i}(v)} , for 1 ≤ i ≤ | O ( v ) | {\displaystyle 1\leq i\leq \left|O(v)\right|} . Let us denote the similarity between objects a {\displaystyle a} and b {\displaystyle b} by s ( a , b ) ∈ [ 0 , 1 ] {\displaystyle s(a,b)\in [0,1]} . Following the earlier motivation, a recursive equation is written for s ( a , b ) {\displaystyle s(a,b)} . If a = b {\displaystyle a=b} then s ( a , b ) {\displaystyle s(a,b)} is defined to be 1 {\displaystyle 1} . Otherwise,

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with SimRank

Start with the simplest possible case. Write down what SimRank claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to SimRank before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about SimRank ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of SimRank

In research
SimRank appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses SimRank in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
SimRank is common in secondary-school and first-year university syllabi. It links to neighbouring topics Cluster analysis algorithms, Similarity measures, so understanding it makes those chapters shorter.
In everyday life
Look for SimRank outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study SimRank in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what SimRank means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain SimRank out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is SimRank in simple terms?

SimRank is a general similarity measure, based on a simple and intuitive graph-theoretic model. SimRank is applicable in any domain with object-to-object relationships, that measures similarity of the structural context in which objects occur, based on their relationships with other objects.

Why does SimRank matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study SimRank?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on SimRank.

Tags

  • Cluster analysis algorithms
  • Similarity measures

Keep exploring