About 3 months ago now I submitted my undergraduate dissertation on machine learning approaches to understanding sentiment of tweets. I did say I’d write a proper blog post about so…. This that blog post.
First thing’s first you can read it here.
Okay so the framing of this project begins about a year ago. I was nearing the end of my second year at KU and I wanted to learn about machine learning techniques. I went from absolutly no knowledge on machine learning whatsoever to ending up with an first for my dissertation on it. Here’s how that happened.
Immediately, ML piqued my interest for a project topic. I really wanted to do something that would stand out and interest me. I was not about to make yet another website or web app that was, in essence, a glorified database. Not to say there’s anything wrong with that, I was just getting a little bored.
If I have to give a piece of advice when picking your topic for your dissertation its pick one of two things
- Something you are interested in
- Something apt to your chosen career path
I found that my career was… not very clear at the time, so I ended up with the former.
The next step was finding something to do with the technology. I was humming hawing over ideas for about 3 weeks before I settled on Twitter based Sentiment Analysis. I chose it because it’s not something that its totally out of me realm of feasibility; failing is not a bad thing with a research project, again I just didn’t want too many surprises when I was already attempting to learn a brand new field of computer science and mathematics (a subject I haven’t formally studied for about 5 years at this point).
Before settling on my final topic I looked over papers at the current landscape of ML and what is was being used for – specifically not just in research but in the real world. This was an important framing for me. I wanted it to be closer to a validation of a technique rather than discovery of a technique.
Okay so you read the title (which changed about 5 or 6 times by the way) – but what the hell does that actually mean? Well long story short I want to use maths to predict if people are happy, neutral, or angry/sad about a specific brand or product from their Tweets. This is significant for a number of reasons all outlined in a pretty beginner friendly literature review – you can skip the maths bits.
The next step was to chose a supervisor. I thought about all the lecturers I had and new over the past few years and decided it absolutly had to someone who I was comfortable talking to, as discussions with your supervisor are remarkably helpful, and someone who has a basis in the field. Amusingly I chose a lecturer I had for a module on Agile practices… not techy I know but he did research in computer vision. Not the same field I know but turns out it was close enough for him to be so helpful.
My next tip is to get used to reading papers. Get used to reading papers over and over again. If you’re anything like me I read an academic text and 80-90% of it goes straight in one ear and out the other. Highlighters are your friend for parsing the imparsable….
Time to start. Define the end product, set goals along the way, give yourself deadlines. It’s a real challenge to get it all out of you and even harder getting what comes out of you into suitable shape.
Okay lets get a little technical – there’s a good chance that’s why you’re here anyway.
After just so much research, you tube videos mainly, I was ready to pick some machine learning models to attempt and implement. I picked two, K-nearest neighbour, and a feed-forward-back-prop neural network.
A KNN is basically a big look up list, super easy to implement (at least a slow version). I also read several papers that attempted Twitter based sentiment analysis with this technique so, that one was in the bag.
The neural network was an easy choice – the classic thing people thing about when the imagine ML. I just had to try it.
If you want to know more about how these work or how I implemented them you’re as well as to just dive into the paper and have a read of the literature review and then the implementation section. And if you don’t have a background in ML and want to learn more then look at some of the countless videos on you tube, to name a few The Coding Trains toyNN series or, if you’re more mathematically inclined, the Two Blue One Brown series on ML.
Time to do something new.
It’s a research project, I have to present something. This is why it was important to me to frame this from a real world, even business use-case scenario. The whole project was developed from the perspective of a marketing manager who want’s to know more about how their brand is perceived by their market on Twitter.
Really I wanted to end the project in a couple ways. I wanted to make sure there was a clear elaboration on project goals – where can it go now. I also wanted to make sure it hit the mark for demonstrating the usability of a system like this. Finally I wanted to wrap up – as per my last post – with a more anthropological view of ML and AI. Read that section at the end of the paper or extension of that speech on this article here.
Okay – that’s most of my thoughts on this crazy year. It’s been an absolute roller-coaster. I’ve loved every minute while cursing quite a lot of them. Of course I couldn’t have made it through without the support from my friends on my both mild breakdowns and endless rambles about matrices. Also special thanks to my supervisor Prof James Orwell, who only read part of my emails but still gave me such a reliable jumping off point for everything I did.
That’s marks the end of my time at Kingston; I’ve met some amazing people, made some awesome friends and grown so much, not least as an academic but as a person.
Next up an MSc in York…. Here goes nothing.