Posts Tagged machinelearning

Introducing FeedMod: Clean out your Facebook News Feed

In my last post, I wrote about the shortcomings of email and why I think it should be replaced to reduce spam and misuse.  Someone then commented that he found Facebook spam to be much more of a pain than email spam, considering that Gmail did a solid job of spam filtering.  While the focus of my post was more on curbing misuse rather than spam, the comment got me thinking.  First, I wondered how this guy got spam on Facebook.  I never get any poorly written posts on my news feed or in my inbox begging me to buy some Viagra knockoff.  Then, I realized that perhaps the commenter’s definition of spam is different than my own.

Within the past few days, my news feed has been jammed with these “numbers” posts.  For the most part, it’s been people who I haven’t seen or talked to in years posting a status update with a number followed by a random out of context comment that makes no sense to me.  It’s been getting so bad that one of my Facebook friends posted that he would defriend anyone that posted another “numbers” status update.  While these people aren’t trying to sell me Viagra, the effect is the same as email spam: annoyance and frustration.

It’s no surprise that the top reason for defriending is “frequent, unimportant posts.”  Others, as well as myself, are getting frustrated with junk like these “numbers” posts and are on the brink of defriending the perpetrators.  To solve this, I propose FeedMod, a Facebook news feed moderation system to remove the garbage and push the good stuff to the top.

Disclaimer

I have absolutely zero experience with the Facebook API, so I have no idea how much of this is possible.  We’ll see.

How it works

My proposal is to borrow from the Slashdot moderation system.  Facebook already has a “like” button, but it’s inconclusive that by clicking it, similar posts will be given priority in the news feed.  There is also an “x” for each post, but clicking this seems heavy-handed, since it appears to blot out most posts from that particular friend.  Instead, FeedMod participants will moderate each post with a positive, neutral, or negative descriptor.  The results of this moderation is to flush out the good posts and hide the bad ones.

Unlike the Slashdot system, every news feed post can always be moderated by a FeedMod user.  With Slashdot, the goal is to have publicly acceptable posts float to the top, hence the need for randomly selected moderators to avoid gaming the system.  With FeedMod, however, the goal is to have posts acceptable to individual users float to the top, so users should be able to moderate everything in order to provide as much training information as possible.  Perhaps later the moderation can extend across groups of friends so that certain Facebook users can be recognized as having posts liked or disliked by all of their friends.

Label each post as good, bad, or neutral

I would keep all the positive Slashdot post descriptors: informative, insightful, interesting, and funny.  I would keep one neutral descriptor, such as “normal” or “neutral.”  Also, I would modify the negative descriptors from what is used on Slashdot so that they are more appropriate for social networking and individual preferences: out of context, spam, unintelligible, and troll.  Most news feed posts that annoy me either fall into the “unintelligible” or “out of context” categories: posts that make no sense due to poor writing skills or lack of background information since I don’t live every minute of my life with the poster.  Stuff like the “numbers” posts would fall into the “spam” category and posts from friends looking to incite others (usually politics) would get labeled “troll.”

Customized News Feed

As a FeedMod user labels each news feed post with a descriptor, the news feed becomes customized to the user’s preferences.  This is the tricky part, because I’m not sure if the Facebook API will allow me to rip out the text of each post and store it in a database.  If I’m able to do that, I can try to model a user’s feed preferences based on the friends they mod as mostly positive or negative and the likelihood that a new post from a particular friend will be acceptable.  I could go a step further and find keywords or topics that are found in good and bad posts, allowing new posts to be shown or hidden in the feed based on their content.

If all else fails, defriend

I should definitely be able to rank a user’s friends by the number of positive, neutral, and negative posts.  That way, after a few weeks of modding posts in the news feed, a user can have a top 5 and bottom 5 list of the most liked and most offensive friends.  Then, the user can just defriend those bottom 5 and see an increase in the news feed quality.  There can also be rankings by each specific positive or negative descriptor as well as ranking by post volume.

What’s Next?

When time permits, I’ll try to figure out what the Facebook API is capable of and hopefully be able to attach moderation descriptors to each news feed post.  With that, I’ll be able to find the friends whose posts I like the most as well as the least.  Learning preferences will be more difficult, especially if the API has limitations on what can be accessed in a user’s news feed.  Why Facebook hasn’t already implemented a better news feed moderation system is beyond me.  I’m sure they’ve at least considered it.

, , , ,

No Comments

Fixing the frustrations of the digital nomad

Current computing technology consists of a mishmash of devices, ranging in size, portability, usability, and design lifetime.  Users are tied to their desks no longer: the future lies in mobile devices, and improvements to increase mobility and usability are key in the coming years.  Without the following improvements, I think most users’ computing experience will become very frustrating.  I’m hoping we’ll see:

