Monday, January 30, 2006

LaTex and Genetic Algorithms

Spent a lot of time this week getting the paper ready for the conference. I decided to use LaTeX as the conference put an outline file out as .tex. I've only had brief foray in using LaTex, so formatting the paper had a steep learning curve. I do have to say however that it was quite fruitful. I now appreciate the power of LaTeX and will probably use it again for further papers.

Anyway, moving past the paper, I started working on the shochicken. Much of the work was re-familiarizing myself with the research I performed last year. I am really quite excited about this part of the project! Since a lot of the work has been more laying out the foundations, there isn't really much to report on progress with the shoechicken.

I did have what could turn out to be quite a good idea though. We'd assumed a fairly traditional machine learning approach for shoechicken. The system would employ some kind of reinforcement learning to build a user model. However, it may be a good idea to look into genetic algorithmic techniques. We could let the Shochickens breed!!! Sounds a little crazy, but there could be a great deal of merit to this approach. Only just thought about it, but will research the topic with some zest over the next week or so and let you all know how it goes!

Saturday, January 21, 2006

Completed the FeedSubscriptionService, Bufunkalo, and Shredder

The FeedSubscriptionService, Bufunkalo, and Shredder are all completed and tested! The next items on the hit list are the Coordinator (previously known as UIAgent) and the Shoechicken itself. The UIAgent was renamed because its role now is more of a centralized module that ties all other pieces together.

Michael and I have begun laying out the internals of both the Coordinator and the Shoechicken. The Coordinator is going to involve working out some messy synchronization issues between the modules, but we think we've got the main operations mapped out.

I've started writing code for the Shoechicken. I will probably start by creating a test case for the Shoechicken and build the internal event chain gradually. The first step will be to pull the data from the database and build the Article/Keyword matrix. I am going to have to create some fake user models with which to compute that ratings, so that will probably be next. Then, after combining the new data with the user model, we'll start working on using LSI to row reduce the data.

My wife suggested that we look to possibly adapting Shoechicken to perform a similar task for video footage. Shoechicken could recommend new movie trailers, news footage, and other kinds of video footage. After talking it over for a while it really seems like a possible direction for Shoechicken in the future. It would of course require delving into video image processing, which sounds like a good challenge. Let the fun begin!!

Sunday, January 01, 2006

Shoechicken Paper Accepted!

Here's the first update of 2006; Happy New Year everyone!

Well the first piece of news is that the paper Michael and I submitted to CATA-2006: ISCA 21st International Conference on Computers and their Applications was accepted!!! Go Shoechicken! Now the battle to come up with funding to get us to Seattle begins ...

As far as the project itself goes, over Christmas I've implemented but have not written test cases for the Bufunkalo module. That leaves test cases for the Shredder and Bufunkalo modules as the next two goals. After that we can move onto the User Interface Agent (which could possibly be renamed now that its function has changed), and the Shoechicken itself.

Points that came up while implementing the Bufunkalo were the fact that in many cases I either needed to listen for FeedEvents or FeedErrorEvents exclusively. I worked around this by just leaving the unnecessary method unimplemented; however, Michael and I have spoken about the possibility of separating the FeedListener into a FeedListener and another interface FeedErrorListener. We will discuss this in more detail after Christmas.