DFW Big Data talk on Mahout Recommenders

Preview:

DESCRIPTION

This talk focussed on how to build recommenders using new technology and capabilities from Mahout. The key here is that recommenders can be built much more easily than you might expect.

Citation preview

1©MapR Technologies 2013- Confidential

Introduction to MahoutAnd How To Build a Recommender

2©MapR Technologies 2013- Confidential

Me, Us

Ted Dunning, Chief Application Architect, MapRCommitter PMC member, Mahout, Zookeeper, DrillBought the beer at the first HUG

MapRDistributes more open source components for HadoopAdds major technology for performance, HA, industry standard API’s

TonightHash tag - #dfwbd #maprSee also - @ApacheMahout @ApacheDrill

@ted_dunning and @mapR

3©MapR Technologies 2013- Confidential

Requested Topic For Tonight

What is Mahout? What makes it different? How can big data technology solve impossible problems? How is big data affecting the world?

4©MapR Technologies 2013- Confidential

Also

What is MapR? What is MapR doing? How does MapR’s technology work? How are customers making use of MapR? How can anyone make use of MapR to solve problems?

5©MapR Technologies 2013- Confidential

Oh … Also This

Detailed break-down of a live machine learning system running with Mahout on MapR

With code examples

6©MapR Technologies 2013- Confidential

I may have to summarize

7©MapR Technologies 2013- Confidential

I may have to summarize

just a bit

8©MapR Technologies 2013- Confidential

Part 1:5 minutes of math

9©MapR Technologies 2013- Confidential

Part 2:12 minutes: I want a pony

10©MapR Technologies 2013- Confidential

Part 3:A working example

11©MapR Technologies 2013- Confidential

What Does Machine Learning Look Like?

12©MapR Technologies 2013- Confidential

What Does Machine Learning Look Like?

O(κ k d + k3 d) = O(k2 d log n + k3 d) for small k, high qualityO(κ d log k) or O(d log κ log k) for larger k, looser quality

But tonight we’re going to show you how to keep it simple yet powerful…

13©MapR Technologies 2013- Confidential

Comparison of Three Main ML Topics

Recommendation: – Involves observation of interactions between people taking action (users)

and items for input data to the recommender model– Goal is to suggest additional appropriate or desirable interactions– Applications include: movie, music or map-based restaurant choices;

suggesting sale items for e-stores or via cash-register receipts

14©MapR Technologies 2013- Confidential

15©MapR Technologies 2013- Confidential

16©MapR Technologies 2013- Confidential

Part 1:A bit of math

(the math of bits)

17©MapR Technologies 2013- Confidential

Mahout Math

Goals are– basic linear algebra,– and statistical sampling,– and good clustering,– decent speed,– extensibility,– especially for sparse data

But not – totally badass speed– comprehensive set of algorithms– optimization, root finders, quadrature

18©MapR Technologies 2013- Confidential

Matrices and Vectors

At the core:– DenseVector, RandomAccessSparseVector– DenseMatrix, SparseRowMatrix

Highly composable API

Important ideas: – view*, assign and aggregate– iteration

m.viewDiagonal().assign(v)

19©MapR Technologies 2013- Confidential

Assign? View?

Why assign?– Copying is the major cost for naïve matrix packages– In-place operations critical to reasonable performance– Many kinds of updates required, so functional style very helpful

Why view?– In-place operations often required for blocks, rows, columns or diagonals– With views, we need #assign + #views methods– Without views, we need #assign x #views methods

Synergies– With both views and assign, many loops become single line

24©MapR Technologies 2013- Confidential

Examples

double alpha; a.assign(alpha);

