A Hair, they say, divides the False and True,
Yes; and a single Alif were the clue,
Could you but find it--to the Treasure-house,
And peradventure to The Master too!
from Edward Fitzgerald's
translation of the Rubaiyat of Omar Khayyam
Interests: Massive Learning Systems
Considerations of Natural Intelligence
I am
interested in gaining insights into the working of our minds (a psychologist
called it the "universe within") as well as building software
artifacts inspired by some aspects of intelligence. I enjoy the analysis
and more generally the research activity that goes with that.
For some time now, it has appeared to me (and many others) that the field of
machine learning will be a key player in addressing the current challenges of
artificial intelligence. Informally, learning means improving at
some task with experience, while doing it. Machine learning (ML) is
the study of computational methods that can account for or achieve various
types of adaptation/learning. Why should learning be an important
part of the answer to AI's problems? We can't be sure of course until
it's all settled, hopefully at some point... and there may be several widely
different solutions.. However, there is experience/evidence from decades
of research that points to limits of explicitly programming intelligence, as
well as the potentials of the learning approach. They include the
following. Limits of human (accessible) knowledge: we don't know
important details of our reasoning/thinking processes (say, how we arrive at
the next chunk of thought), and we don't have access to all our
"knowledge" or know-how. It is very hard to anticipate our
recations and actions in advance in various contexts. And the world and what needs
to be done to behave intelligently in it, the way say typical humans do, in a
common sensical manner seems very complex. If
only we could take the short cut and program intelligence! ML is perhaps
the longer bottom-up path. Can we wait?! The success of machine learning
has been what appears to be at the low levels of intelligence: some basic
pattern recognition/analysis. The success of ML, however, has been robust
in my opinion. There is great strength/science behind the success.
Very importantly, I think machine learning, at least the way we conceptualize
it currently, while limited, may serve as a path to discovering what new
concepts and formalisms we need, for gaining further insights into our higher
level faculties (eg creativity, imagination, and so on).
ML has made much progress, thanks to many researchers from diverse fields, and
I am fortunate to have seen its great practical impact first hand at
Yahoo! And it remains very exciting and alive. For me, the question
is always: what do we do next, and in this case, where do we take machine
learning from here, keeping in mind, whenever possible, the primary goal of
insights into the workings of our minds, and more generally what intelligence
can be.
One aspect that has caught my attention is the scale that the sophisticated
intelligence of higher animals seems to require: the number of concepts in our
minds is huge (probably millions and beyond). Think for example about
visual concepts (such as physical things: trees, buildings, various tools,
stationary, people,..), or verbal concepts. And yet, the brain does
its normal operations (classification and other inferences) relatively
rapidly, considering the brain's limited hardware (limited speed and memory). I
think this remains unaccounted for by our current know-how. How does our brain
acquire/organize/manage such a large "concept
base"?! It remains largely a mystery.
Here are candidate subproblems that I have looked at: how do we categorize so
efficiently and moreover, how do we efficiently learn to efficiently
categorize in the face of so many classes ? Can we design
algorithms/systems that behave similarly? I don't think we, as say grown-ups,
were always like this (adequately proficient), and depending on the task, it
has taken us days, months, and years to reach current capabilities, via
learning..
Another big question for me is: how do we acquire so many concepts in the
first place? Again, I assume we learn most of them, and that such
tasks require much learning and experience.
I have therefore been thinking about very large scale (data intensive) ongoing
learning regimes and systems. We need scalable algorithms, and I expect
they will be relatively simple and light. That doesn't mean they are easy
to find! We need to think in terms of "systems" that learn. Of
course, there are many challenges and questions, such as what problems or tasks
or how do we identify good tasks/problems and formalize them well (this is a
BIG meta problem!), why do we need a "systems" approach, why is
large-scale necessary, how do we keep system complexity in check, sustain
efficiency, and ensure that our systems don't drown in the sea of uncertainty
over their long periods of operations, and so on. I remain
optimistic! My publications below delve further into these questions.
And of course, the mind does much more. This should keep us in awe and wonder
and busy for some time! Once we have solved the problems, we can kick back,
relax, and let our intelligent progeny take over .. :)
Practical Considerations
Many (learning) problems involve a number of the aspects
below, or stated another way, if we can design algorithms and systems that can
address these challenges, I believe we increase the utility and intelligence in
our systems. For example, in the web space, we can better respond to the
users of a search engine, that is better personalize and adapt system response
to individual users and specific situations.
These aspects or types of problems require a number of attributes for their solution, including a good subset of the following, depending on task:
The work below proposes a particular task (or activity) and explores algorithms that address some of the challenges. This is work in progress.
My current publications in this track:
The initial idea was to learn an unweighted index to drastically reduce the number of candidate concepts at classification time, then classifiers would be applied (i.e., to index classifiers, a two-stage solution):