Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Vivo Search

858 Aufrufe

Veröffentlicht am

Presentation on Search ranking improvement at 2011 VIVO Conference, Washington DC.

  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Vivo Search

  1. 1. Improving VIVO search results through Semantic Ranking. Anup Sawant Deepak Konidena
  2. 2. VIVO Search till Release 1.2.1 <ul><li>VIVO Search till Release 1.2.1. </li></ul><ul><ul><li>Lucene keyword based search. </li></ul></ul><ul><ul><li>Score based on Textual relevance. </li></ul></ul><ul><ul><li>Importance of a node was not taken into consideration. </li></ul></ul><ul><ul><li>Additional data that describes a relationship was not being searched. </li></ul></ul>
  3. 3. Adding knowledge from semantic relationships <ul><ul><li>  VIVO 1.2 Search contained restricted information about an individual in the index. This lead people to ask questions like: </li></ul></ul><ul><li>  </li></ul><ul><li>  “ Hey I work for &quot;USDA&quot; and when I search for &quot;USDA&quot;, my profile doesn't show up in the search results and vice-versa.”   </li></ul><ul><ul><li>“ Hey information related to my Educational background, Awards, the Roles I assumed, etc. that appear on my profile don't show up in the search results when I search for them individually or when I search for my name.” </li></ul></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>      </li></ul><ul><li>  </li></ul>
  4. 4. How does the semantic graph look like with the presence of context nodes?
  5. 5. Intermediate nodes were overlooked. <ul><li>  </li></ul><ul><ul><li>Traditionally semantic relationships of an Individual like Roles, Educational Training, Awards, Authorship, etc. were not stored in the Index.  </li></ul></ul><ul><ul><li>Individuals were connected to these properties through intermediate nodes called &quot;Context Nodes&quot;. And the information hiding beyond these context nodes was not captured. </li></ul></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>      </li></ul><ul><li>  </li></ul>
  6. 6. Lucene field for an Individual.   And here's why                  
  7. 7. VIVO Search in 1.3 <ul><li>VIVO Search in 1.3 </li></ul><ul><ul><li>Transition from Lucene to SOLR. </li></ul></ul><ul><ul><li>Provides base for distributed search capabilities. </li></ul></ul><ul><ul><li>Individuals enriched by description of semantic relationships. </li></ul></ul><ul><ul><li>Enhanced score by Individual connectivity. </li></ul></ul><ul><ul><li>Improved precision and recall of search results. </li></ul></ul>
  8. 8. Influence of PageRank <ul><ul><li>Introduced by Larry Page & Sergey Brin. </li></ul></ul><ul><ul><li>Every node relies on every other node for its ranking. </li></ul></ul><ul><ul><li>Intuitive understanding: Node importance is calculated based on incoming connections and contribution of highly ranked important nodes. </li></ul></ul>
  9. 9. Some parameters based on PageRank <ul><li>β </li></ul><ul><ul><li>Number of nodes connected to a particular node. </li></ul></ul><ul><ul><li>Intuition: Probably, a node deserves high rank because it is connected to lot of individuals. </li></ul></ul><ul><li>Φ </li></ul><ul><ul><li>Average over β values of all the nodes to which a node is connected. </li></ul></ul><ul><ul><li>Intuition: Probably, a node deserves high rank because it is connected to some important individuals. </li></ul></ul><ul><li>Γ </li></ul><ul><ul><li>Average strength of uniqueness of properties through which a node is connected. </li></ul></ul><ul><ul><li>Intuition: Probably, a node deserves high rank based on the strength of connection to other nodes. </li></ul></ul>
  10. 10. Search Index Architecture: Enriching with Semantic Relations. Overall connectivity of an Individual (ß) Apache Solr Relevant Documents. Dismax Query Handler. Indexing Phase Sparql Proper Boosts Searching Phase Multithreaded.
  11. 11. Real-time Indexing: Enriching with Semantic Relations. Overall connectivity of an Individual (ß) Apache Solr Relevant Documents. Dismax Query Handler. Indexing Phase Sparql Proper Boosts Searching Phase ADD/EDIT/DELETE of an Individual or its properties. The changes occur in real time and propagate beyond intermediate nodes. Multithreaded.
  12. 12. Cluster Analysis of Search Results <ul><li>Intuition </li></ul><ul><ul><li>Assume search results from Release 1.2.1 and Release 1.3 are two different clusters. </li></ul></ul><ul><li>Expectation </li></ul><ul><ul><li>Results from Release 1.3 should have their mean vector close to query vector. </li></ul></ul><ul><li>Results </li></ul><ul><ul><li>Text to vector conversion using ‘Bag of words’ technique. </li></ul></ul><ul><ul><li>Tanimoto distance measure used. </li></ul></ul><ul><ul><li>Code at : https:// github.com / anupsavvy / Cluster_Analysis </li></ul></ul>Query Distance from Mean vector of Release 1.2.1 Distance from Mean vector of Release 1.3 Scripps 0.27286328362357193 0.004277746256068157 Paulson James 0.009907336493786136 0.004650133621323327 Genome Sequencing 9.185463752863598E-4 8.154498815206635E-4 Kenny Paul 0.007610235640599918 0.003984303949283425
  13. 13. Understanding how it happens .. <ul><li>R1 </li></ul><ul><li>R2 </li></ul><ul><li>R3 </li></ul><ul><li>R4 </li></ul><ul><li>R5 </li></ul><ul><li>. </li></ul><ul><li>. </li></ul><ul><li>. </li></ul><ul><li>. </li></ul>name location description name research name articles name location Bla bla bla ….
  14. 14. Understanding how it happens .. <ul><li>scripps </li></ul><ul><li>loring </li></ul><ul><li>jeanne </li></ul><ul><li>institute </li></ul><ul><li>cornell </li></ul><ul><li>florida </li></ul><ul><li>. </li></ul><ul><li>. </li></ul><ul><li>. </li></ul><ul><li>. </li></ul>R1 R2 R3 .. .. .. .. 6 1 Q 1 0 0 1 4 0 1 1 0 1 4 0 1 1 0 1 1 1 1 0 0 0 - - - - - - - - - - - - - - - -
  15. 15. Understanding how it happens .. institute cornell loring V1 V2 θ Euclidean distance Cosine distance
  16. 16. Understanding how it happens .. institute cornell loring V2 θ V1 Euclidean distance increases, Cosine distance remains the same
  17. 17. Query vector distance from Cluster Mean vectors
  18. 18. User testing for Relevance
  19. 19. Precision and Recall Total Relevant Total Retrieved Precision = X / (Total Retrieved) Recall = X / (Total Relevant) X
  20. 20. Precision-Recall graphs based on User Analysis.
  21. 21. Cluster Analysis for Relevance
  22. 22. Precision-Recall graphs based on Cluster Analysis
  23. 23. Query vector distance from individual search result vectors
  24. 24. Experiments : SOLR <ul><ul><li>Search query expansion can be done using SOLR synonym analyzer. </li></ul></ul><ul><ul><li>Princeton Wordnet http://wordnet.princeton.edu/ is frequently used with SOLR synonym analyzer. </li></ul></ul><ul><ul><li>A gist code by Bradford on Github https://gist.github.com/562776 was used to convert wordnet flat file into SOLR compatible synonyms file. </li></ul></ul><ul><ul><li>Pros </li></ul></ul><ul><ul><ul><li>High Recall </li></ul></ul></ul><ul><ul><ul><li>Documents can be matched to well known acronyms and words not present in SOLR index. For instance, a query which has ‘ fl ’ as one of the terms would retrieve documents related to ‘ Florida ’ as well. </li></ul></ul></ul><ul><ul><li>Cons </li></ul></ul><ul><ul><ul><li>Documents matching just the synonym part of the query could be ranked higher. </li></ul></ul></ul>
  25. 25. Experiments : SOLR ( cont. ) <ul><ul><li>Certain degree of spelling correction like feature could be achieved through SOLR Phonetic Analyzer. </li></ul></ul><ul><ul><li>Phonetic Analyzer uses Apache Commons Codec for phonetic implementations. </li></ul></ul><ul><ul><li>Pros </li></ul></ul><ul><ul><ul><li>High Recall </li></ul></ul></ul><ul><ul><ul><li>Helps in detecting spelling mistakes in search query. For instance, if a query like ‘ scrips ’ would be accurately match to a similar sounding word ‘ scripps ’ which is actually present in the index. Misspelled name like ‘ Polex Frank ’ in the query could be matched to correct name ‘ Polleux Franck ’ . </li></ul></ul></ul><ul><ul><li>Cons </li></ul></ul><ul><ul><ul><li>Number of results matched just based on Phonetics could decrease the precision of the engine. </li></ul></ul></ul>
  26. 26. Experiments : Ontology provides a good base for Factoid Questioning. <ul><ul><li>Properties of Individuals give direct reference to the information. </li></ul></ul><ul><ul><li>Natural language techniques and Machine learning algorithms could help us understand the search query better. </li></ul></ul><ul><ul><li>A query like “What is Brian Lowe’s email id ?” should probably return just the email id on top or a query like “Who are the co-authors of Brian Lowe ?” should return just the list of co-authors of Brian Lowe. </li></ul></ul><ul><ul><li>We can train an algorithm to know the type of question or search query that has been fired. Cognitive Computation Group of University of Illinois At Urbana-Champaign provides corpus of tagged questions to be used as training set. http://cogcomp.cs.illinois.edu/page/resources/data </li></ul></ul>
  27. 27. Experiments : Ontology provides a good base for Factoid Questioning. ( cont. ) <ul><ul><li>Once the question type is determined, we could grammatically parse the question using Stanford Lexparser http://nlp.stanford.edu/software/lex- parser.shtml </li></ul></ul><ul><ul><li>Question type helps us to know whether we should look for a datatype property or an object property. Lexparser will helps us to form a SPARQL query. </li></ul></ul>Stanford Lexparser Kmeans/SVM Search Query SPARQL Query Corpora Question type Terms
  28. 28. Summary <ul><ul><li>Transition from Lucene to SOLR </li></ul></ul><ul><ul><li>Additional information of semantic relationships and interconnectivity in the index. </li></ul></ul><ul><ul><li>More relevant results and good ranking compared to VIVO 1.2.1 </li></ul></ul><ul><ul><li>Improvements in indexing time due to multithreading. </li></ul></ul>
  29. 29. Team Work…