a.assign(b, Functions.chain( Functions.plus(beta), Functions.times(alpha));

26©MapR Technologies 2013- Confidential

More Examples

The trace of a matrix

Set diagonal to zero

Set diagonal to negative of row sums

27©MapR Technologies 2013- Confidential

Examples

The trace of a matrix

Set diagonal to zero

Set diagonal to negative of row sums

m.viewDiagonal().zSum()

28©MapR Technologies 2013- Confidential

Examples

The trace of a matrix

Set diagonal to zero

Set diagonal to negative of row sums

m.viewDiagonal().zSum()

m.viewDiagonal().assign(0)

29©MapR Technologies 2013- Confidential

Examples

The trace of a matrix

Set diagonal to zero

Set diagonal to negative of row sums excluding the diagonal

m.viewDiagonal().zSum()

m.viewDiagonal().assign(0)

Vector diag = m.viewDiagonal().assign(0);diag.assign(m.rowSums().assign(Functions.MINUS));

32©MapR Technologies 2013- Confidential

Clustering and Such

Streaming k-means and ball k-means– streaming reduces very large data to a cluster sketch– ball k-means is a high quality k-means implementation– the cluster sketch is also usable for other applications– single machine threaded and map-reduce versions available

SVD and friends– stochastic SVD has in-memory, single machine out-of-core and map-reduce

versions– good for reducing very large sparse matrices to tall skinny dense ones

Spectral clustering– based on SVD, allows massive dimensional clustering

33©MapR Technologies 2013- Confidential

Mahout Math Summary

Matrices, Vectors– views– in-place assignment– aggregations– iterations

Functions– lots built-in– cooperate with sparse vector optimizations

Sampling– abstract samplers– samplers as functions

Other stuff … clustering, SVD

34©MapR Technologies 2013- Confidential

Part 2:How recommenders work

(I still want a pony)

35©MapR Technologies 2013- Confidential

Recommendations

Behavior of a crowd helps us understand what individuals will do

36©MapR Technologies 2013- Confidential

Recommendations

Alice got an apple and a puppy

Charles got a bicycle

Alice

Charles

37©MapR Technologies 2013- Confidential

Recommendations

Alice got an apple and a puppy

Charles got a bicycle

Bob got an apple

Alice

Bob

Charles

38©MapR Technologies 2013- Confidential

Recommendations

What else would Bob like??

Alice

Bob

Charles

39©MapR Technologies 2013- Confidential

Recommendations

What if everybody gets a pony?

Now what does Bob want??

Alice

Bob

Charles

40©MapR Technologies 2013- Confidential

Log Files

Alice

Bob

Charles

Alice

Bob

Charles

Alice

41©MapR Technologies 2013- Confidential

Log Files

u1

u3

u2

u1

u3

u2

u1

t1

t2

t3

t4

t3

t3

t1

42©MapR Technologies 2013- Confidential

Log Files and Dimensions

u1

u3

u2

u1

u3

u2

u1

t1

t2

t3

t4

t3

t3

t1

t1

t2

t3

t4

Things u1 Alice

BobCharles

u3u2

Users

43©MapR Technologies 2013- Confidential

History Matrix

Alice

Bob

Charles

✔ ✔ ✔

✔ ✔

✔ ✔

44©MapR Technologies 2013- Confidential

Cooccurrence Matrix

1 2

1 1

1

1

2 1

45©MapR Technologies 2013- Confidential

Indicator Matrix

46©MapR Technologies 2013- Confidential

Indicator Matrix

id: t4title: puppydesc: The sweetest little puppy ever.keywords: puppy, dog, pet

indicators: (t1)

47©MapR Technologies 2013- Confidential

Problems with Raw Cooccurrence

Very popular items co-occur with everything– Welcome document– Elevator music

That isn’t interesting– We want anomalous cooccurrence

48©MapR Technologies 2013- Confidential

Recommendation Basics

Coocurrence

t3 not t3

t1 2 1

not t1 1 1

49©MapR Technologies 2013- Confidential

Spot the Anomaly

Root LLR is roughly like standard deviations

A not A

B 13 1000

not B 1000 100,000

A not A

B 1 0

not B 0 2

A not A

B 1 0

not B 0 10,000

A not A

B 10 0

not B 0 100,000

0.44 0.98

2.26 7.15

50©MapR Technologies 2013- Confidential

A Quick Simplification

Users who do h (a vector of things a user has done)

Also do r

User-centric recommendations(transpose translates back to things)

Item-centric recommendations(change the order of operations)

A translates things into users

51©MapR Technologies 2013- Confidential

Symmetry Gives Cross Recommentations

Conventional recommendations with off-line learning

Cross recommendations

52©MapR Technologies 2013- Confidential

For example

Users enter queries (A)– (actor = user, item=query)

Users view videos (B)– (actor = user, item=video)

ATA gives query recommendation– “did you mean to ask for”

BTB gives video recommendation– “you might like these videos”

53©MapR Technologies 2013- Confidential

The punch-line

BTA recommends videos in response to a query– (isn’t that a search engine?)– (not quite, it doesn’t look at content or meta-data)

54©MapR Technologies 2013- Confidential

Real-life example

Query: “Paco de Lucia” Conventional meta-data search results:– “hombres del paco” times 400– not much else

Recommendation based search:– Flamenco guitar and dancers– Spanish and classical guitar– Van Halen doing a classical/flamenco riff

55©MapR Technologies 2013- Confidential

Real-life example

56©MapR Technologies 2013- Confidential

Hypothetical Example

Want a navigational ontology? Just put labels on a web page with traffic– This gives A = users x label clicks

Remember viewing history– This gives B = users x items

Cross recommend– B’A = label to item mapping

After several users click, results are whatever users think they should be

57©MapR Technologies 2013- Confidential

Nice. But we can do better?

58©MapR Technologies 2013- Confidential

users

things

59©MapR Technologies 2013- Confidential

users

thingtype 1

thingtype 2

60©MapR Technologies 2013- Confidential

61©MapR Technologies 2013- Confidential

Part 3:What about that worked example?

62©MapR Technologies 2013- Confidential

http://bit.ly/18vbbaT

63©MapR Technologies 2013- Confidential

SolRIndexerSolR

IndexerSolrindexing

Cooccurrence(Mahout)

Item meta-data

Indexshards

Complete history

Analyze with Map-Reduce

64©MapR Technologies 2013- Confidential

SolRIndexerSolR

IndexerSolrsearchWeb tier

Item meta-data

Indexshards

User history

Deploy with Conventional Search System

65©MapR Technologies 2013- Confidential

Objective Results

At a very large credit card company

History is all transactions

Development time to minimal viable product about 4 months

General release 2-3 months later

Search-based recs at or equal in quality to other techniques

66©MapR Technologies 2013- Confidential

Summary

Input: Multiple kinds of behavior on one set of things

Output: Recommendations for one kind of behavior with a different set of things

Cross recommendation is a special case

67©MapR Technologies 2013- Confidential

Objective Results

At a very large credit card company

History is all transactions

Development time to minimal viable product about 4 months

General release 2-3 months later

Search-based recs at or equal in quality to other techniques

68©MapR Technologies 2013- Confidential

Me, Us

Ted Dunning, Chief Application Architect, MapRCommitter PMC member, Mahout, Zookeeper, DrillBought the beer at the first HUGtdunning@{apache.org,maprtech.com} ted.dunning@gmail.com

MapRDistributes more open source components for HadoopAdds major technology for performance, HA, industry standard API’s

TonightHash tag - #dfwbd #maprSee also - @ApacheMahout @ApacheDrill

@ted_dunning and @mapR