A holistic computing solution

Everyone splits their computing time between a whole pile of devices: cell phones, media players, laptops, netbooks, desktops, and gaming consoles.  Even typical cable TV boxes have a hard drive and user interface.  The purposes and capabilities of such devices is becoming increasingly diverse and will probably continue to do so in the short term.  However, it’s becoming a real pain to use a standalone device for a different task.   Carry a cell phone for voice and text messages.  Carry a laptop or netbook for working on the go.  Carry a media player to listen to music.  When at home, many people switch from a laptop to a separate desktop PC.  It would be great to see some consolidation in order to reduce frustration with dragging around multiple devices and learning the quirks of each.

Since most people aren’t running weather prediction simulations, a single small mobile device would be sufficient for most people’s computing needs.  Ideally, something the size of a cell phone would combine the functionalities of a phone, camera, media player, laptop/netbook PC, and even desktop PC.  No longer would people with multiple devices need to synchronize information or become familiar with multiple interfaces.  A single device would provide a user with most of the computing power and capability that he or she would need without the hassle of dragging around a separate phone, media player, and laptop.  The device would be designed such that it could easily support and interface with different user input and output methods.

Improved user interfaces

Improved interfaces in mobile devices would make for a better user experience and improve productivity.  With multiple gadgets to haul around, each comes with a different interface with varying levels of usability.  For the most part, the smaller the device, the worse the user experience becomes.  A desktop computer with a keyboard, mouse, and giant monitor provides a solid experience for most, with both ease of input and output.  A netbook, however, may satisfy a user’s computing needs, but may cramp usability and productivity with its tiny screen and uncomfortable keyboard.  Even worse, web browsing and writing emails or text messages on some cell phones can be nearly impossible.  Personally, my experience with multi-touch phones has been horrible, since most of the time the phone selects something other than what I intended.  Rethinking and improving the physical and software interfaces would permit a shift to a cell phone-sized holistic computing device.

Improvements to both physical and software interfaces would provide huge benefits for the end user.  With respect to physical interfaces, improving multi-touch surfaces would be a big step in the right direction.  Input methods that are simple and accurate would make phone calls, text messaging, and web browsing on mobile devices much more enjoyable.   Output methods should extend beyond a tiny three inch screen, such as a wearable HUD or projector similar to that used in MIT’s SixthSense.  With regards to software interfaces, most cell phone operating systems provide horrible user interfaces which make the simplest tasks a real pain.  Most of these software designs inherit from heavyweight PC interfaces where input is made easy with keyboard and mouse.  Mobile developers should focus on increasing usability by making tasks require the fewest amount of user inputs possible.

Behavior and activity recognition

Computing systems of tomorrow could predict a user’s intentions and act upon these predictions.  With the introduction of accelerometers, GPS receivers, light sensors, cameras, and microphones in cell phones, plenty of research has provided ways to recognize user behavior and activities.  Such research can help provide an augmented reality for users, pointing out suggestions as to what a user could do based on his or her surroundings, current activity and learned preferences and behavior.  For example, a user traveling in an unfamiliar city could get instant suggestions as to where to eat when he or she normally takes a meal, with a mobile device providing directions to restaraunts that match the kinds of foods the user normally eats.  A HUD would allow the device to paint a path directly on the streets to take without the user staring down at his or her phone.  A device could automatically perform Internet searches and return data relevant to what a user is doing, whether it be retrieving a weather report before a user heads to the beach or providing real-time flight delay information as a user drives to the airport.  Such intelligent systems could interact with the physical world and turn on the lights or adjust the temperature at a user’s home before he or she arrives.    Also, behavioral and activity recognition would eliminate the need for user-generated Twitter and Facebook posts, performing automatic updates whenever a user changes activities or does something unusual.

Better inter-device collaboration

Figuring out how to get cell phone pictures off the phone and onto a computer can be a monumental task.  It’s even more enjoyable to get a projector to correctly display a presentation on a laptop.  Nearly every slideshow presentation I’ve witnessed, in classes and in conferences requires each presenter to wage war with his or her laptop and the projector to get the presentation to display properly.  Improving inter-device communication would make everyday computing more seamless and a lot less frustrating.   For example, a slideshow presentation could be loaded on a mobile device and a user could walk into a room with a projector, with the mobile device automatically connecting wirelessly to the projector and displaying the presentation.  There would be no cables to plug in, no display settings to modify, and no buttons and inputs to fidget with on the projector.  Synchronizing and moving data between different devices stands to gain significant improvement, for people are constantly upgrading their cell phones and laptops as well as sharing their data with others.

Longer design lifetimes

