Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Presentation dual inversion-index


Published on

Published in: Education, Technology, Design
  • Be the first to comment

  • Be the first to like this

Presentation dual inversion-index

  1. 1. “ BEYOND PAGES: SUPPORTING EFFICIENT, SCALABLE ENTITY SEARCH WITH DUAL INVERSION INDEX” Tao Chang, Kevin-Chen-Chuan Chang University of Illinois at Urbana-Champaign Presented By: Mahesh Gupta CSE 6339 Web Search Mining & Integration – Paper Presentation
  2. 2. WHAT THIS PAPER IS ALL ABOUT? <ul><li>Entity based search is next big step forward and significant departure from traditional keyword based search. From computational point of view also Entity search on the scale of world wide web is going to through unique challenges. This paper indentify these computational challenges and introduce solution using “ Dual-Inversion Index ” technique. </li></ul>
  3. 3. ENTITY SEARCH <ul><li>Suppose we are interested in finding location of Cowboy Stadium. Our System expect query as combination of keywords and Entities. </li></ul><ul><li> </li></ul><ul><li>Task to do here: </li></ul><ul><li>Context Matching </li></ul>Cowboy Stadium #Location
  4. 4. CONTEXT MATCHING ALONE ENOUGH? <ul><li>… . Cowboy Stadium located in Arlington Texas ….. </li></ul><ul><li>… .. Cowboy Stadium located in United States cost $1.3 billion in complete construction... </li></ul><ul><li>.... Cowboy Stadium located in North Texas is the fourth largest national football stadium in the country by seating capacity….. </li></ul><ul><li>… Cowboy Stadium is 20 Miles drive from Hilton hotel located in Stemmons Freeway, Dallas Texas ……. </li></ul><ul><li>So Clearly we need some scoring mechanism also. </li></ul>
  5. 5. HENCE…. <ul><li>Suppose we are interested in finding location of Cowboy Stadium. </li></ul><ul><li> </li></ul><ul><li>Task to do here: </li></ul><ul><li>Context Matching </li></ul><ul><li>Global Aggregation </li></ul>Cowboy Stadium #Location
  6. 6. COMPUTATIONAL CHALLENGES <ul><li>Approach that, first doing keyword search using keywords in the query and then doing entity search on resulting document of keyword search is much like sequential scan and very slow to scale on world wide web. </li></ul><ul><li>If some one suggest for top-k pages approach here then what would be the effective value of k for web and it will also affect global aggregation. </li></ul><ul><li>So we need effective mechanism for this. </li></ul><ul><li>& That is : Index </li></ul>
  7. 7. WHAT IS INDEX HERE <ul><li>Indexing would we a pre-processing task for application here and indexes will be use to answer users query fast. </li></ul><ul><li>For example, index list can look something like below: </li></ul>Keyword Document, position Cowboy (D10,12) ;(D12,34)(D46,257)…… Stadium (D10,13) ;(D34,134)(D146,357)…… ------------- ----------------
  8. 8. INTRODUCING DUAL-INVERSION INDEX <ul><li>2 types of Index mechanism proposed here by the authors for entity search: </li></ul><ul><li>Document-Inverted Index </li></ul><ul><li>Entity-Inverted Index </li></ul><ul><li>Lets Discuss each one by one. </li></ul>
  9. 9. DOCUMENT INVERTED INDEX <ul><li>Process document, identify keywords,Entities in it and then create a list for each keyword having document ID and position in the document. Basically this index is keyword,Entity-to-document mapping. </li></ul><ul><li>Mathematically for keyword ‘k’ and document ‘doc’ </li></ul><ul><li> D(k): k -> {(doc,pos) | doc.content(pos)=k; } </li></ul><ul><li>So list will look something like: </li></ul><ul><li>D(cowboy): </li></ul><ul><li>D(stadium): </li></ul>D2,12 D6,17 D9,34 D9,357 D97,45 D6,18 D9,35 D56,55 D64,5 D97,46
  10. 10. DOCUMENT INVERTED INDEX CONTINUE.. <ul><li>Mapping for Entity to document will be slightly different then keyword to entity in index. It is because Entity can have different instance value in the document. </li></ul><ul><li>So Mathematically: </li></ul><ul><li>D(E): E-> {(doc,pos,e)| d.content(pos)=e; eεE} </li></ul><ul><li>In List view: </li></ul><ul><li>D(Location): </li></ul>D6,23,’Arlington TX’ D9,45,’United State’ D97,50,’North Texas’ …… . …… .
  11. 11. DI-INDEX-> IS IT EFFICIENT NOW ? <ul><li>If we treat list of each keywords and entity in index as a relation then we can write equivalent SQL query as: </li></ul><ul><li>Select D(l).entity , sum(lscore) as score </li></ul><ul><li> From Cowboy c, Stadium s, Location l </li></ul><ul><li>where c.dId=s.dId and s.dId=l.dId </li></ul><ul><li> ------- </li></ul><ul><li>Group By D(l).entity </li></ul><ul><li>Having score > threshold ; </li></ul><ul><li>Issue here: </li></ul><ul><li>Cost of Complex join: In fact as number of keywords and Entity in query increases join will become more complex. </li></ul><ul><li>So we still need improvement. </li></ul>
  12. 12. DI-INDEX -> DATA PARTITIONING <ul><li>Partition the document space in equal size. For example </li></ul><ul><li>100 Doc -> 10 partition-> 10 doc in each partition </li></ul><ul><li>Each partition have list of keywords and entity it support, find partition support yours and then you hose have to perform join only in between those documents. </li></ul><ul><li>So Entry for entity in index now should have partition number instead of instance value(Why?) </li></ul><ul><li>D(Location): </li></ul>D6,23,P8 D9,45,P86 D97,50,P8 …… .
  13. 13. ENTITY-INVERTED INDEX <ul><li>As opposite to DI-Index here we map each keyword to the entity while building index. Here we not only store each keyword’s position in the doc but also nearby entity’s position also under which context this keyword occurred. </li></ul><ul><li>Mathematically </li></ul><ul><li>E(k) : k ->{(o(doc,epos,entity),pos) |o.context[pos]=k; entityεE} </li></ul><ul><li>Which translated to k appear with position ‘pos’ in the context of entity occurrence o(doc,epos,entity). </li></ul>
  14. 14. EI-INDEX CONTINUE… <ul><li>Hence layout of index list in this case will look something like: </li></ul><ul><li>E(cowboy): </li></ul><ul><li>E(Stadium): </li></ul><ul><li>(Notice here that there is no entry for location because it is entity) </li></ul><ul><li>Here P is partition number explained in next slide whose concept is analogous to DI-Index partitioning. </li></ul>((D6,23,P8),17) ((D9,45,P86),34) ((D97,50,P8),45) ……… . ((D23,23,P8),18) ((D9,45,P86),35) ((D97,50,P8),46) ……… .
  15. 15. EI-INDEX PARTITIONING <ul><li>Here we will do the partitioning on the basis of Entites. Divide Entity space into equal size. So if </li></ul><ul><li>10 Entity-> 10 partition node -> 1 entity each partition. </li></ul><ul><li>Each entity node will have list of keywords found in the context of this entity. </li></ul><ul><li>Its faster than DI-Index because task of context matching we have performed during index formation itself. </li></ul>
  16. 16. COMPARISON D-Inverted E-Inverted Join Fast (why?) Faster (why?) Aggregation Central (why?) Distributed (why?) Space Minimal Overhead (why?) Large (why?)
  17. 17. BOTH INDEX CO-EXIST? DUAL-INVERSION INDEX) <ul><li>Answer is Yes. </li></ul><ul><li>Its advisable that E-Inverted should be created for Entities that are queried more often and take less space because its faster whereas D-Inverted should be created for Entities that are queried less often but take large space. </li></ul><ul><li>This balance space and time performance of the application. </li></ul>
  18. 18. SUMMARY <ul><li>D-Inverted maps keywords, Entity to document. It gives good performance using partitioning and takes minimal space. </li></ul><ul><li>E-inverted maps each keywords to document and and context of Entity under which it found. It is faster than D-Inverted but require large space to store. </li></ul><ul><li>Both can co-exist in a system to balance performance. </li></ul>
  19. 19. <ul><li>Thank You </li></ul>