>> Vani Mandava: Hello and good afternoon. Welcome,

advertisement
>> Vani Mandava: Hello and good afternoon. Welcome,
everyone. I'm pleased to welcome back here
University of Washington Center for Data Science
Team. We in the Microsoft Research Outreach Team
have been working with them for the past couple of
years on some other projects, as well.
We worked on CRONUS, Zoom, and Academic Search, and
more recently as part of the Azure for Research
program, they were given one of the awards for Azure
for Research, and they're here today to talk about
their work on predicting congestive heart failure
risk of readmission that they're collaborating with
MultiCare Hospital, which is a hospital in the South
Sound region. So there's several of the team over
here, and without further delay, I would welcome them
and ask them to come up and talk to us. Thank you.
>> Ankur Teredesai: Thank you, Vani. My name is
Ankur Teredesai. I'm a professor at the Institute of
Technology in US area, Washington, Tacoma, and I also
manage the Center for Data Science and its
activities.
It's a pleasure to come to Microsoft Research and
give a talk about an extremely important, if not
exciting, area that we are working on, which is
predicting congestive heart failure, risk of
readmission. I will start with a quote and let you
guys guess who might have said it: "When the cost of
health care devastates families and threatens to
bankrupt our enterprises, great and small," this is a
piece of an inaugural address by a president of the
United States of America. Any takers in the local
crowd here on who might have said it?
>>:
Obama?
>> Ankur Teredesai:
>>:
Huh?
So --
He's still trying to fix it, so --
>> Ankur Teredesai: Yeah, so we would all -- the
obvious sort of choice would be Obama, but it's not.
It's actually 1993 inaugural address by Bill Clinton.
And Bill Clinton was one of the first presidents to
mention what -- actually the first president to ever
mention the importance of health care and issues in
health care in an inaugural address. Well, that's as
far as addresses go, but something has to be done
about, you know, health care in our country and we
are all quite well aware of it.
Specifically our focus at the center and through this
initiative of Azure for Research has been to take the
mandates of Affordable Care Act, which translate into
affordable or avoidable costs. And what is important
for us to understand, that readmissions are
avoidable.
Readmissions are, as they're popularly known, as
rehospitalizations, is a term that is used frequently
within the health care community for explaining a
milieu of incidents that happen if the same patient
with one condition gets readmitted again to any
hospital system, they are considered largely
avoidable for chronic conditions. In particular,
30-day admissions contribute to the -- amongst all
readmissions that happen for patients, 20 percent of
them happen within 30 days, and that is the reason
why risk of readmission within 30 days is a very,
very important factor for affordable care.
The second important piece of data on this slide is
that 25 percent out of all readmissions are for
congestive heart failure alone. That means if we
attack this specific problem carefully, then we can
solve a big piece of the puzzle.
Today we'll be talking about several components. I
have several colleagues with me. I will first
present the problem. I will explain what is
predicting of risk of rehospitalization/admission,
how do we propose it as a machine-learning problem,
what did we do about it.
Then we will go deeper into the anatomy of a risk of
readmission model. We will look at what is the
state-of-the-art model looking like today. That will
be done by my colleagues, Senjuti Basu Roy. She will
also explain why it is important not to just predict
the re -- predict whether readmission will happen or
not.
Think about it. It's actually more important from a
patient perspective to predict or to understand what
will avoid the patient from coming back and what sort
of intervention should the clinical care team or the
protocol be followed inside a hospital system in
order to avoid readmissions in the first place
instead of just simply predicting the risk, which may
or may not be actionable. So Senjuti will talk about
actionable interventions.
From there on we will go on a journey to quickly see
what has Azure for Research and this award enabled us
to do which we otherwise would not have been able to
do in such a short amount of time. And we will show
you how our hard work has been accelerated by the
Azure for Research award. We will give you a neat
demo of a deployment that we have actually made in
the MultiCare Health System.
Now, if you think about it, academics are not usually
supposed to deploy anything. We are supposed to
prototype stuff, write some papers about it, and let
it go. But we are very proud to say that the models
that we have actually built are being used to make
clinical decisions in a real-world health care
system, and we feel that that's pretty cool. So we
are here to talk about it.
And towards the end I'll just present a very, very
brief -- I won't take much of your time between Q&A
and all the great work that we have been doing
through this award. Very lightly I will touch upon
our vision for 2015 and what we think is a great
opportunity for cloud-based health care machine
learning.
So congestive heart failure is a chronic condition.
It affects mostly elderly population, but the goal of
the research, somewhere in March 2012, somewhere
around two and a half years ago, we were asked this
question by Dr. Les Reed, who is here in this
picture, can you guys figure out if there is a
protective model that can be built for reducing the
risk of readmission, okay?
And we said, well, in order to build a predictive
model to reduce the risk, maybe we need to first
predict the risk. So we will set it up as a binary
classification problem. We will say will this
patient who has been diagnosed with congestive heart
failure come back within 30 days or not come back
within 30 days. So it's a binary classification
problem.
So as is classic in all academia, three of us who are
assistant professors and associate professors and
researchers set up this problem for our post-docs
[indiscernible] and for our students, and together as
a team we said we can solve this.
Just for those not initiated in machine learning,
here is a very simple flow of how all classification
in machine learning works. Essentially you have a
bunch of patient records. You extract features out
of those records. You also have with each patient
available a class label, readmission or no
readmission.
You train your machine-learning algorithms to look
into that data and features, and out comes a
predictive model. That predictive model can then be
used on a new patient by extracting the feature
vectors again from that new patient, and you assign a
new class label, readmission or no readmission.
So that's pretty simple. Top half tells you how to
build the model. Bottom half tells you how to score
the model or scoring a tuple. Now, remember, the
only reason I bring this up, and it's good to
remember, is today in our deployments on Azure for
Research, this is where it's helping us the most, in
scoring millions and millions and 1monies of events
on the cloud.
We are still doing the machine learning, the building
of the models on traditional, you know, single node
compute infrastructure, but that's where we want to
go next. So when I talk about the end of the
presentation and our slide on our plans, we will talk
about how we want to take the entire process to the
cloud.
And of course, what I said in the previous slide was
here is a nice machine-learning problem.
Unfortunately, the data is not so nice. It's, you
know, health care data. It's extremely messy.
The bulk of the problem in health care is the
complexity of the data, itself, and it took us, as
machine-learning scientists, a huge amount of time to
even extract and understand what congestive heart
failure means and how is it different from cardiac
heart failure, for example. Right?
And how do you extract -- I mean, within MultiCare,
there are 16 data marks, 200 views within each of
them. It's extremely difficult to get all that
information out of transactional systems.
Yes, question.
>>: [inaudible] on previous slide was there any
retraining of the model once you get new data?
>> Ankur Teredesai:
Yes.
>>: Okay. And then second question on this slide,
why would the HIPAA policy act like you guys ran into
any issues for ->> Ankur Teredesai: Very good question. Thank you.
I -- you know, we are -- anyone who touches the data
within the MultiCare Health System is HIPAA
certified. So we had to go through the training. We
had to sign a bunch of forms. It takes three weeks.
So if we onboard a student on to our team today, it
takes us almost three, three and a half weeks to get
them going with the data sets, yeah.
Not just that. We all live in a world of big data,
and I have to mention the word big data somewhere in
my presentation, so this is where it is, and, you
know, out of the three we's of popularly known as big
data, we have for the last three years dealt with
variety and volume, and this is a typical, and we
have not even added multiple other factors, but this
is a typical set of attributes that you are dealing
with when you say congestive heart failure risk of
readmission.
Most of our competitors and most of the other papers
that were published in this space before we started
this work dealt with one or the other siloed
machine-learning framework. So you would have a
model which was purely clinical. It would take a
look at only at the vitals of a patient and predict
the risk of readmission.
What is unique about our solution is that it's
integrative. It takes all these factors into account
and figures out, you know, in a hierarchal multilayer
approach, which Senjuti will talk about, to build a
predictive model.
Initial models were horrible. We spent a lot of
time. So by March 2012 to December 2012 we were just
getting to understand some of this space. We thought
we were great machine-learning people.
Unfortunately, or fortunately, we were humbled by the
amount of rejections we got from the academic
community. Every single paper we sent for almost a
year just got rejected. Nobody wanted to read it, or
at least nobody believed that this could be done in
this way.
Initial modeling [indiscernible] were also not that
exciting. There were other models which were better
than ours, but for some reason or the other,
MultiCare and our sponsors kept faith in us. So
thanks for that and a shout out to MultiCare. Yes.
>>: What is the feature size that we are looking at
and what is the data size when you mentioned big data
on the model?
>> Ankur Teredesai: Yeah. So in terms of
attributes, we have several variety of models. We
built some very simple models for patients to
understand and interact with. Those are like
10-attribute models. For clinicians, there are, you
know, 50-attribute models. We have 64 attribute
models.
And within those attributes, the reason that these
the reason that this attribute set is more than 64
because we also do some feature reconstruction, so
do reduce features and combine them and do a bunch
-is
we
of
things. But our biggest -- or I shouldn't say the
biggest, but the biggest big data model that we have
currently is a 64-attribute model.
>>: And what is the size of the dataset when you
train the mark?
>> Ankur Teredesai: So we have patient records for
the last three years, yeah. So on average you can
think of it like almost 40, 50,000 patients, all the
events, so ->>: And then when you do retraining, you do three a
window or ->> Ankur Teredesai: It depends on which of the
models you are trying to retrain. But we'll go into
the details of that. Okay. Thank you.
Okay. So finally in July 2013, on a nice sunny day,
though it was raining in Seattle, we did manage to
get a really good model. And of course, that led to
some very nice papers. Our current result is around
74 percent, 80 under the [indiscernible] accuracy for
the risk of readmission, and that's the model that we
are using to show you, you know, the demo, and that's
what's kind of deployed on Azure and so on. Okay.
>>:
[inaudible] accuracy, like what is the --
>> Ankur Teredesai: Yeah, we'll go into -- again,
you are just seeing the very, like 36,000 feet. We
are going to go into the deep and we'll explain how
we compute it, yes.
So the next question was formal health care, is this
a prototype, is this academic, or is this a product
that we need to, you know, build and ship and deploy.
And yes, some more papers.
So with that, I will hand off to Professor Senjuti
Basu Roy to take over and go deeper into the anatomy.
Thank you.
>> Senjuti Basu Roy: Thanks, Ankur.
everybody for attending the talk.
And thanks,
So as Ankur mentioned that our initial effort led us
nowhere, so in our post model, we started thinking
and digging deep, what went wrong, what we did not do
right.
And we realized that we are rather treating a very
specific problem in a very generalized way, which is
not fair and right. So instead of just doing the
integration and building a predictive model based on
off-the-shelf machine-learning tools, we started
investing a lot of energy and effort to the
pre-processing step which should go prior to the
predictive modeling. In particular, to the data
exploration and data pre-processing steps.
At the same time, we retweaked ourselves in the data
modeling, predictive modeling effort. We no longer
want to use the off-the-shelf machine-learning tools
like Naive Bayes model or sub [indiscernible] vector
machine, but we want to design our own predictive
model which is fair and appropriate for our specific
problem.
And in the next few minutes, I'm going to be touching
deep into some of those details. For brevity, I will
be skipping a lot as well, so please feel free to
stop me if you have any specific questions.
So one of our effort, as I mentioned, was significant
energy and effort was given to the exploration. The
objective of this tape is to understand different
variables. Many of these are numeric variables and
significantly really noisy, and how they contribute
to risk of readmission.
So we realize that it is not adequate for us just to
draw a graph and try to understand how this
particular variable relates to risk of readmission.
That's not fair. Because the variable, itself,
contain noise.
So as opposed to using the numeric variable as is, we
started discretizing the variable and we resorted to
statistical technique for discretization. For
example, in one of our effort we adopted the
Chi-Merge algorithm to discretize numeric variable to
discretize variable, and we wanted to visualize the
effect of discretization using odds ratio.
Obviously all of this goes nowhere unless we see that
these efforts leads to better predictive modeling,
and as you can see in the results of these two
following papers, we indeed observed that with data
exploration, with discretization based exploration,
we actually ended up predicting the risk of
readmission problem better. So that was one of our
successful process.
At the same time, we also re-tweaked ourselves a lot
in the predictive modeling. In addition to the
off-the-shelf predictive models like Naive Bayes,
logistic regression, or SVM, we started looking at
other techniques. We started investigating whether
existing ensemble methods like Random Forest or
AdaBoost gives us anything.
At the same time, we started designing our own
ensemble, and we started designing another very
interesting predictive model, we call it multilayer
classification. In the next few minutes in the talk,
I'm going to be talking in a greater detail about our
multilayer classification method.
>>: So question. Is it Random Forest, is it
gradient boosted trees?
>> Senjuti Basu Roy: Random Forest, yes, so gradient
boosted tree you can think of, that was one of the
model that we used for Random Forest, that's right.
>>:
And which [inaudible] fast train?
>> Senjuti Basu Roy:
right.
We used fast train, that's
So here, so I'm going to be talking a little more
little depth, little in depth about multilayer
classification, and the reason for choosing
multilayer classification was motivated from the
data, itself.
So when we took a deeper look into our data set, we
observed that the population of the patient that we
are dealing with is very, very heterogenous, and we
are not doing a right job of treating all of
similarly.
For example, we saw that only 32 percent of the
patient in our population ever gets readmitted. And
out of this 32 person, only five person comes back
within 30 days of readmission. So why treating all
of them in the same bucket? And that is really the
intuition of the designing our multilayer
classification.
So this is what we wanted to do. We wanted to
automatically design a hierarchal prediction model.
Then for each prediction, each layer, each layer in
this hierarchy, we wanted to design a predictive
model and we wanted to apply our appropriate
pre-processing steps such as feature selection or,
you know, factor analysis, whatever you name it.
Also, as you mentioned one from the audience, that
the objective of each of these layer is different.
In some layer we want to maximize recall. In some
other layer we want to maximize AUC or precision. So
that sort of is the intuition of our better break to
model. Okay.
>>: Is the pictures, are they [inaudible] or you can
also vary ->> Senjuti Basu Roy: They will also vary across the
layers, that's right. So probably this picture
clearly depicts what we want, intended to do. So the
root node of this picture is our original population,
which is all patient. From this entire set of
patients, we first wanted to filter out those who are
not coming back, and that's these branch of the tree.
Yes.
>>: So when you say not coming back, what kind of
data you have? Like you have data from the same
hospital, like the patient [inaudible] at the
hospital or maybe the patient died ->> Senjuti Basu Roy: So, yes, very good question and
I'm sorry that I haven't described the data set very
well yet. So, yes. So every -- the instance of a
data set is an encounter of a patient to hospital,
okay? And although the data is [indiscernible], we
know there is a unique ID given to each patient
record. So we know who came back and when. And of
course, every encountered ID is associated with a
data and time. So from there, we can calculate when
he got discharged, whether he got readmitted, and the
day between.
>>:
[inaudible].
>> Senjuti Basu Roy: To any hospital, to the four
hospital that MultiCare health system has.
>>:
Within the system?
>> Senjuti Basu Roy:
>>:
Within the system.
Within the system.
>> Senjuti Basu Roy:
Within the system.
>>: Do you have any information on patient data,
like the patient days and all that sort of
information [inaudible]?
>> Ankur Teredesai:
>> Senjuti Basu Roy:
didn't hear you.
Yes, we do.
What was the question?
I
>> Demographic.
>> Senjuti Basu Roy: Demography. Yes. So
psychosocial factor was one of the attributes, that
big list that you saw. So our mixed bag, that was
the set of factors that we used. Yes.
>>: It was [inaudible]. It's supposed to be
[inaudible]. Somehow [inaudible].
>> Ankur Teredesai: You can think of it as a team.
So if you throw a lot of data, this contains a lot of
patients who do not -- who never get readmitted, then
your classifier gets usually biased against the
second class state. So exporting time, you're still
going to predict readmit or not readmit, and you're
going to measure your accuracy only at that time.
>>:
[inaudible]
>> Senjuti Basu Roy: So readmitted, remember, we are
staying true our original problem definition, which
is whether the patient is going to be readmitted
within 30 days or not, okay?
>>:
[inaudible]
>> Senjuti Basu Roy: The problem we encountered if
we do not read this population differently is there
is a huge class imbalance, as I said, that only five
percent people gets readmitted within 30 days and
rest 95 percent don't.
So it is not fair to treat them -- to put them in the
same bag and just build something out of it. Rather,
we started seeing that -- we started treating this
different strata, as we call it, differently, and we
started applying different method and different
factors that are responsible for that particular
strata rather than treating all of the them together
at the same time.
And I can answer few more question offline maybe.
Anyway, so I still want to spend a few more minutes
on this slide because this sort of derives and leads
me to the next slide.
So this is what was our intention. We wanted to
treat the entire population in the beginning. We
wanted to filter out a set of people who don't come
back. Then our objective was to design a set of
internal layers, which are hierarchically related to
each other. And obviously, the lowest layer in our
system is the problem that we actually solved,
whether the person is going to be readmitted within
30 days or not.
So that was sort of our high level motivation.
So if you notice this slide, I just said that I
wanted to design an internal stage. Each internal
stage describes a time window of readmission. So the
obvious question that leads to, how do I decide those
time windows. Am I going to manually and in an ad
hoc way select those time window? Am I going to
consult the physician to select this windows?
am I going to do?
What
So this leads to this simple example that I'm going
to describe to [indiscernible] the settings. So
imagine that my objective for now is to create just
one single intermediate layer. So from my original
population of patients, I have eliminated everybody
who doesn't come back. Then I have calculated the
maximum number of day until readmission. For sake of
simplicity, let's assume that day is 100.
Then I am actually interested to predict whether a
person is going to come back within 30 days or not,
and I just said I want to create an intermediate
layer. That means I want to find out another day and
I want to create three layer where I will design
three different model, one for the patients who had
got readmitted between that K day to 100 day, K day
to 30 day, and less than 30 day. I hope I am making
myself clear. Okay.
So the question is how am I going to come up with
that K? And this is the simple grading algorithm
that we use to come up with that K. This algorithm
uses a very simple and classical intuition of strata,
meaning people who belongs to a strata, two different
strata should be significantly different from each
other. So that sort of our intuition of creating
this strata.
To do that, we write all this pseudo code, and I can
very -- I can easily explain it to you without
telling all of this what we are doing inside. What
we are doing inside is basically we are rounding a
grading process which is rippling through this entire
spectrum of possibility between hundred and 30 and
trying to find out that K value which stands for a
day which will create two bucket or two strata of
population which exhibit the highest difference
between each other.
In order to
each bucket
between two
compute the
compute the
do that, what did we do? We represented
as a probability distribution, okay? And
probability distribution, we wanted to
difference and we used KL divergence to
difference. We kept repeating this loop
until we find the point where we can converge, and
that's basically this pseudo code.
So these process creates, for the simple example of
three layers, this is the process that we adopt to
automatically generate this intermediate layers so
that -- yes.
>>: I'm just wondering, if I drew a [inaudible]
model [indiscernible], so I move one day ahead?
>> Senjuti Basu Roy: You can move one day ahead.
You can do ten day ahead. Depends on how you want to
move.
>>:
I see.
>> Senjuti Basu Roy:
pseudo code.
So that's our "i" in this
>>:
I see.
>>:
And how do you move [inaudible]?
>> Senjuti Basu Roy: Our experimentation moved in
different ways. We moved in five days, we moved in
ten days, and we moved in 15 days, yes.
>>: So the "i" is a fixed number rather than an
adaptive number?
>> Senjuti Basu Roy: "I" is a fixed number rather
than an adaptive number, that's right.
Okay. So my stratas are created. For each strata I
do factor analysis, I do all pre-processing in the
world that I want to do. I have built my model,
okay? But then I need to come up with a probability
of the patient being readmitted within 30 days.
How we do that? I'm not going to go to this
equation, but I'm going to use this picture to
describe that. So for the simple three-layer
example, the probability, the innermost box describes
the probability of a patient being readmitted within
30 days, given he got readmitted within that day a
layer above.
Similarly, the probability of the patient got
readmitted within K days, which is the layer above,
is conditioned on the probability that the patient at
all got readmitted. So this is how we compute the
entire probability, and that is what is summarized
here in the equation.
So when we showed this to MultiCare and, of course,
it came with better results, MultiCare was impressed
but not fully convinced. There were several baseline
that was going inside MultiCare system, and of
course, we had to build our baseline in order to
convince them.
So this is one of the very simple baseline that
MultiCare used. They call it a care management tool.
And as you can see, these are the ten or 12 factors
that use -- they use to score a patient in one of
these four categories, low, medium, high, or
intensive.
All these factors are actually psychosocial, whereas
we can consider a wide vast range of characteristics.
And obviously, we built them up easily and fast, and,
but we still have to compare ourselves to get
management tool every day we need. Believe me,
believe it or not. That's just the fact of the life.
>>: It's not so much the fact of the life. It's
also important to note that most hospital systems
rely on such simple computational tools that can be
derived, and in order to deploy a product or a lot of
them that with equal system, you have to convince
them that what you have is 20 times better than this,
and only then will they buy into that. So ->>: And who builds or imply that they should be able
to understand the decision?
>>:
Yes.
>> Senjuti Basu Roy:
>>:
Absolutely.
Of course.
I mean --
>> Senjuti Basu Roy:
You have no idea how many times
I have said what is the definition of precision and
what is the definition of recall.
>>: But I mean, understand
okay, this patient would be
probabilities for research,
them based on which feature
>> Senjuti Basu Roy:
>>:
like if you say that,
readmitted with the
that you can also show
--
Yeah, yeah, yeah.
[inaudible]
>> Senjuti Basu Roy: Yeah, they are very interested.
Actually, since they are the domain expert, they are
more interested to know why than how. They don't
care about the how. They really wanted to see why.
Okay. So this is the royal moment for us. All of
them came in a single package. When we designed our
prototype, which is now inside MultiCare Health
System, we call it Risk-O-Meter. Many of us call it
Risk-O-Meter. And it got accepted as a demonstration
paper in KDD 2013.
Risk-O-Meter has a wave-based UI, and it also has
a -- one of our students is going to demonstrate the
mobile app on Azure based on this application. It
has a very simple UI. You can see that even though
our actual model has 60 attributes or 64 attributes,
the UI accepts only ten or 12 of them. Even a user
can leave some of them blank.
That doesn't mean the model inside is going to use
only eight attributes if the user has entered eight
attributes. It's actually going to infer or impute
the rest of the attribute values that are not
entered.
So given this patient input, when once somebody hit
this button, calculate risk, Risk-O-Meter is going to
predict a real-time risk for this real-time 30-day
readmission risk for that patient.
And that's not the end of the story. At the same
time, it has two more interesting characteristics.
One is it is going to show the top associated risk
factor of this patient based on the input that is
provided in the UI. All right? And this is done -technically speaking, this is done by performing
associate rule mining and we have adapted a variant
of A Priori algorithm to do that.
Then, and more importantly, which was very well
received by the physician, Risk-O-Meter also tells
top three most important factor that the patient is
going to exhibit but hasn't entered to the UI as
input.
So it tries to discover hidden pattern, which was
very well received and excited by the physicians
because it alerts them some of the other
comorbidities or secondary diseases that that patient
have and the physician is not yet aware of.
So this is what Risk-O-Meter is, and Vivek is
actually will show the live demonstration of the
system.
So this is just some characteristics of Risk-O-Meter
which I already have explained.
So from then, all of this happened like eight months
ago. So what next? We have been wondering what
next. Should we just confine ourselves to risk
prediction? And obviously one immediate step that we
have started thinking that only prediction is not
adequate. We need to enable the physician support if
we really are interested to invest our energy in this
space.
So the last eight months we have been dealing to come
up with personalized intervention recommendation for
the patient. Intervention means a set of procedure
that the patient can adopt to minimize his
readmission risk. Obviously our objective is not to
replace the physician but to help them and aid them
in the decision support to improve the quality of
care, okay?
And this is our royal patient that we drew eight
months ago. So basically our idea is not to do
readmission prediction, but also to do readmission
intervention, predict intervention recommendation,
not only during hospitalization but any phase of the
patient life cycle, during pre-hospitalization phase,
during hospitalization, and post-discharge.
We call this intervention recommendation framework
because the solution that we design for this is
agnostic to the specific phase that the patient is
at. Depending on the appropriate variable that is
entered to that phase, the system will be able to
predict a set of -- best set of rules for this
patient to minimize his readmission risk.
So our effort in this space is now more on
intervention recommendation rather than risk
prediction.
And very briefly for the interest of time, I will be
going fast on this set of slides, the remaining set
of slides which is going to explain how we are doing
intervention recommendation, and this is our
architecture.
So we have formalized the intervention recommendation
problem as a network learning problem. We first -given the available set of data, we first learn
innate work which describes the complex interplay
between the multitude of factors that causes
readmission.
Then once this network is constructed, we do the
parameter learning to design the probability
distribution table on each node of this constructed
network.
From there, we generate a set of recommendation rule.
All of these are part of the pre-processing state and
is done Apriori.
Once a new patient comes, given a set of
characteristics, we pass him through with the set of
rules that are generated and we predict the rule. We
generate the rule which is most likely to minimize,
which is likely to minimize his risk maximum.
So that's the overall process. And now very, very
briefly, this is how it looks like. So this is the
output of one of our algorithm for the network
learning phase. So note that there are several
factors associated. The top are the demographic
factors; the second layer are the diagnoses; the
third layer are the procedures. We call them
interventions. And then how they relate to
readmission risk. These areas are being learned by
learning a Bayesian network, and we use several set
of algorithms like constrained based approached,
score-based approach, and hybrid approach to do our
experimentation.
>>:
[inaudible] network or --
>> Senjuti Basu Roy: No, we actually have used -- we
have used R and some of it we have coded ourselves.
So once this network is constructed, our job is to do
the parameter learning, and again, I'll be super fast
on this slide.
The objective is to create the probability
distribution table at each node of this constructed
network. We use Bayesian parameter estimation for
this purpose, and use MAP, Maximum A Posteriori, to
estimate the posterior probability.
And finally, once this network is created, the
probability distribution is generated, we create a
set of rules for -- based on our given data set.
Basically we want to see, given a set of
recommendations and for a patient who was [inaudible]
readmitted, if the set of recommendation reduces the
probability of readmission farther or not. If it
does, then we suggest that as a set of rule and we
store that in your database. Simple and clean. The
same could be done for the patients who got
readmitted and see how the recommendation rule for
him could be generated.
So that's sort of the brief overview of the large
processes that we followed over a period of two and a
half years. And I'm going to stop at this moment and
I'm going to hand it over to David and Vivek who are
going to talk about the engineering effort, and at
this point or later on I'm happy to answer any
specific question you may have on the machine
learning part. Thank you very much.
>> Vivek R. Rao: Hello, everyone. I'm Vivek. I'm
graduate student at University of Washington, Tacoma.
Today I'll be showing you the demo of Risk-O-Meter
app. Basically it's a clone of web UI, but it's
deployed on Windows Phone.
Presently we have an Android version, Windows Phone
version, and presently we are supporting two kinds of
profiles. One is the patient profile and another is
the doctor or physician profile. Today I'll be
showing you the demo of Windows Phone Risk-O-Meter
app and it is optimized for Windows Phone 8.1.
This is the screen shot or a screen share of my
phone. As you can see, here is the Risk-O-Meter app.
For the patient profile, let me take an example.
Mike. Mike is a very good friend of mine. His
father was admitted to hospital because of congestive
heart failure.
A couple of days back he was discharged, but Mike is
worried about his father being readmitted to the
hospital. So I said, Mike, hey, why don't you check
our app. It gives the probability of readmission to
the hospital.
So he went and checked this app. He opened this app.
In the welcome screen, you have a brief introduction
about the app, what it does, what are its
capabilities. As we are talking about the patient
profile, he goes to the patient profile and clicks
the start button.
In this UI, we are asking Mike about several inputs
or attributes of his father. Mike's father is 43
years old. He's a male. He belongs to
African-American community, and pre-hospitalizational
heart failure. Yes, he was admitted to hospital
because of heart failure. So I'll click yes. It
asks for period length of stay. He say a stay day in
the hospital for seven days. He has diabetes, but no
stroke. He's BP category is 201 and 219.
Mike's father is a pretty normal guy, so his BMI
would be around 25. And ejection fraction is 15.
Ejection fraction value, or EFV, is the volume of
blood which is pumped out of the heart every -- for
every heartbeat. Once he calculated this --
>>:
[inaudible]
>> Vivek R. Rao:
>>: No, no.
for that?
It's representing the report card.
I mean, how would they know the value
>> Ankur Teredesai: Yeah, so typically, you know, we
don't expect ejection fraction to be there. So the
model handles missing values and that's where
[inaudible].
>>:
So they can skip?
>> Ankur Teredesai: Yeah, I think, you know, we are
trying to really do the trial version.
>> Vivek R. Rao: So when I hit the calculate this
button, it takes all the attributes which Mike
entered and forms a post request and hits the API
sitting on the Azure.
Azure API takes the value and calculates the risk
profile and sends it back in a JSON format. As you
can see, in the results page it says that probability
of readmission is 37.79 percent and it's in a low.
It means that it's good, but not great.
And along with the risk, we give some of the
additional factors, like what are the top associated
risk factors. It says his BMI is less than 30.
Second is the male, and third is the diabetes. So
Mike's farther is 43 years old and he's a male with a
diabetes. So the risk score is around 37.79.
>>: I have a question. So when you display the risk
factors, does it tell you as to what's left or right?
It's showing you have a lower risk or a higher risk?
>> Vivek R. Rao:
Yeah.
>> Ankur Teredesai:
factors.
>>:
As you can see --
These are the top associated
Yes.
>> Ankur Teredesai:
So the idea is that given you or
patient at the instance, what are the other closest
instances and what are the top factors for it.
Essentially you're using a first stream model to find
the -- you take the patient, you put him or her in
one of the clusters, and then you say what are the
top five factors for that cluster.
>>: Yeah, I know that's a risk factor, but like for
me, I don't know what is a BMI. Is it less than 30
means I have higher risk of this disease or lower
risk?
>> Senjuti Basu Roy: So let me answer this. So I
think that's a good question in the sense that which
is high is very subjective also. I think the doctors
or the physicians may say that the risk of 50 -- 60
percent is high, 37 percent or 40 percent is a
moderate risk, but a patient like me might just, you
know, get annoyed if I see that I have a risk for
more than 20 percent.
So at this point, well, I really do see that what you
are asking is a very interesting question, and maybe
with the explanation with the help of the domain
experts, the physicians, we can provide some
explanations that which will say that if it is 40, is
it something to get alarmed. But we don't have that
yet.
>>: I guess you misunderstand my question, but that
was a really good idea, too. So say the first factor
is BMI larger than 30. What does a less than 30,
what does that mean to me? Is it showing that I
might have a higher risk or I might have a lower
risk?
>> Senjuti Basu Roy: No. So this patient, what they
have entered has a BMI of 25, if you remember.
>>:
Yes.
>> Senjuti Basu Roy: So his BMI was indeed less than
30. So in this case, higher BMI is worse, right? We
want the BMI ->>:
I just don't know that.
>> Senjuti Basu Roy:
BMI stands for what?
>>:
Body mass index.
>> Senjuti Basu Roy:
>>:
Okay. So the idea is higher -Base --
Body mass index.
Okay.
>> Senjuti Basu Roy:
So BMI, higher BMI means worse.
>>: Okay. So it's not like -- I would just suggest
for a user interface that that shows that this is
lowering my risk.
>> Ankur Teredesai:
having, you know ->>:
I think
It's confusing.
>> Ankur Teredesai:
>>:
Completely agree.
Yeah.
So BMI less than 30 is one of the decision --
>> Senjuti Basu Roy:
The decision factor.
>>: The decision factor, but it's not the risk
factor.
>> Ankur Teredesai:
>> Senjuti Basu Roy:
>>:
It's not a risk.
No, it's not a risk factor.
Okay.
>>: So you mentioned you would have some actionable
items, basically, for the patient. Are these the
actionable items?
>> Ankur Teredesai: Yeah, so you can put a filter on
top of these. Right now you're showing all
parameters that we have in the model. But the idea
is that you can put a filter on these based on the
domain expert and say vitals. I mean, there's very
little you can do about vitals, but there is a lot
you can do about sociodemographic factors or about
care management and health. So you can say regular
exercise would be a recommendation as a factor,
right?
Now, what does regular exercise mean is not very
clear to a non-domain expert, but each team will have
their own version of what that implies, so then that
would render the recommendation and the factor. We
are just showing like a very simple filtering
[inaudible].
>>: But so would these actionable items be displayed
here and then in this list?
>> Ankur Teredesai: They could be. Again, we are
not bound to the UI. This is just a demo UI to show
that this is the types of outputs you get from this.
Actual, like clinician and physician are not going to
use this UI. They're all going to custom design
their UI, because different apps will have different
UIs of what is needed. So an end patient app, for
example, will have things like, you know, what he
asked, you know, am I in the normal range of BMI for
this risk or am I in the higher range of BMI for this
risk?
Another app that we have in mind is something like
length of stay app. So, okay. So I am at high risk
for readmission, but, you know, when can I really go
home or when can my grandma go home. Like, so -- but
that's a completely different pivot on the predictive
model. So there will be lots of apps like these in
the system which people will develop on top of this
by just taking the score and the factors. So don't
think of it as just one app.
>>: Once [indiscernible] so you mentioned you had 64
attributes or so. And so this app you have just the
small subset [inaudible]?
>> Ankur Teredesai: Yeah, this is a 10-attribute
model, a 10-attribute model.
>>:
Okay.
>> Vivek R. Rao: So as I said earlier, we have two
profiles. First one was the patient profile. Now we
are going to the physician profile. So I have taken
an example of Dr. Albert. Presently he's at Sea-Tac
Airport heading for a conference in New York. Before
boarding the plane, he just wants to know how his
patients are doing, so he just grabs his mobile and
puts his credentials, and he'll be redirected to a
dashboard where he can monitor all alerts.
When he sees this page, it says that you have three
new alerts and four patients in your list.
Dr. Albert is concerned about the alert, so he taps
on the alerts. Now he gets a view of all of the
patient or alert which are fresh and new.
For example, take an example of John D. It says that
risk or is increased by 15 percent and pulse pressure
is increasing. Now Dr. Albert is worried, so he
wants to get more insights on this patient John D.
So he taps on John D, and it gives a brief or the
broad view of the causes which caused that alert.
It says the time since last change is 34 minutes and
changes EF values low, et cetera, et cetera.
So if the Dr. Albert wants to take some decisions
before boarding the plane, he can just call the
hospital, someone at the hospital and ask them to
take care of John D.
In the dashboard we have another view called monitor
all patients. Presently we have four patients. If
he clicks on the patient list, we'll get a broad
overview of all the patients and how they are doing.
Let's consider William Smith. William Smith has a
risk score of 60, but below 60 percent there is
another value with value 15 percent with the red mark
and an upward arrow mark. This means that 30 minutes
ago there was some event happened with William Smith
which increase his risk score by 15 percent.
So Dr. Albert is interested in William Smith, so he
taps and he gets a more broader view of William
Smith.
And it says top readmission contributors anemia,
pneumonia, cardiac referred failure, and
[indiscernible]. If he clicks the anemia, he get a
graphical view of that patient and all the causes
like the dialysis and the cardio respiratory failure.
Now Albert wants to monitor this patient, so he
clicks on monitor William Smith, and when he clicks
this check box, this William Smith will be added to a
list, and whenever there is a change in that patient,
William Smith, there will be an event and this Dr.
Albert will be notified by this.
Now, Albert is -- Dr. Albert is happy with this -with how his patients are doing, so he signs out and
takes a plane to the New York. Yeah.
>>: [inaudible] take care of the status problems,
suppose I am on the threshold and my levels are
changing pretty quickly. Do you [inaudible]?
>> Vivek R. Rao: I think we can monitor that.
>>:
So that's --
>> Ankur Teredesai: [indiscernible].
explain that. So just be patient.
>> Vivek R. Rao:
So we'll
Thank you.
>> David Hazel: Thanks for that. So I just want to
spend a few minutes sort of talking about the
architecture that's powering the app and the
integration in the MultiCare Systems. If we go back
to the very beginning of the effort, we had a lot of
students trying to build models on their laptops and
sort of, you know, completely underpowered and
dealing with information systems that wasn't really
designed for this modeling integration effort that
they're working on. So the result was the
experiments took a really long time to do, right?
So then we got this amazing email on November 7th,
2013, that said hey, congratulation, Ankur, you have
got your research award grant, which is just
incredible because it really opened up the
availability of infrastructure to do a lot of
experiments, really quickly.
And so, you know, we still
models inside of MultiCare
the full patient data, but
them to Azure and try them
had to build the early
because we're dealing with
then we could then deploy
out on other, you know,
data sets and just score millions of patient events
really, really quickly. Right?
So the result was that the tempo really accelerated,
our results improved, and the physicians started to
trust what we were doing, and that led to this
deployment in MultiCare in early 2014 where we can
now do real-time risk profile and scoring as
represented through the app or moving towards
integration with their EMR effort.
And then we can also compare the results of
MultiCare's patients to other patient populations,
whether that be another ACO or like a regional clinic
where we can sort of understand, you know, different
workloads, different protocols, how they interact to
build better models that then, you know, feed back in
and generate better results for MultiCare. Yes.
>>: So just wondering, how is the [inaudible] result
improvement coming from given that the model training
is still done [indiscernible]?
>> Ankur Teredesai: Very good question, and I'll
address that in my vision.
>> David Hazel: So real brief on the architecture.
I just want to point out we've got our Epic, which is
an EMR over here. HL7 messages send patient data
into a server through the API, you know, hit the
appropriate model, generate a risk profile, which is
the scores and contributing factors going back out
either to Epic or the mobile app, and the important
thing that all of this is running in Azure. The
whole modeling effort, you know, allows us to really
scale up. It's just amazing.
A little bit about the API that's sitting in the
backend. We've got models that are deployed to R
Apache, and those, when the URI comes in, you load
the libraries that we need, you know, hit the R
SCRIPS that we have, and then, you know, generate and
go through the model selector.
All this code is available on GitHub. If you want to
take a deep dive on the code or have conversation,
you know, just drop me a line. Happy to share that
out. So Ankur's just going to spend a few minutes
talking about the vision for next year.
>> Ankur Teredesai: Thanks, David. So where do we
go from here on Azure for Research? If you look at
the problem space, we have realized over the last
three years that it's extremely rich. Just having
access to this wonderful clinical data and the
partnership that we have, which is fairly organic in
itself, is one plus. But more than that, we are
launching something that we call readmission score as
a service which enables any, literally any app
developer to use the service to build apps.
Area hospitals, UDA medicine we are in conversations
trying to see if we can get them to start scoring and
using our models and any other hospitals or
providers, right? That's one.
But not just diagnostic recommendation. We also want
to get ground truth data. So we are, to answer your
question, it's not enough for the -- so, you know,
you have an API token. You use that token. You send
your attributes. You get the score back, but that
doesn't help us, because what happens after 30 days
is equally important in this case, right?
So what we are mandating in this service is you get
the result back today, but then now you are obligated
to send us whether that patient did come back or not
within 30 days. So we will send you a ping. You
send us back an acknowledgment within 30 days if our
ground truth, and that's how we start collecting
ground truth data. Make sense? That's how you
complete the loop. Of course, we want to integrate
with other sources, you know, with Azure. That's the
key sort of motivation to do that.
Because guess what, and after -- it's very humbling
experience to understand that machine learning really
had nothing to do with predicting risk, right? At
the end of the day, you know, in order to improve
quality of care, it's really about, you know,
literally a factor like whether there is someone at
home to take care of an elderly patient contributes
significantly to their readmission or no readmission,
right?
And no machine learning -- well, machine-learning
model can at least predict or find that out, provided
we have access to unstructured data. Because in the
CCDs and the clinical care documents and so on where
patients actually have conversations with doctors and
physicians and this gets noted, they do mention many
times that my doctor dropped me off, right?
Now the question is, are we in the legal gray area to
be able to mine that information. Even if we had
Hadoop and we had Spark and we had these nice, you
know, infrastructures, are we able to allow to touch
that piece of information which says that this
patient actually has a doctor who takes care of him
or her, right?
And that's sort of the vision where we want. So, but
big data infrastructure and things like Azure for
Research enable us to at least attempt and prototype
some of those efforts.
Not just that. A very interesting problem is
appearing and we sort of need help from this
community of Microsoft Research to attack it. We
sort of solved the problem to reduce readmission or
predict readmission risk.
There is another very interesting dual problem of
this, which is reducing length of stay. Because
guess what? The hospital can reduce readmissions by
just keeping the patient in the hospital for 30 days.
Right? That's no readmission, right?
But that's not how we want to solve the problem. We
do actually want to -- it's a multi [indiscernible]
Constrained optimization. And then we want to apply
intervention frameworks.
We have just been approached by MultiCare for yet
another year of, you know, collaboration across
pneumonia, COPD, AMI. So the task is to now start
building models for each of these.
Here is how sort of our partner landscape and the
machine learning on health care vision looks like for
2015. We have sort of on Azure we would like to
integrate multiple data sources. Some of these are
public. The state inpatient data said COPD, the H
cough, ill effect to the partner, it's a Bellevue
company that processes claims data and they are
donating data as well as resources so that we can
build predictive models, not just from the clinical
side but also from the claims side, which is
extremely powerful.
Now you can imagine that you have the holistic
picture of the patient because if the patient comes
to just MultiCare but gets readmitted somewhere else
in 30 days, we do not know that, but if we have
access to claims data, then we can do that.
On top that, we want to build some open source or we
want to use some open source ETL tools and then
start, you know, building models. And we have. Many
of these efforts are actually ongoing already. Here
is a fairly complex graph of what our organization
looks like today.
It consists of, you know, several people who work on
cost prediction models, a big team that's here today
presenting our results on MultiCare and risk of
readmission models. We have several professors who
work on the machine learning and big data side and
kind of so on.
So if any of these boxes interest people or
encourage, please drop us a note. We are looking for
adding more boxes in the machine learning bit. Of
course, the vertical is very fixed. It is for health
care analytics and we can add more algorithms.
Last but not the least, I want to sincerely express
my thanks and gratitude as the director of the center
and as the overt leader of this team here to all of
you for encouraging us to use this platform, Azure
for Research. Specifically I want to call out Vani
Mandava and Dennis Gannon for allowing us to share
this -- these results.
I also want to thank MultiCare for our data partners.
It's not just one US city effort, but the way. What
didn't go on the slide is there are people from
Granada in Spain who are building for this set models
on this. There are people from Kent University in
Belgium who are contributing to the open source
machine-learning efforts that we are doing. So it's
truly an international set of collaborators that has
come together to use this platform and solve some of
these problems, even though, you know, at the base we
are doing it over here.
With that, I want to thank all my co-speakers as well
today for the wonderful effort that they have done.
Hopefully, hopefully the hope is that what Bill
Clinton said in 1993 will one day come true and we
really will have an affordable care model for our
health care, and we hope that the steps that we are
taking today and the support that you guys are
providing will be, you know, one small step for
mankind towards that direction. So with that, thanks
a lot.
[applause]
>>: So would there be machine learning behind
[inaudible]? How easy is it to adapt to other
problem spaces and how much intervention [inaudible]
and so on?
>> Senjuti Basu Roy: Well, let me give you a shallow
answer. So I think the way we are ->> Ankur Teredesai:
question?
>> Senjuti Basu Roy:
I wear this?
>> Ankur Teredesai:
Senjuti, could you repeat the
Yeah, the question is -- should
No, no.
>> Senjuti Basu Roy: So the question she asked is
the multilayer machine learning model that we
developed, how easy it is to generalize for other
diseases, right?
>>:
Or for other problems.
>> Senjuti Basu Roy: Or for other problem spaces.
So my shallow answer to this question will be as long
as the other problems exhibit the characteristics
that we have, it will be possible. How successful it
will be, I don't know. But it's certainly worth
investigation.
>> Ankur Teredesai: I would add that, so the
multilayer approach and the solution that we designed
was not done as data scientists. It was done
collaboratively with physicians, right? So that's a
very important missing piece here.
>>:
[inaudible] domain expertise.
>> Senjuti Basu Roy:
Yes.
>> Ankur Teredesai: Exactly, exactly. So it took us
some time to understand that brute force, you know,
compute power is not really going to help us. We
really need to segregate it into multiple layers,
really need to understand what happens to a patient
inside a care pipeline, what is the care protocol
that they are following, and then at which points in
that care protocol can we really influence the
intervention, right? And that's why the multilayer
approach works, because, you know, their domain
knowledge then plays a big role in helping us solve
the problem.
One question, great talk.
>>:
Thank you.
Thanks everyone for coming.
Download