>> Christian Konig: Okay. Thank you, everyone, for... to introduce Arun Kumar from the University of Wisconsin where...

advertisement
>> Christian Konig: Okay. Thank you, everyone, for coming. It is my great pleasure
to introduce Arun Kumar from the University of Wisconsin where he is co-advised by
Jeff Naughton and Dignish Patel. Arun works on the intersection of data management
and machine learning with the stress on data management. And the research he has
produced should be interesting for various reasons. For one, it's highly decorated,
where we are talking about a SIGMOD best paper award in '14. It is also has been
highly controversial. So his paper submissions to database conferences have caused
all sorts of very strong reactions from the reviewers. And it is also practical. So
various pieces of code that are based on his ideas are actually now shipping with a
number of different products. Make sure that ask him about all of this, but the most
important tidbit that I want to leave you with is what few people know is that Arun is
actually a member of the American screen actors guild and has modeled and starred in
commercials. Again, feel free ->> Arun Kumar: One commercial!
[laughter.]
>> Christian Konig: One commercial. I am exaggerating slightly. But he is a man of
various talents. If this database stuff doesn't work out, Hollywood is option B.
[laughter.]
>> Christian Konig: With that I'll hand it over to Arun.
>> Arun Kumar: Well, Nissan and Amazon, car commercial.
Okay, great. Thanks, Christian and thanks to everyone for coming to the talk and all
the people who are viewing it remotely and as he mentioned my name is Arun Kumar.
I'm from the University of Wisconsin. Today I will talk to you about my research on
accelerating Advanced Analytics. I can talk to you offline about the commercial.
[chuckling.]
>> Arun Kumar: So Advanced Analytics is becoming ubiquitous. For our purposes, I
define Advanced Analytics as the analysis of potentially large and complex data sets
using statistical machine learning or ML techniques. So basically, it is the coming
together of these worlds of data management and machine learning. I approach this
intersection from a data management standpoint.
We all see Advanced Analytics in action practically every day. I don't need to preach
to the choir here. So everyone here already knows about this. Every time you get
rank results from Google's search engine, the output is because of Advanced
Analytics. Every time Netflix recommends a movie to you, that is Advanced Analytics
in action. And the whole world saw IBM's Watson system defeat human champions in
the Jeopardy answering contest. Watson is powered by Advanced Analytics.
The hyper-file success, highly visible success of these applications of Advanced
Analytics has led to an enormous demand in the enterprise domains and again most of
you probably already are familiar with this. Healthcare, retail, insurance, finance.
Even the academic domains, the sciences and the humanities, for products that make
it easier for these users to integrate Advanced Analytics into their applications. Market
research runs estimate that the market size for Advanced Analytics products is set to
grow to anywhere between six to $29 billion per year over the next few years. And no
wonder then that practically all major data management and analysis companies want
a slice of this pie. There are also a slough of startups in this space, and open source
toolkits to integrate Advanced Analytics into their applications.
In spite of all this, as I'm going to explain today, there still remain numerous
bottlenecks in the end-to-end process of building and deploying Advanced Analytics
applications. At the end of the day, my research is about abstractions, algorithms, and
systems that mitigate these bottlenecks in the end-to-end process from a data
management standpoint, thus accelerating Advanced Analytics. And by acceleration, I
mean both system efficiency, the running time of the systems and the algorithms
involved, and human efficiency. The productivity of the data scientist and other
humans that are involved in the process.
I'll start with a high level overview of my research, which is largely been in the context
of two groups of humans in the Advanced Analytics lifecycle. Data scientists who are
tasked with building and deploying machine learning models that analyze data. And
behind the scenes we have the software engineers at companies such as Google,
Microsoft, IBM, Oracle, who are tasked with building implementations of these
maximum likelihood techniques on top of data processing systems such as Relational
Database Management Systems, Spark, Hadoop, and so on.
From conversations with data scientists, engineers, and others at various settings, we
found that there are numerous bottlenecks in their work and throughout the lifecycle of
Advanced Analytics. We wrote about some of these bottlenecks in an ACM Queue
magazine article that was invited to the communications of the ACM in 2013. My work
has largely focused on three classes of bottlenecks.
The first one arises when data scientists have to build ML models and that is the
process of feature engineering. Transforming the raw data into an ML ready feature
vector, there's a lot of work that goes into the space and some of my work has
explored different bottlenecks in the feature engineering space.
The second class of bottlenecks arise when ML models that have been built have to be
integrated into production software and production systems. And the third class of
bottlenecks that I have looked at are from the perspective of software engineers who
have to build ML toolkits that scale these algorithms to larger amounts of data, the
sheer diversity of these ML techniques makes it a tedious and daunting process for
them to build these toolkits and there are some bottlenecks that are addressed in that
space.
To be more precise in terms of the publications that are focused on these bottlenecks,
in the context of feature engineering I have worked on two main bottlenecks. The first
one is when features arrive from multiple tables which requires joins of tables before
ML can be applied. This has been in the context of projects Orion which appeared in
SIGMOD 15 and project Hamlet which is said to appear in SIGMOD later this year.
The other bottleneck that I looked at was the process of exploratory subset selection
where data scientists are often involved in the loop in picking which features they want
to use for the ML task. Often they use environments such as R for this process, and
we focused on elevating this process to a declarative level, but introducing a domainspecific language for feature selection in the R environment and applying database
style and ML optimizations to improve the runtime performance of this process and
increase the productivity of the app data scientists. That is project Columbus that
appeared in SIGMOD 2014. In the context of integrating ML models into production, I
have looked at probabilistic graphical models for optical character recognition or OCR
data. The data scientists want to query in conjunction with structured data in RDBMSs
that as project Staccato that appeared in VLDB 2012.
Finally in the context of helping software engineers build scalable ML implementations,
I took a step towards devising a unified software abstraction, an architecture for in
RDBMS implementations of ML techniques. That is project Bismarck that appeared in
SIGMOD 2012.
To speak of the impact of some of my research, as Christian already mentioned briefly,
project Bismarck, the code and/or the ideas have been shared by numerous
companies including Green Plum, which is now EMC, Oracle, and Cloudear. And we
also contributed the code of the Bismarck project to the MADlib open source analytics
library. Staccato is being used by projects in digital humanities and sciences.
Columbus won the best paper award at SIGMOD, as he mentioned. And Orion and
Hamlet, I am currently speaking to a product group within Microsoft, the online
security. They keep changing their names. They were called the universal safety
platform. Robert McCann is the person. And integrating some of these ideas into the
scope ML environment on top of cosmos and they are exploring integrating that with
their ML pipelines. And also with LogicBlocks, which is the database company that
wants to deploy some of these ideas on top of their production analytics platforms.
For today's talk I am going to focus on the first bottleneck of applying ML over joins of
multi-table data and I'll dive deeper into projects Orion and Hamlet. I pick this
particular bottleneck primarily because of how it, because I think it best illustrates my
earlier point about the coming together of the worlds of data management and
machine learning, how it gives rise to new problems and opportunities. And also the
sheer number of open research questions that this work has led to. Yes, Ravi?
>>: I'm -- [speaker away from microphone.] you keep saying, I hear at least three or
four projects.
>> Arun Kumar: Right.
>>: Is this in context with one system? Is there a reason why everything is in a
project?
>> Arun Kumar: Well, the Orion and Hamlet has been in the context of one system
environment. The Bismarck stuff has been in the context of another system
environment, but in terms of data platforms, a lot of this has been prototype on top of,
say, Postgre SQL or even Hadoop. From a systems perspective, a lot of these ideas
are on top of the same data platforms, but I consider them system because I look at
like end-to-end stack. From the interaction all the way to the execution perspective.
Okay? So here is the outline for the rest of the talk today. I'll dive into ML over joins
and then I'll talk about my future research ideas. A bit of deeper outline for ML over
joins. I'll motivate the problem and set up an example that I'll use as a running
example for the rest of the talk. And I will go into projects Orion and Hamlet. Let's
start with a little bit of background, normalized data. All of us here probably know
normalized data, but just to set up the example and introduce the terms. Many
structured data sets in the real world are multi-table. For example, consider a data
scientist that's dealing with data at an insurance company, like American Family. They
have data about customers which is a table that contains attributes about customers.
The gender, age, income, employer, and so on.
They also have data about employers, companies, universities, and other
organizations, containing data about companies like state versus headquarters, what is
the revenue, and so on. Notice that the employer ID of the employer is an attribute in
the customer table that connects these two tables. In database parlance it's also
called the foreign key and the employer ID is what is called a primary key, also called
just a key in the employer's table.
If we want to get some information about the employer, off a customer, we need to do
this fundamental operational operation called a join that basically stitches these two
records together based on what the employer ID is.
Data of this form and key-foreign key joins are not specific to insurance. They are
ubiquitous, they arise in practically all domains where there is structured data. They
arise in systems where you have data about ratings being than joined with users and
movies. They arise in online security. They arise in hospitality industry. They arise
even in buyer informatics.
So now that you know everything about databases, let's introduce some examples and
set up the terms for machine learning. Here is the same customer's data set. A very
common machine learning task that is used in enterprise setting is customer churn
prediction. Basically, data scientists want to use machine learning to model the
customers to help prevent customers from moving to a competitor. And they start with
these attributes about customers which become the features for the machine learning
algorithm. The age, the employer, and income and so on.
Now, they start with the training data set to train the ML algorithm and they have to
predict the churn attribute, which is based on past customers that have churned or not.
That is also known as the target or the cross label and the job of the data scientist is to
build a machine learning model using this training data set, so logistic regression
model or SVM or neural network and so on.
Here is the twist that causes trouble in this paradise. The employer ID is a foreign key
that refers to a separate table about employers, ML meets the world of normalized
data. Given the setting of this kind, data scientists view these attributes about the
employers as potentially more features for the ML algorithm. And the intuition could be
that maybe if your customer is employed by a rich corporation based in Washington,
they are less likely to churn. And so they basically want to get all these features which
basically forces them to do key-foreign key joins of these two tables in order to gather
all these features for the ML algorithm.
Unfortunately, almost all major ML toolkits today expect single table inputs for their
data training process. This forces these data scientists to do what I call ML after joins.
So what does this ML after joins and what is the problem? Here is an illustrative
example for the customers and employers table that some representative number of
customers and employers, 100 million customers, 100,000 employers, ten features,
fully features. The feature vectors of the employers are shown with different patterns
over here. You have this key-foreign key join. The input could be, say, hundreds of
gigabytes.
But after the join the input blows up to several terabytes. This is because the join has
introduced redundancy in the data. Notice that these vectors about Microsoft are
repeated for every customer that is employed by Microsoft. Now, in many cases this
blow up in storage is actually a major issue. In fact, in one example with one of the
product groups within Microsoft, they actually encountered this problem when they
were doing Web security-related ML applications. It even occurred to the customer of
LogicBlocks. They mentioned that they are joining five tables and the data blew up
over an order of magnitude. So storage is one of the key bottlenecks that ML after
joins encounters. You have to have extra storage space because of these ML toolkits.
There's also redundancy in the data which causes redundancy in analytics
computations, or that wastes runtime. In the real world data is rarely static. As you get
more examples, more features, the data scientist now has this additional headache of
maintaining the output of the join and keeping the models fresh, which impedes the
productivity.
Ultimately all of this impedes the exploratory analysis process that is often required for
building machine learning models. Extra storage and wasted runtime are what I call
system efficiency issues. Maintenance headaches and impeding the exploratory
analysis process of what I call human efficiency issues because the data scientists is
spending time on grunt work and thus productivity goes down. And nowadays a lot of
these analytics computations are moving to the Cloud. There every bit of extra storage
and extra computation could incur extra monitoring costs.
To summarize, I introduced the problem of ML after joins, which is a fundamental
bottleneck in the end-to-end process of building ML models. Data in the real world is
often multi-table, connected by key-foreign key relationships. Since most ML toolkits
expect single table inputs, the data scientists are forced to materialize their
[indiscernible] join that concatenate feature vectors from all these tables which leads to
human and system efficiency issues. Yes, Ravi?
>>: Quick question. When you build an ML model, built on the real set or training set.
Aren't training sets much smaller? First question.
And second question, the patterns you explain, right, redundancy. They seem to be
very amenable to comprehension techniques like [indiscernible] input.
>> Arun Kumar: Right.
>>: Why don't I take a denormalized relation and express it.
>> Arun Kumar: Right. Great questions. coming to the first question, is the training
sample, does it have to be smaller than the actual data set? Yes, in many applications
sampling could actually work. But for many of the other ML tasks they actually want to
get, say, the effects that are less likely to occur in a sample. Therefore, they want to
use the whole data set. So there is a spectrum of applications over there. Even inside
a sample, if you have a sample example set, they might be redundancy in the data and
as I'm going to explain there will still be a tradeoff space for some of the techniques I'm
going to talk about where it could still benefit the performance, runtime performance.
Coming to the second question with respect to compression, yes, many of niece cases
these data sets that have redundancy are amenable to columnar compression.
However, that introduces an orthogonal tradeoff space where you now have to tradeoff
operational efficiency for compression, or operate directly on compressed data. One
of the techniques that I'm going to talk about today is sort of a stepping stone to that.
Looking directly at operating on compressed data, how do we integrate these ML
techniques. So that's a nice idea for future work and some of the ideas that I'm going
to explain today are amenable to that as well.
Okay?
>>: I have a quick question on the maintenance. Can you explain that one again?
Because it seems like the maintenance is just like a view of the [indiscernible]. That's
all you need. Is there something more than that?
>> Arun Kumar: Well, yes. Yes and no. It depends on the application and the
environment. In some of these cases they actually produce copies of the data and
they move to different toolkits. So there the infrastructure that we have built in say the
database environment for view maintenance, that gets lost. And, therefore, they have
to manually keep track of where they have the data and how to update the data and so
on. In the database context, we can construct a view of these joins and do the joins
virtually on the fly. I'm going to talk about that as well. Turns out that there is still
computational redundancy if you do the view approach. There's a tradeoff space that
I'll talk about.
>>: Right.
>> Arun Kumar: Okay? To give an overview of my work in my thesis work I proposed
this paradigm of ML over joins to combat this problem of ML after joins. And in project
Orion which appears in SIGMOD 2015 we show how we can avoid joins physically.
Essentially we do not construct a table of the join, we do not need the joins
themselves. We can operate on data exactly as it resides in the multi-table format.
We show how this can help improve runtime performance because the data in the
input of the join could be much smaller, but it produces exactly the same model and
that gives the same accuracy.
This could potentially improve human and system efficiency. Going further, in project
Hamlet, SIGMOD 2016, we show that in some cases you can actually avoid joins
logically as well. What do I mean by that? We can actually get rid of entire input
tables without even looking at them. This obviously runs faster, but I'm going to
explain why it can give very similar accuracy. This could potentially improve human
and system efficiency even further. Moving on, I'll dive into project Orion. In project
Orion our idea to combat the problem of ML after joins is this technique of factorized
learning. And the intuition assemble, we factor ice or decompose these ML
computations and push them down through the joins to the base tables much like how
database systems push selections, projections and aggregates down through joins.
The benefits, we avoid redundancy in I/O because we are not constructing this output
data set. We avoid redundancies in computations. We don't need extra storage
runtime could approve and it could be potentially more data scientist friendly because
they operate run data exactly how it recites rather than on a materialized intermediate
data set.
The question is: Is factorized learning even possible? And in this paper we show that
yes, it is possible at least for a large class of ML models known as Generalized Linear
Models, also known as GLMs that are solved using batch radiant methods.
The challenge is how do we factor ice these GLMs without sacrificing the ML accuracy,
the scalability of this implementations and the ease of development of these ideas on
top of existing data management platforms?
I'll start with some brief background about these GLMs, for those of you who are not
familiar with it. Recall the classification example that I'm using as running example.
Classify customers as to whether they are likely to churn or not. In ML we start the
mapping each customer to a D-dimensional numeric feature vector. In this example
here you have two dimensions. So basically customers are just points. And now
GLMs classify these customers based on a hyperplane W over there. On the one side
are points that basically customers that churn. On the other side are those who do not.
The question is how do we choose a good hyperplane W? In GLMs, recall that we
start with a training data set. That is the input. We have a set of labeled customers.
Those are label points labeled SGS or no, plus or minus. The idea to compute a
hyperplane is to minimize a certain score of the hyperplane on the training data set,
say the misclassification rate. That is essentially a sum of N terms where N is the
number of labeled customers and the function of the inner product W transpose Xi.
That's the distance of the point to the hyperplane. And the class label Yi where Xi is
the feature vector of the I of the customer and Yi is the class table of the customer.
It turns out that the misclassification rate is hard to optimize and thus GLMs instead
use a smooth function of the inner products, W transverse Xi. And depending on what
this function is, we get a different ML model. It is the square distance. It is the popular
least [indiscernible] linear regression model that is used for least trend analysis. It is
the log lost and it is the popular logistical regression classifier. If it is hinge loss, it is
linear SBM and so on.
So basically, the takeaway here is all of these ML models have the same common
mathematical structure, but there is this minimization model problem with the sum of N
terms and the function of the inner product of the transverse Xi.
>>: So there are SBMs with other kernel functions?
>> Arun Kumar: Right.
>>: Then that will not work, right? Your whole approach will not ->> Arun Kumar: That's a good question. It depends upon the structure of the kernel.
If the kernels operate on the inner products, then some of these techniques that I talk
about can actually apply there as well. But in this particular work we focused on GLMs
and therefore we only deal with linear SBM views for generality sake here.
Okay. So how do we do this minimization? So in this technique called gradient as
send dent I'll give some background about. We need to get to the optimal hyperplane
W that minimizes this function, which is also known as the loss function or L of W. And
it turns out that the loss function for GLMs is a ball-shaped curve formerly known as a
convex function. And the optimal is essentially the bottom of the ball. That is some
separating hyperplane in the point space. In general, the loss function is not closed
form. And thus, people use iterative solution known as gradient descent, where the
idea is simple. You start with some value W, compute the gradient at W, and the
gradient is essentially the generalization of the slope to multiple dimensions. And you
move in the opposite direction of the gradient, the descent. And alpha is the step sized
parameter that controls the, how much you move in the opposite direction. To give an
illustration, we start with some W0. That is some separating hyperplane over there.
We do one pass over the data set. Basically look at all the points and compute the
gradient. Take a step in the opposite direction. We get to a new model, W1. Do one
pass over the data. Compute the gradient. Move in the opposite direction. And keep
doing this iteratively until you get closer and closer to the optimal. So this is basically
the BGD technique. What does it do today in the context of -- yes?
>>: [speaker away from microphone.] single pass over the entire table?
>> Arun Kumar: Yes.
>>: And how many passes typically does it take to converge?
>> Arun Kumar: It depends. It depends on the data set and the accuracy desired by
the data scientists. In practice I have seen they run like 20 to 40, 50 iterations?
>>: So then the question of the cost of just joining the key-foreign key, is that a
bottleneck in the larger process? Have you ever heard of 40 passes?
>> Arun Kumar: I'll explain some of the experimental results, with breakdown of what
is the runtime of the join. It turns out that the redundancy introduced by the join is
often the dominating factor for that. Okay?
Okay. So recall that we simply run BGD on the concatenated feature vector if you
want to do ML after joins. You have features from customers, tax next to features from
employers. This is the expression for the loss. Take the first iterative. That's the
expression for the gradient. It is also a sum of N terms with the scaler function G and
you scale the feature vectors Xi.
Notice that the gradient Nabla L, the model or the hyperplane W, and the feature
vector Xi are all D-dimension am vectors, but D is the total number of features.
So how does this work? We start with the input of the join to the join, get the output of
the join. Don't forget about the input. Start with the initial model W0. One pass over
the data. You get the first gradient. You update the model. Next pass over the data,
get the next gradient. Update the model. And proceed iteratively.
So basically BGD after joins, you physically write the output of the join and then you do
one scan of the output table per iteration. What does factorized learning do? Recall
that our goal was to push computations to the base tables and our intuition is simple.
You split up the computations on the two feature vectors from the two tables, XC and
XE.
This is the expression for the gradient. The inner product can be rewritten as a sum of
inner products over the customer and employer features and the inside is that a sum of
sums is still a sum. Thus we can do one pass over the employer's table to precompute
the partial inner products over the employer features, use that when we do a pass over
the customers table to reconstruct the full inner products. However, we run into this
challenge of how do we scale the feature vector of the entire feature vector for every
customer? Turns out that one pass over each base table may not be enough. We
need to save some statistics and exchange them across these tables and reconstruct
the full gradient. So how does this work? So here is the output of the join. Get rid of
the output table. Get rid of the joins. You start with the initial model. You chop up the
coefficients or coefficients over customer features and coefficients over employer
features. One pass over the employers table. You get some statistics and if you're
curious, these are basically the partial inner products per employ ID. Use those
statistics to do one pass over the customers table and we get a portion of the gradient.
We also get some statistics over the customer's table. If you are curious, these are
basically the group by sums of the scaler function G per employer ID. Use those
statistics, do a second pass over the employers table and we get the remainder of the
gradient. Stick these two vectors together. That's the full gradient. Proceed and
update the model and go ahead to the next iteration.
So basically factorized learning requires one pass of customers and two passes over
employers per iteration. And it completely avoids the need to join these two base
tables. Now, yes, Vic?
>>: Can you have sort of data features that require combining some columns from the
factor [indiscernible] dimension.
>> Arun Kumar: Yes.
>>: Like a more complex [indiscernible] in that case, are the technique still
[indiscernible]?
>> Arun Kumar: That's a great question. You are basically talking about featurefeature interactions. Now, there are methods that are called second order methods
like Newton's descent, where you actually construct the Hessian metrics that has pairwise interactions among all features.
Turns out that the factors learning technique that I talk about here for linearity extends
to that technique as well. However, there is a tradeoff in terms of the runtime
performance. That tradeoff space looks a little bit different than what it looks like for
here. So in terms of feasibility, yes, it's possible. But in terms of efficiency, the
tradeoff space is a bit different.
Okay? So now I talked about the algorithm when we wanted to work in practice there
are some challenges that arise when you want to implement it on a real system. What
is the statistics that I talk about over per employer ID do not fit in the aggregation
context memory. And how do we implement this on top of existing data processing
systems without having to change the internals for ease of deployability?
For the first one we go into the details of a partitioning based approach in the paper
where we stage the computations of different portions of these statistics and stitch
them together to reconstruct the full gradient. And for the second one we use the
abstraction of user defined functions, specifically used to define aggregate functions
that are available in practically all major database systems, as well as on high
[indiscernible].
So how does this work in practice in terms of efficiency? Oh, yes, Donald?
>>: It only works for key-foreign key joins, right, [indiscernible] need to join between
the two tables?
>> Arun Kumar: There are two aspect to it. In this particular paper we focused on new
key-foreign key joins because they are very common and we thought that would be
nice. And in terms of applicability of this technique to general joins where you can
have the full cross-product appearing, it is technically feasible, but you need an
identifier, [indiscernible] identifier that needs to be added to the statistic because the
attribute, joining attribute is no longer the primary key in one of the tables. So we
haven't looked at it in this paper, but conceptually there is nothing that prevents us
from extending to it.
Okay? So what about system efficiency, is it actually faster? We've done an extensive
empirical analysis in the paper and I'm going to give a snapshot of one experimental
result here. We implemented all these techniques as user defined functions written in
C on top of the Postgre SQL open source database system and thus our experiments
were single node with 24 gig RAM. We synthesized data sets that resembled of some
the number of tuples, the number of features we saw in practice. Here we have
customers with 150 million tuples, employers 10 million tuples. We ran logistic
regression with batch gradient descent for 20 iterations and I'm going to show two
things. The storage space consumed throughout the process of learning and the
runtime on the Y axis. The input data set, the customers and employers together, is
about 52 gigabytes. BGD after join is over there. They require about 20 gigabytes of
storage space. Factorized learning in contrast does not require any extra storage
space. It basically, there's a gap of 217 percent in terms of runtime -- in terms of
storage space. And in terms of runtime the gap is 334 percent.
And to breakdown the runtimes as Ravi asked earlier, basically the after joins spends
19 percent of its are you positive time in constructing the [indiscernible] of the join and
13 minutes per iteration of BGD. In contrast, factorized learning you avoid the joining
time and the runtime per iteration is about five minutes because it operates on the
smaller data as the input of the join.
Now, of course, all of these relative runtime numbers depend on several factors and
these are the number of tuples, the number of features, how much memory the system
has, the number of iterations and the degree of parallelism and so on. And we have
done an extensive sensitivity analysis to all of these factors in the paper. Overall, it
turns out that factorized learning is usually the fastest approach but not always. There
are some cases where the BGD after joins approach could be slightly faster and we
devised database style cost models for the I/O costs and the CPU costs of this
technique that automatically picks the fastest approach on a given instance of the
input.
There are more details in the paper and I would be happy to chat with you offline about
it. We give a proof for why the accuracy of the BGD technique is not affected and why
we get exactly the same model with the factorized learning. There are other
approaches to approach larger than memory scale that we discuss and the tradeoffs
based there. And the question about the views turns out that I/O relevancy can be
eliminated if you use views but computational redundancy still exists and thus it could
be slower than factorized learning in many cases. And we also extend all of our
techniques to the parallel chat, nothing parallel in the distributed environment and
prototypes offer ideas on high even Hadoop and lessons park. We extended this to
multi-table joins, specifically star joins, but the extension is trivial to snowflake joins as
well.
Yes?
>>: Are you going to talk about SGD?
>> Arun Kumar: Great point.
>>: Okay.
>> Arun Kumar: Such a theory also extended our ideas to GLMs. So using SGD,
stochastic gradient descent as well as coordinated descent methods. We also
extended it to probabilistic classifiers like naive base and decision trees and also to
clustering techniques such as K-means. A lot of this is work done with Masters and
undergrad students. Basically I could off load some of these technical work to them
and focus on newer ideas because I didn't want to focus on extensions of this directly
myself and I focused on the newer idea project Hamlet that I'll talk about next.
I'm also working on extending the idea of factorized learning to linear algebra so that
we can generalize it to any ML computation that is expressible in linear algebra, and
the input of the join will be automatically basically given a linear algebra script that
operates on a matrix that is the output of the join will produce a system that will
automatically rewrite it to a script that operates on the input of the join.
Yes?
>>: Just quickly, for these extensions are you seeing similar runtime [indiscernible]
>> Arun Kumar: It depends. It depends on the technique. It depends on the data
parameters. It turns out that for stochastic gradient descent there is no computational
redundancy in the in-memory setting because the model changes after every example
and for coordinate descent it could be that certain overheads imposed by the columnar
access patterns. We looked at it in the context of column stores and the tradeoff
space looks a little bit different for each of these techniques. Some of the probabilistic
class version clustering, it's very similar to BGD.
Yes?
>>: I guess as part of that SGD, it seems like you don't get the computational gain.
Then if you're doing it on a view you wouldn't have I/O gain either. I was curious, did
you find a gain at all?
Yes. It turns out for SGD since we don't have computational redundancy, the only
thing that matters is the data redundancy. The I/O redundancy. So in order to avoid
construct nail [indiscernible] join we say you can do a hash table and you can do a
view, basically an index hash join and the challenge there, what if the hash table
doesn't fit in the memory? Then you need to partition the data but that scrambles the
ordering that you need for SGD which is very sensitive to the order in which you
access the data. Now it introduces a new runtime accuracy tradeoff. We are looking
at some of the issues in this tradeoff. Things like what if the foreign key is high
correlated with the class label and those sort of issues. So you can expect a paper
about that pretty soon. But I'm happy to chat with you offline with you about more
details if you're interested.
Okay?
In short, a sum of sums is the same sum factorizing a voids repeating sum. So loan
after joins no more to loan over joins so for. That is project Orion in one stanza.
Moving on. I'll dive into project Hamlet.
Recall the same running example. Customers referring to employers. Here is an
observation. Given the employer ID, all the features of the employers are fixed. So do
we really need the statant revenue features if you know the employer already that is
already present in the customers table? There is this notion of feature redundancy in
the information through literature. And we can show formally that given the employer
ID, all the employer features are redundant. This motivates us to basically consider
the idea of omitting all those features. That is, avoiding the join logically. In short,
avoiding the join. We use the foreign key employer ID as a representative for all the
employer features. Thus, we get rid of that table. However, there's also this notion of
feature relevancy. Certain features of the employers could be highly predictive of the
target, in this case the churn, in which case we might actually want to bring it back and
let the algorithm decide. So oops, we need the join.
You might be wondering what is the big deal? Why do we need to think of avoiding the
join? Why not just use the feature selection technique? These have been studied for
decades that manage this redundancy relevancy tradeoff. We can just apply that in
this context. Well, in one word, the answer is runtime. But here is a brief background
about what is feature selection to do if you are not familiar with it. It is essentially a
method to search the space of subsets of features and update, obtain a subset that is
probably more accurate or more interpretable. And there are various algorithms for
feature selection, wrappers, filters, embedded methods. One of the most importance
lar ones is forward selection where you start with a single feature in your set and you
compute the prediction or the generalization error, the desk error. And then you keep
adding one feature at a time depending on whether the test error goes down or not.
Backward selection is the reverse. You start with your entire set of features and you
keep dropping one at a time based on whether your test error goes down or not.
There are filter techniques that rank features. There are embedded methods like
regulation with L1 or L2 norms.
Coming back to the question of why bother avoiding the join? Well, if you avoid the
join you reduce the number of features that you give as input to these algorithms which
reduces their [indiscernible] space potentially improving their runtime.
Basically we are short circuiting the feature selection process using database schema
information. The key-foreign key relationship. Million dollars question: What happens
to accuracy? To understand the effects of avoiding the join and accuracy, we need to
understand the bias variance tradeoff. I'm going to give a little bit of background here.
Learning theory tells us that the test error of a classifier can be decomposed to three
components: The bias, the variance and the noise. The bias, also known as the
approximation error, again these are informal explanation, is sort of a quantification of
the complexity of the classifier hypothesis space. Models that are more complex tend
to have lower bias.
The variance is a characterization of the instability of a classifier to a particular training
data set. Models that are more complex tend to have higher variance fixing the
training data set and fixing the model if you give fewer and fewer training examples,
the variance tends to go up.
The noise is a component that no model can mitigate because of unobservable data.
And traditionally the bias experience tradeoff is illustrated as follows in ML. As the
model complexity keeps going up for a fixed training data set, the training error keeps
going down. But the test error goes up beyond the point. On the left is a situation of
high bias and low variance due to low model complexity. On the right is a situation of
low bias, high variance because of high model complexity. Situations with high
variance are also co-locally called over-fitting.
So the key question for our work now becomes: What is the effect of avoiding the
join? That is, omitting the feature vector about the employers on the bias and the
variance. We did an applied learning theoretical analysis of avoiding joins and bias
variance. I'm going to give a brief summary here. The effect on bias. So here is the
full feature vector. We renamed the employer ID as FK to be generic and without loss
of generality assume for now that the customer feature set is empty. So we have this
reduced feature vector. The classifier that we learn is essentially a prediction function.
It is a function of the feature vector. And HX is the hypothesis base of all possible
classifiers that you can build based on the feature vector X.
We show that this hypothesis base does not change if you omit the employer features
in this case. Basically, HX equals to HFK. In a sense, this learning theory result is
equivalent to the earlier information theoretic result that I mentioned about the
employer features being redundant.
And what it basically leads to is that if you avoid the join -- oh, and if you actually avoid
the foreign key and use the employer features instead it turns out that the hypothesis
space can actually shrink so basically what this leads to, if you avoid the joins the bias
is unlikely to grow up. If it's not likely to go up, then we don't need to worry about the
bias. So however, it actually turns out that for some popular clarifiers like logistic
regression and naive base, the bias can actually go down. So what happens to
variance? So if the hypothesis space is unlikely to change, does that mean the
variance is unlikely to change? The short answer is no. And the key insight here is
that feature selection may or omit certain features in the new vector. To understand
this, here is an example. Here is your full feature vector and again without loss of
generality, assume the customer feature set is empty. We have this reduced feature
vector. And suppose I give the following true concept that generates the data that is
sort of the worst case scenario for avoiding the join. Suppose the true concept is as
follows: If the state of the employer is Wisconsin, then the customer is unlikely to
churn. Otherwise they are likely to churn.
If I generate thousands of examples based on this true concept and give that as input
to a feature selection method, what is the likely output feature subset? It is highly likely
to be state. And the key insight here is that in general, the domain of the foreign key
could be far larger than the domain of the features it refers to. There are only 50
states. There could be millions of employers. To understand this, here is an
illustration. This is the true concept. And the hypothesis space of classifiers built
using the state features are say encompasses the true concept. But if you use the
foreign key, the hypothesis space is far larger. Notice that we already showed that
HFK equaled HX. Thus if you use the foreign key you would end up with higher
variance compared to the State. However, avoiding the join has forced us to use the
foreign key as a representative of the state feature, which leads to the result that avoid
can joins could increase the variance.
In short, we ask the question: What happens to the bias in variance if you avoid the
join? And are [indiscernible] analysis suggests that avoiding the joins is not going to
increase the bias but it could increase the variance. This is a new runtime
performance accuracy tradeoff in the ML setting using database schema information
and we asked how can we help data scientists exploit our theory of this tradeoff in
practice? Our idea is to devise practical heuristics that help the data scientist bound
the potential increase in variance. And they can now apply a threshold and see if it is
above a certain threshold it is too unsafe, I'm not going to avoid the join. I call this
process avoiding the join safely.
The challenge is how do you even obtain a bound to avoid join safely? There is no
precedent for this. Well, it turns out there are certain bounds in learning theory that we
can use. These bounds are bounds on the absolute variance based on the
[indiscernible] churn of the VC dimension of a classifier and essentially you can think of
it as a quantification of the complexity of a classifier's hypothesis space. Models that
have higher VC dimension tend to have higher variance affecting the training set.
There are several bounds in learning theory using the VC dimension on the variance.
We apply a standard bound from Shy and Shy's popular learning theory textbook
combined with [indiscernible] about the growth function. The expected test error and
the expected training error. The difference is bounded by this function of VC
dimension we. The number of training examples N and the failure probability delta.
And this is for training data sets of size N which are exam examples are IID distributed,
independent and identically distributed. Now, here is the catch. These bounds are on
bounds on absolute variance. What we need is a bound on the increase in variance.
And this leads us to the heuristic, the ROR rule where our intuition is that the increase
in bound caused by the increase in VC dimension is an indicator of the risk of avoiding
the join and we define this quantity Risk of Representation, ROR, which compares the
hypothetical best feature selection output that you can get after avoiding the join,
versus what you can get with avoiding the join. That is this quantity over here. There
are three new terms. VS is the VC dimension of the best classifier that you can get
after avoiding the join. V no is the other one. And delta bias encodes the difference in
the bias. But now here is the problem. VS, V no and delta bias are impossible to
know a priori in general because they require prior knowledge of the true concept. If
you already know the true concept, you probably don't even need machine learning.
How do we overcome this conundrum? Our idea is to upper bound this quantity ROR
to eliminate these terms that require prior knowledge of the true concept and the upper
bounding it, we make it more conservative. In a sense that it's unlikely to avoid joins,
where if you avoid them the error shoots up. But it is likely to miss certain
opportunities to avoid joins.
So we upper bound the ROR. The details are available in the paper. Essentially for
VC dimensions that are linear in the number of features, and this includes popular
classifiers like IU base and logistic regression, the ROR can be upper bounded as
follows. We have these two new terms over here. TFK is the domain size of the
foreign key, the number of employers. And QE Star is the minimum domain size of the
features in the employer's table. And the ROR rule now essentially says if the RH over
here is less than some threshold epsilon, it is safe to avoid the join.
Now, we looked at this and we thought -- oh, yes?
>>: I want to make sure I than. That's the single feature with minimum [indiscernible]
>> Arun Kumar: Exactly, it's the domain size of the smallest ->>: The smallest domain feature, okay.
>> Arun Kumar: Okay? We look at this and thought it is still so complex. Can we
simplify it further to help data scientists. That's where we came up with the tuple issue
rule or the TR rule where the idea is to eliminate the need to even look at the employer
features. Basically we want to get rid of that second term over there.
Define the tuple issue, after the issue of the number of examples and to the domain
side of the foreign key, DFK. That's that quantity over there. In total it's just the
number of training examples, the number of tuples in the customer's table to the
number of employers. That's the domain set of the foreign key. That's why I call it the
tuple ratio. Now, if the domain size as to foreign key feature is much larger than the
minimum domain size of the feature in the employer's table which is almost always the
case in practice, then for reasonably large tuple ratios it turns out that this bound
becomes linear in one area squared of tuple ratio. Flip it over and take the square,
upper bound becomes the lower bound and we end up with the tuple ratio rule which
essentially says if the tuple ratio is greater than some threshold Tao it is safe to avoid
the join. Notice that this is even more conservative than the ROR rule. So after this
long journey through the wonderful world of learning theory, we come back to this
stunningly simple tuple ratio rule that only uses the number of tuples in these two
features to help us avoid joins safely in this ML context.
So even if you have a million features about the employers, it is possible to safely
discard them without even looking at them. So does this work in practice? We ran
extensive experiments with real data sets. I'm going to give a snapshot here. We
tuned these thresholds for these rules using simulation study. And it turns out that the
tuple ratio of 20 is good enough to decide whether a join can be avoided or not. Notice
that this simulation needs to be done once per VC dimension expression, not once we
are data set as you need to do for hyper parameters in machine learning. And the
tolerance that we set for the set error was .001.
We use real data sets. There are three here. There are more in the paper. These are
from car go. All of these are classification tests. In the Walmart data set we want to
predict the number of sales per Department in the store by joining data about sales
with stores and weather indicators. And the up data set we want to predict the ratings
of businesses by users by joining data about ratings with users and businesses.
Flights is a binary classification task where we have data about flight routes and we
want to predict if it's code share or not by joining data about other routes with airlines
and airport information.
We applied a standard of off the shelf classifier IU base which is very popular and
combined it with popular feature selection methods like forward, backward, filters, and
so on. And we used the standard hold out validation methodology to measure
accuracy. 50 percent of the train label set was set aside for training. 25 percent for
validation during feature selection, and 25 percent was set aside as the final hold out
test error which is the final indicator of accuracy. Yes?
>>: Do you have domain [indiscernible] in every foreign key in your training set?
>> Arun Kumar: That's a good question. So in this particular example the domain of
the foreign key is defined by these tables over here. Each individual example of
foreign key instance may or may not occur in a particular training sample. So we use
smoothing to basically figure out what value should be assigned to keys that do not
arise in the training example. So the domain is known. Most of the foreign key values
can occur in a training sample, but for those that do not a arise we use Laplacian
smoothing.
So what are we comparing? Input all the features to the feature selection method.
Versus avoid those features that the TR rules says are safe to avoid. So does the TR
rule predict correctly? That's what we want to check. Notice that this is orthogonal to
the earlier work on project Orion where we worried about physical joins here. All the
data is joined a priori. We just worried about which features are eliminated. So the
results are in the paper, but here is the snapshot about the results for backwards
selection, I base. The tuple ratio rule is applied on a per join basis. So the joins are
decided independently.
If you use all the features as input on the Walmart data set, the error for the predicting
the department wide sales is .8961. This is the root mean square error with one to
seven levels. Does the tuple ratio rule avoid the join with stores and with weather? It
says that both joins are safe to avoid. What is the error if you avoid the stores? What
is the error if you avoid weather? It turns out that the error is .8910. Notice that lower
error is better, but in this case it is not significantly higher. Therefore the TR rule got it
right on both these cases. It is safe to avoid. Thus, the overall error by avoiding both
of these two tables is .8910. However, on the yelp data set, the error with all features
as input, the RMSE for levels one to point is 1.1330. Two tables, the TR rule says
neither of them is safe to avoid. If you avoid the users, the error shoots up to 1.21. If
you avoid the businesses, the error shoots up to 1.24. Therefore, the TR rule got it
right in both cases.
They are not safe to avoid.
And the final error is, of course, the same as the original error because all features are
being used.
On the flights data set the error is discrete 01 loss because it is a binary classification.
It is .1930. Three tables, TR rule says airlines are safe to avoid but not the airport
tables. But if you avoid even of these tables, turns out the error doesn't shoot up. So
basically the TR rule got it right on airlines, but missed the opportunity on airport
tables. The overall error is basically the error that you get by just avoiding the airlines
table. Notice that these are the examples of the missed opportunities that I mentioned
because these rules are conservative. And thus, there is scope for devising less
conservative rules here.
What happens to the runtime? On the up data set there is obviously no speed up
because no joins are avoided. On the flight data set by avoiding this particular tables
features, the speed up was a modest two times. But on the Walmart data set the
speed up was 82 times.
>>: As compared to Orion?
>> Arun Kumar: Sorry?
>>: As compared to Orion or ->> Arun Kumar: This is speed up Orion, so it is speeding up all features.
>>: [speaker away from microphone.]
>> Arun Kumar: So everything is physically joined but we now give only the features
from the sales tables and omit the features from these two tables.
>>: But the speed up, I mean, there's a difference if you apply Orion, the physical
draw on it would be faster?
>> Arun Kumar: It could be faster, yes.
>>: So is this the 82 of Orion or over ML after join?
>> Arun Kumar: It is ML after join. So you construct the full table and omit the
features that the TR resume says it is safe to implement. Yes, integrating those two
could give up more speed up, yes.
Okay? So overall we had seven data sets that we measured in the paper. Fourteen
joins. Turns out that the TR rule correctly avoided seven out of the 11 joins that are
safe to avoid, but missed president opportunity on four joins an it correctly did not
avoid three joins that are not safe to avoid. And the speed-ups range from no speedup because no joins were avoided all the way to 186 times.
Yes?
>>: Does this change significantly if you would, don't use the one simplification that
actually leads to the simple TR rules, that is to have the more complex formula?
>> Arun Kumar: Great point. Next slide.
[chuckling.]
>> Arun Kumar: So turns out that the results are the same for logistic regression with
L2 and L1 as well, but it's also the same with the ROR rule that you asked. Basically,
it turns out that the way we simplified the ROR rule is in a way that is rarely reflected in
the real world data set. TR and ROR somehow give the same results even though
they are vastly different in terms of how conservative they are. It turns out that the
accuracy can actually increase by avoiding the joins in some cases and dropping the
foreign key causes the accuracy to drop significantly in many cases because the bias
shoots up.
And we also show the details of the simulation study that goes into how we tune these
thresholds. And finally we also handle cases where there are skews in the foreign key
distribution. Foreign key skews are a classical problem in the database world for
parallel hash joins and so on and we present the first results of the implications of
foreign key skews for ML accuracy.
In short, to join or not to join, that is the question. Tuple ratio rated coin, use at your
discretion. That is project Hamlet in short.
To summarize, I presented to you the problem of ML after joins. The data scientists
are often forced to construct the output of the join because data in the real world is
often multi-table connected by key-foreign key relationships, but most ML toolkits
expect single table inputs. Materializing the [indiscernible] of the join leads to human
and system efficiency issues. And project Orion, I showed how we can avoid joins
physically, only to get the output of the join. No need for the joins.
ML can operate directly on data exactly as it resides. Makes it run faster in many
cases and yields exactly the same accuracy, improves human and system efficiency.
In project Hamlet we went one step further to show how we can avoid joins logically in
some cases. Basically get rid of entire input tables without even looking at them,
which makes these techniques run faster, but explains why they would yield similar
accuracy. Potentially improving human and system efficiency even further.
Moving on, I'm going to comment briefly about my future research ideas. To put some,
bring some perspective into my current work and future work and how they are related,
talked about learning our joins at project Orion. And in the context of feature selection
on joins is project Hamlet, several models are being learned over joins.
It turns out that is part of this larger exploratory feature selection process with data
scientists compare multiple subsets. We talked about that in project Columbus. That
is part of this larger process of feature engineering that I mentioned earlier, where the - excuse me. Where the data scientists convert the raw data into the feature vector we
need for now. That is part of an even larger process, and I promise to stop with. That
it is the exploratory model selection process where basically the task is to obtain a
precise prediction function based on the data set, the raw data set.
For my short-term work future in the next couple of years basically I want to focus on
new extensions and generalizations both on the system side and on the applied
learning theory side for Hamlet, Orion, and Columbus. And for the longer term future
work I want to focus on helping improve these processes of feature engineering and
model selection more generally.
I'll speak briefly about my thoughts on this model selection process, from
conversations with data scientists at various settings, we observe that model selection
is often an iterative exploratory process. Data scientists explore combination of three
things, which I call the Model Selection Triple. What are the features? That involves
feature engineering. What is the algorithm? Is it IU based or district progression or so
on and the hyper parameters for the algorithm?
The data scientists thoughts starts this process by steering and deciding which
combination they want to try out first and then they evaluate the accuracy of this
combination. They execute it on a system, on the data. They get the results, consume
these results manually, often basically figuring out maybe I need to change the
features or maybe I need to change the parameters.
And they proceed with the execution and then consume the results and do this
iteratively.
The bottleneck we observe is most systems today force these data scientists to be on
one of two extremes. Either they force them to do only one combination per iteration,
that is one MST per iteration. Or they tend to cut the data scientist out of the loop and
automate the whole process. Doing one MST per iteration turns out to be too tedious
and painful for these data scientists. Automation works in several applications, but in
many other applications the data scientists do not want to be cut out of the loop. They
want their expertise to be used and they do not want that to be ignored.
And so the question I ask: Is there a more flexible data scientist friendly middle way
possible between these two extremes? We wrote up our thoughts on some of this idea
which is, which appears in a vision paper at ACM SIGMOD Records just a few weeks
ago. This is work in collaboration with Robert McCann, who is part of the security
team I mentioned within Microsoft. And our idea is as follows: Enable these data
scientists to be several logic logically related MSTs together using say a declarative
interface. A higher level interface that does not need them to enumerate these MSTs.
They could link several logically related subsets together or parameters together. And
under the covers, we have a system that generates code and evaluates multiple
models. And we could now apply database style optimization ideas that eliminate
redundancy in computations, materialize intermediate data and so on and thus bring
together techniques from both the ML world and the data management world to speed
up this process.
And ultimately since the system is now more aware of what combinations are being
explored and how they are related, we could apply ideas from the provenance
management literature in the database world to help these data scientists debug these
models and process this information about the process even more effectively, helping
them steer the next iteration better. And so overall, we explain how we can combine
ideas from the data management literature, ML literature, and also human computing
interaction to improve the system efficiency of this process and also the productivity of
these data scientists.
And that's the segue to my concluding remarks about the importance of
intersectionality. I am a data management person and that is my background. But
over the last several years I work closely with people in the machine learning world
and interacted, worked with a lot of ML ideas. As I see it, advanced analytics is really
the coming together of these worlds of data management and machine learning.
Moving forward I would like to continue working in the space of advanced analytics,
building bridges between these two communities because of the sheer number of open
research problems and new opportunities that arise when you take a joint view of
these two worlds and I also would like to explore the interactions with human computer
interaction angles because in many of these tasks the data scientist is often in the
loop. And I would also like to look more closely at application domains where these
advanced analytics techniques are used. I work closely with enterprise data scientists.
Also with Web data scientists. I would like to work with other application domains as
well, to look at what the impact of these advanced analytics techniques are on their
applications.
That brings me to the end of my talk. I would like to thank my advisors, Jeff Naughton,
Dignish Patel and my other mentors, Chris Re' and David DeWitt at the Gray Lab as
well as my coauthors and collaborators. All these systems and all the techniques that I
talked about the code for all my projects are available as open source toolkits on my
Web page. Even the data sets are available. Feel free to shoot me an email if you
would like to talk to me about it offline. I'll stop now and I will be happy to take more
questions. Both here and from the remote audience.
[applause.]
>> Arun Kumar: Thank you. Yes?
>>: Yes. The model selection remind me a little bit of ML base. You didn't mention.
So one question I have is, so first of all, the optimizations you talk about, are those
similar to the ones that ML base talks about, the multi-query optimization running?
That's one question.
The other question is once you are at that level, might that kind of, is that where the
huge cost is? And then maybe some of the things that you were talking about in Orion
and Hamlet become less relevant? Or kind of are they just as relevant in the bigger
context than they are in the smaller?
>> Arun Kumar: Right. So to answer the second question first, Orion and Hamlet and
even Columbus the way I think about them are building blocks for this larger version.
So all of these techniques will contribute to these optimizations framework that I talk
about. And when we take joint view of these Model Selection Triples, new
opportunities arise. Like can we reuse results for our cross models, can we materialize
what sorts of intermediate data sets we need toe materialize? And also interactions
within provenance and optimization become important. Can we basically use small
cross iterations? Can we avoid recomputations if they want to do what if debugging,
those sorts of questions. So the way I look at it, all of these are building blocks in the
context of the model selection optimization.
Now, coming to your first question about ML base, we actually talk about relationship
with ML base in the paper as well. The way we view it, ML basis one way to specify an
interface. They do not go into the feature engineering details like the joins, for
example. They talk about automating algorithm selection and hyper parameter tuning,
which is nice. And so it's closer to one end of the spectrum where you want full
automation. Whereas here we talk about this entire spectrum, full automation all the
way to individual iterations. And bridging the gap between these two extremes and
coming up with frameworks, maybe not one framework but multiple frameworks. ML
base could be one. Columbus is another. There are automated hyper parameter
tuning libraries that can be viewed as basically new interfaces for the small selection
management process. And the term we use in the paper is this could be a narrow
waste or a new class of systems that optimize the model selection process. And
thinking about it in this way enables new interfaces like combining multiple feature
subsets and parameter combinations which ML base doesn't do, for instance.
>>: Would the optimizations be similar?
>> Arun Kumar: Some of them could be similar. Some of them could be different.
Like, for example, in the automated model search they talk about doing batching.
They also do computation sharing. So some of that could be similar, but some of them
could be different. Like when we look at the feature engineering context, the join stuff,
for example, they do not do anything like that.
So looking at the end-to-end process of model selection, some of the optimizations
that we are talking about in this context, some of the ML base ideas could be relevant
here. Then it also opens up a whole new space of new optimization ideas and there is
also like we go into the details in the paper. We categorize it into several categories of
optimization. There we also look at introducing new interfaces for accuracy, runtime
tradeoffs like the Hamlet stuff. Or some of the other warm starting and model caching
and reusing, an those sorts of optimizations.
Okay? Any questions? Any other questions? Any questions from the remote
audience?
>>: Nothing remote.
The one thing that surprised me, though, sort of [indiscernible] provenance
management there. Because ultimately what we are doing -- this may be just a lack of
intuition on my part. One thing that we are doing is, we are selecting models.
>> Arun Kumar: Right.
>>: Or combinations of models, features, and hyper parameters.
>> Arun Kumar: Right.
>>: Now, can you give us some idea how provenance management plays into that?
>> Arun Kumar: Yes, certainly. In the context of the database world for SQL query
processing, people looked at spare provenance, how provenance, why provenance, all
of these sort of models, to debug why certain things are in the input or why things are
not in the output. In the ML context, the debugging we are talking about is why certain
features matter or why certain subsets of examples matter. So these sorts of
debugging questions as to where they need to invest their effort for the next iteration,
they need to get more examples? They need to get more features of certain kinds?
Providing system support for these sorts of questions could be helpful.
Currently often what they do is just through pure intuition or through manual Notes,
they track the changes and they try to figure it out. So there's a low hanging fruit there
which is basically defining provenance for machine learning and then providing these
querying support for the process information. Stack end next stages things like what if
debugging, things like basically recommendations for features like can you use some
past information to make recommendations based on the way it behaved in the past?
Those sorts of questions.
>>: But turn this around. You're saying that you want to have the sense of
provenance management that we have in databases in the context of machine
learning, but you are not saying that the database provenance management
techniques give you like a ML ->> Arun Kumar: Oh, it's the former. Applying the philosophy of the provenance
management work that you see in the database community, bring that to machine
learning. The same techniques, some of them might work. Some of the techniques
can be reused. Some of the techniques need to be devised from scratch. Looking at
this connection, looking at this context I think is a very interesting area.
>>: Okay, perfect. That's where my hang-up is.
>> Arun Kumar: Okay, great. Yes, Vivek?
>>: [indiscernible] and joins. So in many cases, if you want to build a model, you may
not build it on the entire back data, even though one subset is for customers in
[indiscernible]
>> Arun Kumar: Right, right.
>>: So for that purpose, I mean [indiscernible] would join anyhow. And I prefer that
the conditions are under on the dimension tables, right?
>> Arun Kumar: So here in the example, examiners are referring to employers. You
are saying employers based in Washington, something like that.
>>: Correct. Right?
>> Arun Kumar: Uh-huh.
>>: So in that case do you still have -- I have to join as least some of the dimension,
not all of them.
>> Arun Kumar: Sure, sure.
>>: Do you still see a benefit in performance in those cases?
>> Arun Kumar: Right. So is it Orion or Hamlet? Both?
>>: Either.
>> Arun Kumar: Okay. So there are two aspects to this. One is even if we have a
completely denormalized table where everything has been physically written out as a
single table, what we found -- and this is in the context of the Santoku system that I
demonstrated at VLDB last year, it might be worth normalizing that table back to the
multi-table form under the covers without the data scientists having to know, and then
apply the factor learning technique because the per iteration runtime actually be
significantly lower if you do factorized learning and therefore this renormalization can
actually turn out to be beneficial. So that's what we found in the context of Santoku
and that's true both in memory, out of memory, whatever.
But it depend on the model. It depends on the data dimensions and all of those things.
And so the same cost model and the tradeoffs matter.
What is the other question? For the Hamlet stuff, even if the data is denormalized, the
runtime comes from the feature selection computations that you are reducing. So it
doesn't matter if the data is physically joined or not. Hamlet will still be able to give you
speed-up because you are avoiding the computations.
But if you have data access times that matter, then the physical join optimization might
also help.
Okay?
>> Christian Konig: Any last questions?
Nothing online, right?
>> Arun Kumar: I don't see any. No questions yet.
>> Christian Konig: Yeah, it typically doesn't happen. Let's thank the speaker one
more time.
>> Arun Kumar: Thank you for coming, everyone. Thanks, Christian.
[recording concluded.]
Download