I’m guessing I’m not the only one with a pile of old hardware that’s worn out from too much use or discarded due to obsolescence.  More robust devices with longer expected lifetimes would reduce the pile of useless junk in the closet.  This would be especially helpful for mobile devices, which often wind up in mud puddles, toilets, or under someone’s steel-toed boot.  Modular construction would allow for periodic upgrades without throwing away the whole device.  An effort towards longer lifetimes and upgradeability would also significantly cut down on the amount of toxic e-waste.

Longer battery life

Most cell phones don’t last past  a couple days of standby or two hours of talk time.  Most laptops don’t make it past three or four hours.  With an increased focus towards mobile and ubiquitous computing, improvements in battery technology, power savings, and battery recharging would do wonders.  Apple has a new battery design in its latest laptops that double battery life, but more strides in this direction are needed.  Efforts on power-conscious radio communication and CPU utilization will contribute to power savings through better software.  Lastly, harnessing available energy sources such as motion, body heat, and the sun will also allow mobile devices to run unplugged for longer periods.

In general, these issues are what I think mobile computing needs in order to really take off.  The current experience is haphazard and lacking, requiring a mobile user to carry multiple devices with poor interfaces and short battery life.  With future applications, mobile devices will do a lot more than allow phone calls, web browsing, and text messaging.  They will further the integration of the cyber and the physical world, helping a user interact with the environment and the Internet in ways currently unimaginable.

, , , , , , , ,

No Comments

Rise of the Machines? I think not.

Using machine learning in the realm of wireless sensor networks, I have been able to improve sensor node localization and provide event detection.  Since I found the concepts of machine learning interesting, my adviser provided me with a book to get an overview: Machine Learning, written by Tom Mitchell of Carnegie Mellon.  Most machine learning techniques are equivalent to function approximation and most also require a significant amount of human intervention to work properly.  A machine learning model can be trained to take a set of inputs (such as sensor readings) and provide an output (a tank is hauling butt towards my base).  However, the model has to be trained to know what the correct outputs are (tank is present or not present), so a human must provide a limited set of training data where the correct output is known.

Given the state of the art in machine learning, there is no way for an AI to learn on its own.  There is reinforcement learning, but even in this case a human must decide the conditions and the amount of a reward or penalty for each AI decision or output.  This is why AI in games is terrible: when there are a large number of non-deterministic game states and a large number of non-deterministic actions to take, it is almost impossible to determine the correct action to take at every decision point.  This means that it is difficult or impossible to provide the AI with labeled ground truth or a reward for training.  More to the point, labeling each output with the correct value would be a real headache.  Instead, game developers resort to a rule-based system that still has trouble covering every possible scenario.  As a result, NPC characters still wind up doing something weird, like running into walls.

I’ve been working with this stuff for awhile, realizing its capabilities and especially its limitations.  Then, this weekend I see a headline reading: “Scientists Worry Machines May Outsmart Man.”  Overblown media hype at its best.  The article concerns a conference on machine learning attended by the aforementioned Tom Mitchell and futurist Ray Kurzweil.  From what I gather, the conference dealt with mostly philosophical issues with respect to advancing technology and its integration with everyday life.  There wasn’t much about strong AI taking over the world, yet it was plastered all over the news that a Skynet-esque entity would rise from the Internet and doom us all.  In some ways, simpler systems have already taken over our lives: GPS tells us where to drive, automated tools read MRI scans and provide diagnoses, and viruses wreak havoc on our personal computers.  However, strong AI has quite a ways to go, with most machine learning research peaking decades ago.  As one Slashdot commenter on the NYT article writes:

Any computer scientist who is worried about AI taking over no longer deserves to be referred to as a computer scientist. The state of “artifiical intelligence” can be best described as “a pipe dream.”

All of this comes on the heels of a TED talk on the development of a brain simulator.  The speaker indicates his current brain “implementation” is running on a 10,000 core Blue Gene system.  The article gives few details, but it sounds like a large scale artificial neural network, which still needs supervised training data to learn properly.  10,000 nodes is still way too small, since the average human brain has 100 billion neurons with 7,000 connections each.  Maybe in ten years the requisite computing horsepower will be in place, but I’m guessing the algorithms and the intelligence will not.

In a similar light, a team of scientists recently used DNA computing to solve the NP-Complete Hamiltonian Path problem.  Instead of using some artificial construct or model, billions of DNA sequences, each representing a possible path, were randomly constructed such that those having a correct solution would glow a different color.  While massive parallelism makes this a relatively fast solution to an NP-Complete problem, this approach really isn’t a doomsday AI either.

While specific solutions continue to be discovered for our technological problems, development of strong AI (and the development of Skynet) will sit on the back burner.  Until then (and it’ll be awhile), everyone can take off their tinfoil hats.

, , , , , ,

No Comments