<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Synaptic &#124; preona &#187; Algorithms</title>
	<atom:link href="http://synaptic.preona.net/category/algorithms/feed/" rel="self" type="application/rss+xml" />
	<link>http://synaptic.preona.net</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 06 Jul 2010 13:26:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>The problems involved with developing Synaptic Web applications</title>
		<link>http://synaptic.preona.net/2009/12/the-problems-involved-with-developing-synaptic-web-applications/</link>
		<comments>http://synaptic.preona.net/2009/12/the-problems-involved-with-developing-synaptic-web-applications/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 09:21:37 +0000</pubDate>
		<dc:creator>swizec</dc:creator>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[synaptic web]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[Application programming interface]]></category>
		<category><![CDATA[Artificial intelligence]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Reader]]></category>
		<category><![CDATA[Machine learning]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[Research Groups]]></category>
		<category><![CDATA[Web application]]></category>

		<guid isPermaLink="false">http://synaptic.preona.net/?p=43</guid>
		<description><![CDATA[Image via Wikipedia Just as the foundation of modern RISC computers was a set of basic design and performance requirements put forth in the mid 1970&#8242;s, so too there are a few basic requirements for a synaptic web application. Paraphrased and somewhat shortened from synapticweb.org they are: They connect two or more categories of things [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsynaptic.preona.net%2F2009%2F12%2Fthe-problems-involved-with-developing-synaptic-web-applications%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsynaptic.preona.net%2F2009%2F12%2Fthe-problems-involved-with-developing-synaptic-web-applications%2F&amp;source=preona&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div class="zemanta-img" style="display: block; float: left; width: 310px; margin: 1em;">
<div>
<dl class="wp-caption alignright" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://commons.wikipedia.org/wiki/Image:Oeufs002b%2C55.png"><img title="Egg of shark (?)" src="http://synaptic.preona.net/wp-content/uploads/2009/12/300px-Oeufs002b%2C55.png" alt="Egg of shark (?)" width="300" height="561" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image via <a href="http://commons.wikipedia.org/wiki/Image:Oeufs002b%2C55.png">Wikipedia</a></dd>
</dl>
</div>
</div>
<p>Just as the foundation of modern <a class="zem_slink" title="Reduced instruction set computer" rel="wikipedia" href="http://en.wikipedia.org/wiki/Reduced_instruction_set_computer">RISC</a> computers was a set of basic design and performance requirements put forth in the mid 1970&#8242;s, so too there are a few basic requirements for a synaptic <a class="zem_slink" title="Web application" rel="wikipedia" href="http://en.wikipedia.org/wiki/Web_application">web application</a>.</p>
<p>Paraphrased and somewhat shortened from synapticweb.org they are:</p>
<ul>
<li>They connect two or more categories of things together</li>
<li>They create or derive new/novel meaning or utility from implicit connections</li>
<li>The connections they enable adjust in real or near-real time to changes</li>
<li>They bias towards implicit connections driven by user behaviour</li>
<li>They use the web as the platform</li>
<li>They apply a variety of inputs to extend existing applications</li>
<li>They become stronger through <a class="zem_slink" title="Network effect" rel="wikipedia" href="http://en.wikipedia.org/wiki/Network_effect">network effects</a></li>
<li>They are defined by usership and information flows and are untethered from any destination site</li>
<li>One of their primary inputs and/or outputs is the stream</li>
</ul>
<p>Some of these requirements are arguably almost trivial to implement. Most web developers already know how to use the web as the platform with various <a class="zem_slink" title="Application programming interface" rel="wikipedia" href="http://en.wikipedia.org/wiki/Application_programming_interface">API</a>&#8216;s and many of the most popular applications already base almost their entire ecosystem on extensions and pluggable widgets.</p>
<p>However there are some very hard nuts to crack in there. Namely the two biggest problems are creating a rating algorithm, because all connections need ratings/weights lest they are useless, that would comply and creating connections between several different kinds of things.</p>
<h3>The Connections Problem</h3>
<div class="zemanta-img" style="display: block; float: right; width: 310px; margin: 1em;">
<div>
<dl class="wp-caption alignright" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://commons.wikipedia.org/wiki/Image:M-T4.jpg"><img title="The new terminal at Barajas airport in Madrid,..." src="http://synaptic.preona.net/wp-content/uploads/2009/12/300px-M-T4.jpg" alt="The new terminal at Barajas airport in Madrid,..." width="300" height="450" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image via <a href="http://commons.wikipedia.org/wiki/Image:M-T4.jpg">Wikipedia</a></dd>
</dl>
</div>
</div>
<p>ON the face of it, creating connections between completely different and practically unrelated concepts is nearly impossible. How would you, for example, form connections between a platypus and a frog?</p>
<p>A human can [almost] easily make the connection, after all, a human came up with it. The association is quite simply that they both live mostly in water, but aren&#8217;t fish.</p>
<p>But how could a computer come up with such a leap of logic? It can&#8217;t do this with <a class="zem_slink" title="Machine learning" rel="wikipedia" href="http://en.wikipedia.org/wiki/Machine_learning">machine learning</a>, simply isn&#8217;t possible by any means we know today and there is no set of organised data large enough to figure out intricate connections like that. Perhaps if you had the whole of wikipedia processed and a few years of supercomputer time &#8230; then perhaps, perhaps you could crack it.</p>
<p>Did you notice it? The answer was right there, in those two paragraphs.</p>
<p>No? Well let me help you out, the answer is to use humans to make the connections. This might not work for every application out there, but humans in general are very good at making illogical and non-obvious connections. The real kicker? These are the connections that <em>really</em> matter to us. We don&#8217;t, personally, care that water on Phobos implies life. We care that our neighbour&#8217;s cat reminds us of Mr. Fluffy we had as a child.</p>
<div class="zemanta-img" style="display: block; float: left; width: 310px; margin: 1em;">
<div>
<dl class="wp-caption alignright" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://commons.wikipedia.org/wiki/Image:RL_1938_Bugatti_57SC_Atlantic_34_2.jpg"><img title="1938 Type 57SC Atlantic from the Ralph Lauren ..." src="http://synaptic.preona.net/wp-content/uploads/2009/12/300px-RL_1938_Bugatti_57SC_Atlantic_34_2.jpg" alt="1938 Type 57SC Atlantic from the Ralph Lauren ..." width="300" height="201" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image via <a href="http://commons.wikipedia.org/wiki/Image:RL_1938_Bugatti_57SC_Atlantic_34_2.jpg">Wikipedia</a></dd>
</dl>
</div>
</div>
<h3>The Rating Problem</h3>
<p>Because all connections and pretty much anything about information is rather useless, or only marginally useful, without some sort of weights acting on the whole mishmash of technologies, we soon clash with the toughest nut to crack with all of the Synaptic Web.</p>
<p>Eric Schmidt has said that <em>the biggest problem of this age is discovering a link rating algorithm that works with a real-time information stream</em>. The answer, in my opinion, is a synaptic application.</p>
<p>Right now most ratings are considered globally, are created very explicitly, and barely tell us anything about what they&#8217;re trying to rate. <a class="zem_slink" title="Google" rel="homepage" href="http://google.com">Google</a> <a class="zem_slink" title="Google Reader" rel="homepage" href="http://www.google.com/reader">Reader</a> suggests things as very very awesome even when they were &#8220;liked&#8221; by people I&#8217;ve never heard of. <a class="zem_slink" title="TweetMeme" rel="homepage" href="http://www.tweetmeme.com">TweetMeme</a> promotes stuff every-fucking-body in the world has retweeted, but there is nothing even remotely considering whether <strong>I</strong>&#8216;m going to like it.</p>
<p>The synaptic web model predicts a future where applications understand my actions (some of this is implicitly creating connections between things) and dynamically adjust their ratings of content accordingly. One of my biggest pet peeves, for example, is that <a class="zem_slink" title="Last.fm" rel="homepage" href="http://last.fm">last.fm</a> says my favouritest band in the world is something I haven&#8217;t listened to in almost a year. Wtf?</p>
<p>Creating such algorithms is very problematic though. The only real way of even scratching the surface of this problem is by applying a lot of meta-heuristics, like <a class="zem_slink" title="Simulated annealing" rel="wikipedia" href="http://en.wikipedia.org/wiki/Simulated_annealing">simulated annealing</a>, and doing a lot of reinforcement machine learning &#8211; something that isn&#8217;t as perfectly researched and understood as supervised, unsupervised and semi-supervised machine learning algorithms &#8211; to the problem of weighing connections and things in databases.</p>
<p>And even after you&#8217;ve created a good reinforcement learning environment with a lot of simulated annealing going on, you&#8217;re still left wondering how to even rate user action. Sometimes clicking a link is good because the person liked what they were suggested, at other times they opened and shared it just so they could warn their friends not to bother with this crap.</p>
<h3>Final Summation</h3>
<p>In short, creating a real synaptic application is <em>hard</em> and those that do make one are bloody amazing guys.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/1a21be41-98e3-4ed6-b6c1-4445ea4460aa/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=1a21be41-98e3-4ed6-b6c1-4445ea4460aa" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://synaptic.preona.net/2009/12/the-problems-involved-with-developing-synaptic-web-applications/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

