Front Matter Template
Total Page:16
File Type:pdf, Size:1020Kb
Copyright by Matthew Stephen Sigman 2012 The Report Committee for Matthew Stephen Sigman Certifies that this is the approved version of the following report: Using Machine Learning Techniques to Simplify Mobile Interfaces APPROVED BY SUPERVISING COMMITTEE: Supervisor: Christine Julien Joydeep Ghosh Using Machine Learning Techniques to Simplify Mobile Interfaces by Matthew Stephen Sigman, B.S. Report Presented to the Faculty of the Graduate School of The University of Texas at Austin in Partial Fulfillment of the Requirements for the Degree of Master of Science in Engineering The University of Texas at Austin December 2012 Acknowledgements I would like to thank my parents for their unwavering support, guidance, and constantly pushing me to succeed. I would also like to thank my advisor on this report, Christine Julien, and my reader Joydeep Ghosh. iv I am in favor of animal rights as well as human rights. That is the way of a whole human being. Abraham Lincoln v Abstract Using Machine Learning Techniques to Simplify Mobile Interfaces Matthew Stephen Sigman, M.S.E. The University of Texas at Austin, 2012 Supervisor: Christine Julien This paper explores how known machine learning techniques can be applied in unique ways to simplify software and therefore dramatically increase its usability. As software has increased in popularity, its complexity has increased in lockstep, to a point where it has become burdensome. By shifting the focus from the software to the user, great advances can be achieved by way of simplification. The example problem used in this report is well known: suggest local dining choices tailored to a specific person based on known habits and those of similar people. By analyzing past choices and applying likely probabilities, assumptions can be made to reduce user interaction, allowing the user to realize the benefits of the software faster and more frequently. This is accomplished with Java Servlets, Apache Mahout machine learning libraries, and various third party resources to gather dimensions on each recommendation. vi Table of Contents List of Tables ..................................................................................................... ix List of Figures ..................................................................................................... x Introduction: Less is More ................................................................................... 1 Power Users ............................................................................................... 2 Restaurant Recommendations .............................................................................. 4 Yelp Mobile ............................................................................................... 5 Ness .......................................................................................................... 8 Urbanspoon .............................................................................................. 11 YouChoose ............................................................................................... 14 The Recommender ............................................................................................ 18 Apache Mahout ........................................................................................ 18 Item-Based Recommendation versus User-Based Recommendation ......... 20 Linear Interpolation Item-Based Recommendation ................................... 21 Inferring Preferences for Unknown Users ................................................. 23 Gathering Values for Each Dimension ............................................................... 24 Ascertain User Location .................................................................................... 27 Obtain 20 Geographically Nearest Locations ..................................................... 28 Retrieve Yelp Information for Each One ........................................................... 31 Apply Recommendation Engine and Rank......................................................... 32 Return Top Result to User ................................................................................. 33 Application Design ............................................................................................ 34 Performance is a Feature ........................................................................... 34 Baseline Metric ................................................................................ 34 Multi-Threading ............................................................................... 34 Caching............................................................................................ 35 vii Web Service ............................................................................................. 35 Application Structure ................................................................................ 36 Future Enhancements ........................................................................................ 39 General Enhancements ............................................................................. 39 User Preferences ....................................................................................... 40 Works Cited ...................................................................................................... 42 Curriculum Vita ................................................................................................ 44 viii List of Tables Table 1: Differences between YouChoose and existing applications ............. 4 Table 2: Item-item recommenders and their key features in Mahout ............ 19 Table 3: Restaurant dimensions within YouChoose ..................................... 24 Table 4: Java libraries used within project ................................................... 37 ix List of Figures Figure 1: Yelp Mobile home screen ................................................................ 6 Figure 2: Yelp Mobile category selection screen ............................................ 6 Figure 3: Yelp Mobile search results list screen .............................................. 7 Figure 4: Yelp Mobile restaurant information screen ...................................... 7 Figure 5: Ness home screen ............................................................................ 9 Figure 6: Ness search results screen ............................................................... 9 Figure 7: Ness restaurant information screen ................................................ 10 Figure 8: Ness restaurant additional details screen ........................................ 10 Figure 9: Urbanspoon home screen .............................................................. 11 Figure 10 Urbanspoon Shake feature ............................................................. 12 Figure 11: Urbanspoon search results screen .................................................. 12 Figure 12: Urbanspoon restaurant details screen ............................................. 13 Figure 13: Urbanspoon map screen ................................................................ 13 Figure 14: YouChoose state transition diagram .............................................. 15 Figure 15: YouChoose home screen ............................................................... 16 Figure 16: YouChoose restaurant suggestion screen ....................................... 16 Figure 17: YouChoose map screen ................................................................. 17 Figure 18: Pseudocode for user-user recommendation algorithm .................... 21 Figure 19: Psuedocode for item-item recommendation algorithm ................... 22 Figure 20: YouChoose sequence diagram ....................................................... 24 Figure 21: Example HTML5 code to obtain user coordinates ......................... 27 Figure 22: Google OAuth sequence diagram .................................................. 29 Figure 23: Example code for instantiating recommendation engine ................ 32 Figure 24: YouChoose class diagram ............................................................. 38 x Introduction: Less is More Software has traveled an interesting path over the past 50 years. Douglas Engelbart proposed in his 1962 paper Augmenting Human Intellect: A Conceptual Framework (Engelbart 1962) that the state of the then-current technology was limiting what software developers could create for users. In turn, if better development technology were available, developers could create better software. As history has shown this has in fact been true: software now is far more complex, filled with features, and autonomous. The advent of integrated development environments, development frameworks, and Rapid Application Development tools has enabled developers to build software that has every feature anyone could dream of. (Newman 1982) This has turned into something of a problem. Today’s software now has more features, options, user preferences, and choices than ever before. Products attempt to include all the features of their predecessors, as well as those of competitors, all while introducing yet more features. This focus on the quantity of features has resulted in bloated products that are cumbersome to use, simply because of the sheer volume of choices that a user must make to navigate through it. While this trend has been marginally mitigated through improvements in the overall user experience, such as utilizing larger and even multiple displays, mice with multiple dedicated buttons,