Machine Learning and Apache Mahout : An IntroductionVarad Meru
An Introductory presentation on Machine Learning and Apache Mahout. I presented it at the BigData Meetup - Pune Chapter's first meetup (http://www.meetup.com/Big-Data-Meetup-Pune-Chapter/).
Machine Learning and Apache Mahout : An IntroductionVarad Meru
An Introductory presentation on Machine Learning and Apache Mahout. I presented it at the BigData Meetup - Pune Chapter's first meetup (http://www.meetup.com/Big-Data-Meetup-Pune-Chapter/).
SDEC2011 Mahout - the what, the how and the whyKorea Sdec
Mahout is an open source machine learning library from Apache. From its humble beginnings at Apache Lucene, the project has grown into a active community of developers, machine learning experts and enthusiasts. With v0.5 released recently, the project has been focussing full steam on developing stable APIs with an eye on our major milestone of v1.0. The speaker has been with Mahout from his days in college as a computer science student. The talk will focus on the major use cases of Mahout. The design decisions, things that worked, things that didn't, and things to expect in the future releases.
http://sdec.kr/
This presentation lets you know about Apache Mahout.
The Apache Mahout is a machine learning library and the main goal is to build scalable machine learning libraries.
An introduction to Apache Mahout presented at Apache BarCamp DC, May 19, 2012
A brief introduction to the examples and links to more resources for further exploration.
Mahout is an open source machine learning java library from Apache Software Foundation, and therefore platform independent, that provides a fertile framework and collection of patterns and ready-made component for testing and deploying new large-scale algorithms.
With these slides we aims at providing a deeper understanding of its architecture.
Cassandra Summit 2014: Apache Spark - The SDK for All Big Data PlatformsDataStax Academy
Apache Spark has grown to be one of the largest open source communities in big data, with over 190 developers and dozens of companies contributing. The latest 1.0 release alone includes contributions from 117 people. A clean API, interactive shell, distributed in-memory computation, stream processing, interactive SQL, and libraries delivering everything from machine learning to graph processing make it an excellent unified platform to solve a number of problems. Apache Spark works very well with a growing number of big data solutions, including Cassandra and Hadoop. Come learn about Apache Spark and see how easy it is for you to get started using Spark to build your own high performance big data applications today.
This tutorial gives an overview of how search engines and machine learning techniques can be tightly coupled to address the need for building scalable recommender or other prediction based systems. Typically, most of them architect retrieval and prediction in two phases. In Phase I, a search engine returns the top-k results based on constraints expressed as a query. In Phase II, the top-k results are re-ranked in another system according to an optimization function that uses a supervised trained model. However this approach presents several issues, such as the possibility of returning sub-optimal results due to the top-k limits during query, as well as the prescence of some inefficiencies in the system due to the decoupling of retrieval and ranking.
To address this issue the authors created ML-Scoring, an open source framework that tightly integrates machine learning models into Elasticsearch, a popular search engine. ML-Scoring replaces the default information retrieval ranking function with a custom supervised model that is trained through Spark, Weka, or R that is loaded as a plugin in Elasticsearch. This tutorial will not only review basic methods in information retrieval and machine learning, but it will also walk through practical examples from loading a dataset into Elasticsearch to training a model in Spark, Weka, or R, to creating the ML-Scoring plugin for Elasticsearch. No prior experience is required in any system listed (Elasticsearch, Spark, Weka, R), though some programming experience is recommended.
SDEC2011 Mahout - the what, the how and the whyKorea Sdec
Mahout is an open source machine learning library from Apache. From its humble beginnings at Apache Lucene, the project has grown into a active community of developers, machine learning experts and enthusiasts. With v0.5 released recently, the project has been focussing full steam on developing stable APIs with an eye on our major milestone of v1.0. The speaker has been with Mahout from his days in college as a computer science student. The talk will focus on the major use cases of Mahout. The design decisions, things that worked, things that didn't, and things to expect in the future releases.
http://sdec.kr/
This presentation lets you know about Apache Mahout.
The Apache Mahout is a machine learning library and the main goal is to build scalable machine learning libraries.
An introduction to Apache Mahout presented at Apache BarCamp DC, May 19, 2012
A brief introduction to the examples and links to more resources for further exploration.
Mahout is an open source machine learning java library from Apache Software Foundation, and therefore platform independent, that provides a fertile framework and collection of patterns and ready-made component for testing and deploying new large-scale algorithms.
With these slides we aims at providing a deeper understanding of its architecture.
Cassandra Summit 2014: Apache Spark - The SDK for All Big Data PlatformsDataStax Academy
Apache Spark has grown to be one of the largest open source communities in big data, with over 190 developers and dozens of companies contributing. The latest 1.0 release alone includes contributions from 117 people. A clean API, interactive shell, distributed in-memory computation, stream processing, interactive SQL, and libraries delivering everything from machine learning to graph processing make it an excellent unified platform to solve a number of problems. Apache Spark works very well with a growing number of big data solutions, including Cassandra and Hadoop. Come learn about Apache Spark and see how easy it is for you to get started using Spark to build your own high performance big data applications today.
This tutorial gives an overview of how search engines and machine learning techniques can be tightly coupled to address the need for building scalable recommender or other prediction based systems. Typically, most of them architect retrieval and prediction in two phases. In Phase I, a search engine returns the top-k results based on constraints expressed as a query. In Phase II, the top-k results are re-ranked in another system according to an optimization function that uses a supervised trained model. However this approach presents several issues, such as the possibility of returning sub-optimal results due to the top-k limits during query, as well as the prescence of some inefficiencies in the system due to the decoupling of retrieval and ranking.
To address this issue the authors created ML-Scoring, an open source framework that tightly integrates machine learning models into Elasticsearch, a popular search engine. ML-Scoring replaces the default information retrieval ranking function with a custom supervised model that is trained through Spark, Weka, or R that is loaded as a plugin in Elasticsearch. This tutorial will not only review basic methods in information retrieval and machine learning, but it will also walk through practical examples from loading a dataset into Elasticsearch to training a model in Spark, Weka, or R, to creating the ML-Scoring plugin for Elasticsearch. No prior experience is required in any system listed (Elasticsearch, Spark, Weka, R), though some programming experience is recommended.
This is a tutorial about recommender system for CS410 @ UIUC. It summarize some good research paper about how user profile and tags can improve recommender systems.
ESAB behoort tot 's werelds leidende producenten van Aluminium lastoevoegmaterialen. Ons toevoegmaterialenprogramma - bestaande uit beklede laselektroden, gevulde lasdraden, massieve lasdraden, TIG-staven, lasband en laspoeders - dekt al uw wensen voor alle lasprocessen.
De verpakking is ontwikkeld voor iedere toepassing, of het nu handmatig Tig of Volautomatisch Mig is. MARATHON PAC™ en VacPac™ zijn hier sprekende voorbeelden van.
Voor meer informatie kijk op onze internetsite: http://products.esab.com/nl/Templates/T094.asp?id=35833
Screenshots taken during the develpment of Air Quality Map, a map made from the spatial interpolation of Air Quality Index mesured at Ontario AQ Stations.
Winpot Casino es una de las cadenas de casino más famosas de la República Mexicana.Te esperamos en Casino Winpot para servirte como te mereces.
http://winpotcasino.com.mx/
Beyond EXPLAIN: Query Optimization From Theory To CodeYuto Hayamizu
EXPLAIN is too much explained. Let's go "beyond EXPLAIN".
This talk will take you to an optimizer backstage tour: from theoretical background of state-of-the-art query optimization to close look at current implementation of PostgreSQL.
Cape Town - Bioschemas workshop before the Bioinformatics Education Summit.
Explains schema.org, Bioschemas, TeSS Case study, and the tools and implementation techniques adopters can use
This is part 1 of the tutorial Xavier and Deepak gave at Recsys 2016 this year. You can find the second part http://www.slideshare.net/xamat/recsys-2016-tutorial-lessons-learned-from-building-reallife-recommender-systems
Introduction to Mahout and Machine LearningVarad Meru
This presentation gives an introduction to Apache Mahout and Machine Learning. It presents some of the important Machine Learning algorithms implemented in Mahout. Machine Learning is a vast subject; this presentation is only a introductory guide to Mahout and does not go into lower-level implementation details.
RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning...S. Diana Hu
Search engines have focused on solving the document retrieval problem, so their scoring functions do not handle naturally non-traditional IR data types, such as numerical or categorical. Therefore, on domains beyond traditional search, scores representing strengths of associations or matches may vary widely. As such, the original model doesn’t suffice, so relevance ranking is performed as a two-phase approach with 1) regular search 2) external model to re-rank the filtered items. Metrics such as click-through and conversion rates are associated with the users’ response to items served. The predicted selection rates that arise in real-time can be critical for optimal matching. For example, in recommender systems, predicted performance of a recommended item in a given context, also called response prediction, is often used in determining a set of recommendations to serve in relation to a given serving opportunity. Similar techniques are used in the advertising domain. To address this issue the authors have created ML-Scoring, an open source framework that tightly integrates machine learning models into a popular search engine (SOLR/Elasticsearch), replacing the default IR-based ranking function. A custom model is trained through either Weka or Spark and it is loaded as a plugin used at query time to compute custom scores.
This presentation has been uploaded by Public Relations Cell, IIM Rohtak to help the B-school aspirants crack their interview by gaining basic knowledge on IT.
Hadoop con 2015 hadoop enables enterprise data lakeJames Chen
Mobile Internet, Social Media 以及 Smart Device 的發展促成資訊的大爆炸,伴隨產生大量的非結構化及半結構化的資料,不但資料的格式多樣,產生的速度極快,對企業的資訊架構帶來了前所未有的挑戰,面對多樣的資料結構及多樣的分析工具,我們應該採用什麼樣的架構互相整合,才能有效的管理資料生命週期,提取資料價值,Hadoop 生態系統,無疑的在這個大架構裡,將扮演最基礎的資料平台的角色,實現企業的 Data Lake。
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
8. 8
Algorithms in Mahout – Cont.
• Vector Similarity
– RowSimiliarityJob (MR)
– VectorDistanceJob (MR)
• Other
– Collocations
• Non-MapReduce algorithms
See http://cwiki.apache.org/confluence/display/MAHOUT/Algorithms
9. 9
Mahout Focus on Scalability
• Goal: Be as fast and efficient as possible given the
intrinsic design of the algorithm
– Some algorithms won‟t scale to massive machine clusters
– Others fit logically on a Map Reduce framework like Apache
Hadoop
– Still others will need alternative distributed programming
models
– Be pragmatic
• Most Mahout implementations are Map Reduce
enabled
• (Always a) Work in Progress
10. 10
Prepare Data from Raw content
• Lucene integration
– bin/mahout lucenevector …
• Document Vectorizer
– bin/mahout seqdirectory …
– bin/mahout seq2sparse …
• Programmatically
– See the Utils module in Mahout
• Database (JDBC)
• File System (HDFS)
11. 11
Machine Learning
• “Machine Learning is programming computers
to optimize a performance criterion using
example data or past experience”
– Intro. To Machine Learning by E. Alpaydin
• Subset of Artificial Intelligence
• Lots of related fields:
– Information Retrieval
– Stats
– Biology
– Linear algebra
– Many more
15. 15
More use cases
• Recommend products/books/friends …
• Classify content into predefined groups
• Find similar content based on object properties
• Find associations/patterns in actions/behaviors
• Identify key topics in large collections of text
• Detect anomalies in machine output
• Ranking search results (PageRank)
• Others
17. 17
Approach
• Collect User Preferences -> User vs Item Matrix
• Find Similar Users or Items (Neighborhood-based
approach)
• Works by finding similarly rated items in the user-
item-matrix (e.g. cosine, Pearson-Correlation,
Tanimoto Coefficient)
• Estimates a user's preference towards an item by
looking at his/her preferences towards similar items
18. 18
Collaborative Filtering – User Based
Find User Similarity
1. 如何預測用戶1對於商品4的
喜好程度?
2. 找尋n個和用戶1相似的用戶
且購買過商品4(基於購買
記錄的評價)為用戶n
3. 根據用戶n對商品4的評價,
以相似度為權重回填結果
4. 針對所有用戶組合,重覆
1~3,直到所有空格都被填
滿
Items
User 1
?
User n
回填結果
20. 20
Test Drive of Mahout Recommender
• Group Len Dataset:
http://www.grouplens.org/node/12
• 1,000,209 anonymous ratings of 3,900 movies made
by 6,040 MovieLens users
• movies.dat (movie ids with title and category)
• ratings.dat (ratings of movies)
• users.dat (user information)
21. 21
Ratings File
• Each line of ratings file has the format
UserID::MovieID::Rating::Timestamp
• Mahout requires following csv format
UserID,ItemID,Value
• tr –s „:‟ „,‟ < ratings.dat | cut –f1-3 –d, > rating.csv
23. 23
Recommendation Result
• Recommendation Result will look like
UserID [ItemID:Weight, ItemID:Weight,…]
• Each line represents a UserID with associated
recommended ItemID
24. 24
Collect User Behavior Events
Implicit (Easy to collect) Explicit (Hard to collect)
View Rating (0~5)
Shopping Cart (0 or 1) Voting (0 or 1)
Order or Buy (0 or 1) Forward or Share (0 or 1)
Duration Time (Noisy) Add favorite (0 or 1)
Tag (text analysis)
Comments (text analysis)
25. 25
Process Event into Preference
• Group by different event type, and calculate similarity
based on event types. Ex. Also View, Also Buy..
• Weighting:
– Explicit Event > Implicit Event
– Order, Cart > View
• Noise Reduction
• Normalization
27. 27
Complementary
• Sometimes CF cannot generate enough
recommendation to all users
• Cold start problem
• New user and new item
• Some statistical approaches can be complementary
• Ranking is very easy to implement by MR. Word Count
?
29. 29
Data Process Flow
Front End
Java Script
Event Colloector
(Nginx)
HDFS
Log Parser
HBase
Core Engine
Mahout Job
User Based
Item Based
MR Job
Ranking &
Stats.
Rec API
Item Mgmt.
API
Dashboard
&
Mgmt Console
request
access
log
Preprocess
& Dispatch
Schedule &
Flow Control
Front End
Backend
Admin
30. 30
System Components
• Nginx
– Event Collector & Request Forwarder
• Log Parser
– Preprocess collected log and dispatch log to HDFS
• HDFS
– Fundamental storage of the system
• Core Engine
– Scheduling & Workflow Control
– Job Driver
• Management Console
– Dashboard (PV,UV,Conv. Rate)
– Scheduling, Log Viewer, System Configuration
31. 31
System Components – Cont.
• Recommendation Jobs
– Mahout jobs for CF
– MR jobs for Ranking
• HBase
– Recommendation Result for query
• Recommendation API
– API wrapper for frontend to query result from HBase table
– Handle business logic and policy here
• Item Management API
– API interface for frontend item management
– Allow List, Exception List
32. 32
HBase Table
Table Rowkey Column
CATEGORY CategoryID column=f:id Category ID
column=f:rank ranking by view
column=f:rank_cart ranking by cart
column=f:rank_order ranking by order
column=f:rank_view ranking by view
ERUID_USE
R
ErUid column=f:uid ERUID/UID mapping
USER_ERUI
D
uid column=f:eruid UID/ERUID mapping
SEARCH Keyword column=f:id search ID
column=f:rec item list
36. 36
Tracking Code Snippet
<script id="etu-recommender" type="text/javascript">
var erHostname='${erHostname}'
var _qevents = _qevents || [];
_qevents.push({
${paramName} : '${paramValue}',
...
});
var erUrlPrefix=('https:' == document.location.protocol ?
'https://':'http://')+erHostname+'/';
(function() {
var er = document.createElement('script');
er.type = 'text/javascript';
er.async = true;
er.src = erUrlPrefix+'/er.js?'+(new Date().getTime());
var currentJs=document.getElementById('etu-recommender');
currentJs.parentNode.insertBefore(er,currentJs);
})();
</script>
37. 37
Sample parameters for tracking a "view" action
#
Parameter
Name
Parameter
Type
Sample Value Required
1 cid String "www.etusolution.
com"
Yes
2 uid String "johnny_nien" Yes
3 act String "view" Yes
4 pid String "P00001" Yes
5 cat String Array [ "C", "C00001" ] No, but please
take it as a yes.
6 avl * Boolean(0 or 1) 1 No
Note: Explanation about "avl" will be available later
38. 38
Query Recommendations
<script id="etu-recommender" type="text/javascript">
var erUrlPrefix='${erUrlPrefix}';
var _qquery = _qquery || [];
_qquery.push({
${paramName} : '${paramValue}',
……
});
function etuRecQueryCallBack(queryParams,queryResult) {
// Implement Your Logic Here!!!
}
var erUrlPrefix=('https:' == document.location.protocol ?
'https://':'http://')+erHostname+'/';
(function() {
var er = document.createElement('script');
er.type = 'text/javascript';
er.async = true;
er.src = erUrlPrefix+'/er.js?'+(new Date().getTime());
var currentJs=document.getElementById('etu-recommender');
currentJs.parentNode.insertBefore(er,currentJs);
})();
</script>
39. 39
Sample parameter for Also Buy … (Item
based)
#
Parameter
Name
Parameter
Type
Sample Value Required
1 cid String "www.etusolution.
com"
Yes
2 type String “item” Yes
3 act String ”order" Yes
4 pid String "P001" Yes
5 cat String "C001" No, but highly
recommended
44. 44
Recommender 的轉化率分析
Online Performance Tracking
Item A
Item A
透過點擊
推薦清單
透過主頁或其他所有頁面
PV1, UV1
PV2, UV2
推薦商品點擊率 =
PV2 or UV2
PV1 or UV1
推薦商品轉化率 =
透過
推薦清單
U-Cart 2
UV2 or PV2
**
PV : page view
UV : unique visitor
U-Cart : added to
cart by UV
U-Cart 1
U-Cart 2
Algorithm Benchmark
• Train vs Test (80-20)
• A/B test
45. 45
Summary
• Mahout is very useful if you would like to build a
machine learning application on top of Hadoop
• BUT, a recommendation system is not algorithm only
• DON‟T re-invent the wheels. Leverage mahout and
hadoop
• Put most of your efforts on integration, performance
tuning, and business logic
46. 46
Future Roadmaps
• Offline to online integration -> Offline User Event
Collection
• 360 Degree CRM -> CRM Connector
• Social Recommendation -> Social Connector
• Retargeting -> Customer Behavior Data Warehouse
• Go real-time!
50. 50
Algorithms Examples –
Recommendation
• Prediction: Estimate Bob's preference towards “The
Matrix”
1. Look at all items that
– a) are similar to “The Matrix“
– b) have been rated by Bob
=> “Alien“, “Inception“
2. Estimate the unknown preference with a weighted sum
51. 51
Algorithms Examples –
Recommendation
• MapReduce phase 1
– Map – Make user the key
(Alice, Matrix, 5)
(Alice, Alien, 1)
(Alice, Inception, 4)
(Bob, Alien, 2)
(Bob, Inception, 5)
(Peter, Matrix, 4)
(Peter, Alien, 3)
(Peter, Inception, 2)
Alice (Matrix, 5)
Alice (Alien, 1)
Alice (Inception, 4)
Bob (Alien, 2)
Bob (Inception, 5)
Peter (Matrix, 4)
Peter (Alien, 3)
Peter (Inception, 2)
52. 52
Algorithms Examples –
Recommendation
• MapReduce phase 1
– Reduce – Create inverted index
Alice (Matrix, 5)
Alice (Alien, 1)
Alice (Inception, 4)
Bob (Alien, 2)
Bob (Inception, 5)
Peter (Matrix, 4)
Peter (Alien, 3)
Peter (Inception, 2)
Alice (Matrix, 5) (Alien, 1) (Inception, 4)
Bob (Alien, 2) (Inception, 5)
Peter(Matrix, 4) (Alien, 3) (Inception, 2)
53. 53
Algorithms Examples –
Recommendation
• MapReduce phase 2
– Map – Isolate all co-occurred ratings (all cases where a user
rated both items)
Matrix, Alien (5,1)
Matrix, Alien (4,3)
Alien, Inception (1,4)
Alien, Inception (2,5)
Alien, Inception (3,2)
Matrix, Inception (4,2)
Matrix, Inception (5,4)
Alice (Matrix, 5) (Alien, 1) (Inception, 4)
Bob (Alien, 2) (Inception, 5)
Peter(Matrix, 4) (Alien, 3) (Inception, 2)