Okay I’m back from my deep analysis…. I’ve spent almost all waking hours of the day for the last six weeks reading everything said about the Riya beta. This included: feedback emails, blog posts, Wiki posts, etc. After working on Riya for over a year I wanted to step back and see what we got right and what we got wrong. I will speak more on this in a later post. Before we move on I wanted to recognize some of the most significant contributions of our team to this beta:
Lorenzo Torresani and Kuang-chih Lee significantly enhanced the Riya face recognition model. They developed a 3D model of each face onto which they project a front view of a person and then rotate to interpolate a side view. There are cases where Riya succeeds in recognizing people that are just amazing. These guys are responsible for some of these “Wow, how did it get that” cases. Lorenzo’s maturity and focus on getting the best and doing the best research leads to work like this. Kuang-chih’s sheer effort has made him one of the most prodigious researchers we have. I don’t think Riya would be where it is without him. I want to hire more folks like these two guys and set them free to truly innovate.
The Riya system is built on the idea of contextual recognition, the use of things other than the face in a time series of photos to decide who is who. Burak was the genius who came up with this idea when we founded the company, but the real innovation was actually getting it to work. Dragomir Anguelov is responsible for building the engine that combines all of the different pieces to make the guesses. I would describe it more but it is truly our secret sauce. Adding more factors isn’t always better, we found this out at the last minute, so he and Burak developed a new algorithm that shows you enough results to make training worth your while, and still keep the error rate under control. Without the hard work of Drago, the Riya service would not even work at all. I watched Vincent Vanhouckhe and Drago work for weeks to tune and retune the system. Vincent developed a massive simulation system that allowed us to tune the system at least 10x to 100x faster than trial and error. Over time this simulation system will become one of the key strategic assets of the company. No one asked Vincent to do this, his drive for efficiency and practical research approach just made doing it logical. I need more Vincent’s too, btw.
Danny Yang made this product stable. His research area and code is something you will only see later once we roll out our new system, but for now he tested and retested the Riya system more than anyone else in the company. We only recently hired our first QA guy Dhiraj so before that we all did QA (which is something I firmly believe in for the first Beta). They say IQ is about pattern recognition ability. If so Danny is probably the smartest guy amongst us. He found more issues and more corner cases than almost anyone else in the company. I can't wait to see the new product he is working on.
One of the contextual clues we use is clothing. Baris developed a more sophisticated clothing model that can tell apart two blue shirts that differ only because of small pinstripes. How did he do it? He looked at color gradients (changes for us normal folks) and the edges between where two colors change. His core innovation is how to do this fast. In the same 18 seconds that Riya is uploading your photo, it is finding textures as well as faces.
Many of you feel the uploader was still too slow. Some of you know that it is actually finding the faces in the photographs not just uploading the photos. From the alpha to the beta the uploader actually finds more faces by detecting more orientations (e.g. 45 degrees in case you are leaning on a friends shoulder). This requires 40% more compute time but because of Diem’s enhancements we were able to check these additional orientations without any additional time. Diem is a very quiet guy who comes in works all day and is literally the glue that holds this company together from software perspective. His code ties together the algorithms from Burak’s team with the web services of Azhar’s team.
The Simple Training page has another innovation. Its use of Ajax to allow you to train it by dragging and dropping is no “simple” feat. This was all the doing of Dan Chiao. Dan worked for weeks and wrote and rewrote the Ajax so it would work in multiple browsers (although sorry Safari users – it will never work there). He had to try many new innovative tricks to make sure it worked every time. It is so novel we are considering making it open source so others can play with it and help us to improve it. Ajax is not perfect but Dan’s effort and skill make it stable enough for us and let to a user interface that makes training much faster than before. I just adore Dan. He started here as the “little engine that could”. Today he is our lead architect for much of our front end and application development.
You already know that our data center continued to run despite the crush of users we had on the first couple of days. Ben Lee and Andrew Miller (who joined just two weeks prior to the release) are responsible for this. They didn’t just setup a great data center. They completely automated it. Ben has scripted everything so that the current data center of 70 machines can be deployed with a new release (to every machine) in less than a minute. He can even deploy a new OS and all the Riya software to every machine fresh in under 10 minutes. When we think of technology we don’t always think of data center automation, but Ben and Andy are not just great IT guys they are also fully aware that this sort of automation will allow us to run 1000 machines with 4 guys instead of 60, saving us a lot of money in the long run. We never asked them to do this, they just did. I was really impressed.
Riya search does something that few search engines do. When you add a tag to your photos it updates your private search almost instantaneously and the public search usually in minutes. It also had to take into account viewing permissions and yet be very fast. This required a whole new architecture for search updates. Your typical search engine updates once every few weeks. Scalable real-time updates required a radical new architecture which was the brain child of Neelesh Vaikhary. Being so experimental it still has a few glitches, but the fact that it even works with so little load on the servers is just genius.
Client software is just plain hard. Today with all of the flavors of windows, firewalls, proxies, anti-virus software, and anti-spyware software getting anything to install properly is a miracle. We are not perfect here, in fact almost 80% of our support emails relate to client issues, but I am so glad Tanvir, Nitin, and Vineet are on the job. Tanvir recently joined our team as the client architect and has just blown me away. I am truly wow’d by his depth of technical skill and productization experience. These guys created the right logging tools to get reports from users when things failed. Because of all three of these guys, we were able to resolve and fix almost 90% of the issues. The hardest type of engineer to find is not the one who can innovate but the one who will work tirelessly to resolve corner case after corner case. Most people think they are too good for this, but most great products become great because they “just work.” What seems like a simple “just work” to a user is usually a massive effort on the back end ot handle corner case after corner case. Skype was much like this in VOIP. They just worked with any proxy, router, firewall, bandwidth level, etc. In many ways this was their core innovation. Because of these three guys we will get there and without people like them we will fail to be a service that people say is easy to use.
When you hit submit on the training page and Riya runs auto-recognition there is a lot going on in there. While Burak and team did a great job with the core algorithms it is Nikhil who’s craftsmanship allows us to compare a new face your just trained to the 5431 unrecognized faces left in your album to see if there is a match. Most of all we do it in 5-10 seconds. The Riya service is a complete distributed grid architecture which means all of the files are split across all the machines. Nikhil developed a very simple yet powerful architecture for doing this fast and efficiently. Together with Burak, he also built the architecture for storing our no-lists (the list of people we thought looked like you, but you later told us were wrong). We use this information to better improve our results. Nikhil has really risen fast at Riya. His designs are well thought out, scalable, and thorough. After launch we had an issue with about 25 accounts where things had gotten corrupted. He exhaustively diagnosed the issue, turning over every rock, and eventually solved it. Nikhil rocks!
Design usually gets short shift because it can’t be patented, but many people like the new UI (especially the Time tab) and Tara deserves credit for this. It is my belief that Tara is a genius at design. I actually think she is even better at design than even at blogging. The idea of slicing and dicing up your photos in so many dimensions (time, people, albums, etc) was her idea. She just seems to get how to design Web 2.0 pages. Her and Dan are going to be teamed up to make sharing and some other items easier in the future.
Sandeep designed our core distributed architecture and hashing system for finding a photo quickly within our hundreds of machines. Without this system Riya would run very slowly and require a central database. I find that Sandeep is one of the most customer responsive engineers we have. Some engineers always seem to be bothered when they have to stop everything they are doing to solve a customer issue. Sandeep is not one of these. I wish we had a little Sandeep in everyone.
Burak continues to be the fountainhead of innovative ideas at Riya. He is already working the third generation of our face and text recognition models. As I've mentioned above many of the core innovations of Riya come from his mind. I’ve droned on and on about Burak in the past … you all know I love him.
Azhar key innovation is how he hires. His hiring process is like an enema. He reviews and analyzes every resume, he grills the candidate for up to three hours personally (of course he is so nice, they rarely know they are getting grilled), and he gives them tests, and he has found and hired a tremendous team. I also realized something recently. At Riya today we get very few support emails. In fact I've never worked somewhere where I got so few given the number of users we know are using the system. I credit Azhar and his team for his. Just amazing work.
There are many others who contributed but many of those folks are relatively new to the company. I am surrounded by some of the smartest people I have ever worked with. I love working here.
<a href="http://technorati.com/tag/riya" rel="tag">riya</a>
<a href="http://technorati.com/tag/riyarocks" rel="tag">riyarocks</a>

Was nice readings this.. you guys have made riya work. A photo next to each name would have been much nicer.
Posted by: Venu | May 25, 2006 at 04:25 AM