Wednesday, April 27, 2016

Ideas, ideas, and more ideas...

Here is a list of project ideas I'm interested in but unfortunately not having enough time to work on by my own, I could certainly use some help :). Some of which are projects/services while others are (what I believe to be) useful mobile apps. I can supervise/co-found or advice any of them. If you are interested in more information, drop me a line. I will keep updating the list as I find time and as new ideas come to my mind.


  1. A GoodReads-like website for research papers: I like how Goodreads works and I think it would be great if we could build a similar platform specifically for research papers. I think rating and reviewing papers through a similar platform is more reliable and useful than the current citation mechanism. Usually when you read papers, you could like some while not cite them yet (which, in the current citation system, means they won’t get any credit and your friends won't know you read these papers and found them nice). I believe such reviewing and sharing system could potentially substitute Google Scholar (on the long run); papers will be evaluated by a wider audience that includes whoever reads the paper (and not only by the smaller network of people who cite it). Papers will be evaluated by the crowd eliminating some of the inherent limitations of Google Scholar especially the Matthew effect and the Vulnerability to spam (I borrowed these fancy words from Wikipedia ;-)).
  2. A collaboration platform for researchers that facilitates proposal of research ideas, discussions and collaborations on projects: Occasionally, I have interesting ideas that I would like to see implemented but I often lack the necessary expertise or knowledge in all the technologies needed to bring the idea to life. I might as well have the knowledge but lack the time to do the whole project on my own. I believe many of the researchers I know share the same experience. In the platform I propose, one could share a high level description of the idea and list the knowledge she is missing and the sort of collaboration she is looking for. Others can view, comment or start a serious discussion about possible collaboration. I believe we as researchers need to talk more to each other (and by other here, I mean researchers from other fields who we don’t usually meet in the conferences we usually go to). My hope is that such a platform could encourage collaborations among researchers who don’t usually get to talk or meet each other and foster discussions that advance research.
  3. A website with articles about the recent trends in machine learning/ data mining and AI: I know how hard it can be for Arabic-speaking student, especially in the IT field, to find useful resources even with the wealth of information on the Internet (which might also be a curse if you are new and want to navigate your way and filter what Google gives you). So, a while ago I decided to build a website where I write short articles on topics related to recent trends and techniques in machine learning and data mining. The idea is that the articles should be short, focused, easy to understand, example-oriented and in Arabic. That is because I wanted them to appeal not only to IT students, but to whoever interested in advancing her knowledge in these areas. I really want to make this a reality and I could use all the help I can get (setting up the website, typing the articles (I’m very slow in typing Arabic), or even helping with suggesting topics, writing, reviewing and putting the content together).

Mobile Apps: I don’t have the business plan ready for these apps but I would very much like to be involved or co-found any of them. Let me know if you find them interesting.

  1. A mobile app that detects the level of noise in the environment and automatically mute/reinstate the mobile phone. This adds a touch of intelligence to your mobile and is really useful in cases where you are, for instance, in a meeting or a lecture. You don't want to be disturbed but forget to put your mobile on the silence mode. The app periodically senses the level of noise, estimates where you are and adjusts the sound accordingly.

  2. A mobile app that switches between playlists according to the place and time of day: the songs you enjoy listening to in the morning are most likely different from those you listen to during your walk in the afternoon. And those are most likely different from the ones you listen to while cooking or running. A mobile app that detects your current activity and combines it with the time of the day to recommend the next song or to switch to appropriate playlist is potentially useful. (This idea is inspired by a chat with my friend Yun-Gyung Cheong).


15-07-2016: Together with a friend we started working on point 3 in the Misc. category: a website in arabic to educate people about the latest trends in machine learning, data mining, and artificial intelligence. We named it ArLore and you can find it here:

Saturday, April 2, 2016

Games as a testbed for research - Why?

People usually ask me about my research, when I say I'm doing research on computer games, I can feel their disapproval (though no one has actually express it out load). I can totally understand their reaction; I'm not a game developer so I'm not really making games, I'm not doing pure Artificial Intelligence (AI) so I'm actually contributing to making existing games any better and I'm not working for the industry so my work, so far, has no direct tangible influence.

I have actually been thinking about these issues for a while now and here is my attempt to clear this misunderstanding and clarify why what I'm doing is really interesting and more people should do it.

I have been working for a while (more than five years! time really flies fast) on player experience modeling (PEM) and procedural content generation (PCG), trying to come up with ways to improve and connect both. So far, I have made a progress, but it still fascinates me how little we know about human decision making and the unique ways in which people interact with digital media on one hand, and the sophistication of the process of creating games, on the other hand.

Creating games to me is very much like writing a novel. Almost everyone can write, but not everyone can come up with something interesting that others would like to read, and few can write something that appeals to a wide range of audience (something like the Harry Potter novel).

Understanding how human come up with a good story is hard, and building a program that can imitate this process is even harder (it would have been already done if it is not). Same applies for creating games. The exception is, if you want to make a good game, you can't rely on the imagination of the reader to setup the stage, you should master creating every aspect of it. Unlike novelist, game designers don't only create the story behind the game but they should also craft its visual artifacts, music, and mechanics, and that is why game creation is interesting: it combines so many creative processes. This is exactly why I personally think games are interesting as a testbed.

It has always fascinates me how people come up with great ideas and what inspires these remarkable creations. Take for instance the Harry Potter novel, do you think a computer could one day come up with something similar? I really think it is very unlikely, I actually even believe there are very few humans who can write something similar. I particularly chose Harry Potter because it is a fantasy, it is not something we experienced, seen or even imagined, and it is not something we can create with a little bit of extra effort. It took J. K. Rowling about five years to write the skeleton of the story, a process that fused life experience, great imagination and powerful writing skills. Though what actually inspired the story and the characters remains, at least to me, a big mystery.

Research has so far treated human as Gods, building machines with the sole purpose of imitating humans, but can't we take this one step further. Can't we make machine more spontaneous, more creative, more interestingly unpredictable. This requires not only imitation, but also improvisation, going beyond what you learned towards exploring the unknown. (I know some people will be freaked out by this, as it seems like I'm talking about the rise of robots, but this is not really what I'm aiming for.  What I'm talking about is a system that can understand human and effectively collaborate with her. A system with which you can share your thoughts and actively wait for inspirations. A system to which you say "surprise me" and be prepared to be surprised (in a good way :-))).

So, one of the questions I'm interested in finding an answer to is: can computers, one day, surpass humans in creating novel ideas? There have been quite a lot of success in understanding how humans perform relatively simpler activities such as vision and speech (especially recently with the huge success of deep neural network), but we are still far behind when it comes to understanding the more fundamental cognitive process such as thinking, decision making, emotions, creativity and their relationships.

Games have been the focus of attention for so many people because, let's face it, people like playing game and companies like making money. This is however has so far been a motivation for making better games: games designed by humans with the help of AI. AI is usually employed to make the game design process easier (generation of crowds, making believable non-player characters, or even adjusting the difficulty of the game so that you will play more) or to automate tasks such as planning and path finding. 

Recently, there has also been some interesting work on artificial creativity and how we can teach computers to search for novelty. The problem domain however is still limited and so is the space of actions.  Games on the other hand are worlds widely open for imagination, creativity and understanding human behaviour. I believe we are still taking our very first steps towards understanding these factors and it will take us a while before we grasp some solid knowledge about them. But for now, we have an interesting medium and plenty of unanswered questions, a great setup to start digging in.