9 ms·
Google Prediction API
- jbrennan 16y agoI knew this was coming.
- atlbeer 16y agoWere you using their prediction API?
- frofro 16y agoHe is the API.
- nerfhammer 16y agoGoogle should write a FAQ on what happens when their prediction API becomes self-aware
- jbrennan 16y agoI knew you'd figure out my joke. Have an orange star.
- izendejas 16y agoI had this idea myself, basically machine learning as a service about 3 years or more ago. Somehow, I also knew Google would implement something like this. So while I still consider this a viable startup idea, I knew it would be tough to compete against a behemoth that already has tons of data and experience training countless machine learning algorithms.
- srw 16y agoWe all have this idea in the past, the difference is that Google has many top Ph.Ds pushing Machine Learning advancement, and this is something we can't do with an idea.
- jacquesm 16y agoBut three years ago google didn't have this, you could have cornered the market in those three years. Not doing something because 'google might do it' is not a very good reason.
- izendejas 16y agowell, that's really not the reason i didn't do it. amongst other things (my lack of preparation at the time, primarily) it just wasn't easy for anyone but a few big companies because the biggest requirement is that you have not only scale, but loads of data. this is no longer true. you now have aws, hadoop, etc, so it's easier and cheaper to scale, but this is why i knew google would do it. they had the capacity, and they still do. very smart machine learners, petabytes of data, scale, etc.
- rw 16y agoThe "AI API" is the dream application. Just imagine: you get to implement (and even discover) cutting-edge prediction algorithms, make them scale, and expose them via your protocol-of-choice. No frontends to write, no Joe Luser to support, just beautiful math and hardcore infrastructure engineering. There are reasons this hasn't been done before. I don't think it's a viable startup idea. Think about the capital you would need to even get something like this off the ground. Doing the AI API 'right' would require a supercomputer, if you take it far enough. A guy can dream though. Maybe doing high-frequency trading would get you most of the way there. IMHO, go for the niche: elsewhere in this thread Directed Edge was mentioned, and they are a good example of a business tackling a well-defined problem with exciting tools and techniques.
- Jd 16y agoI knew you would make that comment
- abossy 16y agoAre there any input/output samples?
- sketerpot 16y agoI couldn't find any, but here's an explanation of the input format, with some example snippets: http://code.google.com/apis/predict/docs/developer-guide.html#data-format http://code.google.com/apis/predict/docs/developer-guide.htm... It's pretty straightforward.
- scompt 16y agoHere's one: http://code.google.com/apis/predict/docs/language_id.txt http://code.google.com/apis/predict/docs/language_id.txt Linked to from this page: http://code.google.com/apis/predict/docs/getting-started.html http://code.google.com/apis/predict/docs/getting-started.htm...
- mseebach 16y agoAre there any (preferably FOSS) libraries that does anything like this?
- deleted 16y ago[deleted]
- conesus 16y agoIn Python there is a wonderful library called the Natural Language Toolkit (NLTK) available free and open source at http://www.nltk.org/ http://www.nltk.org/. With NLTK you can build classifiers, decision trees, and train/predict with bayesian classifiers similarly to Google's Prediction API examples. It's pretty easy to get started, and it's code that you run locally, so there is no network traffic. I use it on http://www.protopub.com http://www.protopub.com for classifying rss feed stories based on user feedback, so Protopub can recommend future stories that you might like. NLTK is far easier than rolling your own classifiers, but even that is not too difficult. See the O'Reilly book Programming Collective Intelligence.
- haidut 16y agoCan you please try our news recommendation service and let me know how it stacks up against your site in terms of (perceived) accuracy? The site is http://www.euraeka.com http://www.euraeka.com I can provide more info if you need it. Email me haidut (at) gmail (dot) com. I just need some feedback from someone who has built something similar/related.
- sketerpot 16y agoThere's also Weka, which can use almost exactly the same file format that Google is using, and do the same kind of things (though perhaps with different algorithms). It's pretty pleasant. http://www.cs.waikato.ac.nz/ml/weka/ http://www.cs.waikato.ac.nz/ml/weka/
- jim-greer 16y agoI recently used Weka to create a simple rules-based fraud model for Kongregate. It worked very well, and had a lot of options for algorithms. The UI is a little weird, but it's worth checking out.
- frisco 16y agoNeed more information. What kind of algorithms are they employing on the backend?
- m0th87 16y agoThis is easily the most interesting announcement so far. Machine learning has so many applications, but its use is constrained by the high barriers to entry. Recommendation engines, for example, are huge sales drivers, but few among even the largest ecommerce stores use them. A simple prediction interface that's built on the ML expertise at Google is a win for everyone.
- sketerpot 16y agoDirected Edge, a promising YC startup, makes recommendation engines surprisingly easy: http://www.directededge.com/ http://www.directededge.com/ It's quite a bit higher-level than what Google is offering here, with all the benefits and drawbacks that entails.
- deleted 16y ago[deleted]
- hussong 16y agoThanks for the friendly plug :-) You can find the full documentation on our developer site at http://developer.directededge.com/ http://developer.directededge.com/, and we offer a free developer account for non-commercial purposes: http://www.directededge.com/signup-developer.html http://www.directededge.com/signup-developer.html If anybody is giving the Google Prediction API a whirl for recommendations, we'd love to hear about your findings!
- natfriedman 16y agoIf I have a graph of customers and what products they've bought, Directed Edge makes it easy to figure out what products to recommend to each customer. Generating the same recommendations with Google's prediction API is not as obvious to me. What data do you train it with? The nth product the customer bought as the output, and the 1..n-1th products as the input? Maybe I'm slow, but I don't see how google's prediction API is a good replacement for collaborative filtering type recommendation engines.
- physcab 16y agoFor very specific problems, yes. The translation classification example is definitely a type of prediction problem that would be good for this service. However, this is far from a silver bullet to ML problems. It can be quite dangerous, for example, to send off a bunch of data to google and immediately trust their analysis without knowing the underlying application of their algorithm. As a researcher in this area, what I would LOVE is if I could create my own algorithm, send it to Google, upload enormous amounts of data, and get back a result. Because right now it's difficult to scale complex algorithms to datasets in the GB-TB-PB range. Mahout is taking a valid stab at this problem though.
- lsb 16y agoWould you give every data point of yours over to Google?
- frisco 16y agoData doesn't have to be readable. Often, preprocessed datasets are totally incomprehensible for everyone except whoever prepared it. Multiple fields are combined into composites, rescaled, transposed, etc.
- aquark 16y agoAgreed -- look at their own example data: wine,5,1,1 no-wine,0,0,10 This data is meaningless to anyone who doesn't know what the columns mean, and you don't have to tell that to Google. And you can of course replace the labels with any other text you want without affecting the algorithm.
- tel 16y agoYou're providing a lot of entropy to a body that has even more sitting around. If anyone could find some part of a dataset that might be sufficient to deanonymize your data Google could. Not saying you need to be so paranoid, just that non-readability of data might be comparable to obfuscating your javascript to keep people from prying into your code. At least to a sufficiently knowledgeable corporation.
- n8agrin 16y agoThis type of myopic anti-Google thinking is getting old. Do your homework, read their service agreements. If you don't agree with them, don't give them your data. If they sound reasonable, assume that Google will respect them. After all, they are not stupid, they understand they cannot tarnish their business reputation by violating a customer's trust. If I'm wrong and they end up being stupid, they can be held accountable by law. In fact from their TOS (http://code.google.com/apis/predict/docs/terms.html http://code.google.com/apis/predict/docs/terms.html): 4.2. Google claims no ownership or control over any of your Data. You retain copyright and any other rights you already hold in the Data, and you are responsible for protecting those rights, as appropriate.
- cb33 16y agoI predict this will be a hit.
- tybris 16y ago"Upload your data to Google Storage for Developers, then use the Prediction API to make real-time decisions in your applications." I can understand the necessity of this, but that'll be some serious lock-in.
- pyre 16y agoNot necessarily. Unless I'm misunderstanding, you're not transforming your historical data in Google Storage. So as long as you kept it backed up outside of Google Storage, then you shouldn't have any issues.
- carbocation 16y agoFrom the very little information that I see available so far, it appears that Google will first stab at discrete predictions. That is, I don't see probabilistic output yet. Also, from http://code.google.com/apis/predict/docs/developer-guide.html http://code.google.com/apis/predict/docs/developer-guide.htm..., it is clear that they perform accuracy analysis using the training data. That is, there is no "testing" vs "training" dataset distinction at this point; there is just cross-validation of the training set.
- jey 16y ago> That is, there is no "testing" vs "training" dataset distinction at this point; there is just cross-validation of the training set. If they just create a test set from the training set, and omit that from the training, what's the difference? The main thing is that you don't want to include the test set in the training step, and I assume they're doing that.
- carbocation 16y agoAccording to what they wrote, there is no separate testing set, so they estimate accuracy based on the training set. They use cross-validation to reduce their overfitting bias. (I could be wrong since I haven't actually used their service, but this is the take-home message of the wording of their explanation. If they intended to convey otherwise, they used the wrong language.)
- mikecane 16y agoAs a non-techie, I don't understand the language example they're using. It seems to me many prediction engines are originally built to try to forecast winning lottery numbers or other such gambling events. Google expects me to believe they did this for language?
- btilly 16y agoThe point is that they took a large number of documents, which are clearly labelled as to language, gave it as a training set to the machine, and they now have a classifier that lets you input random text and tells you the language it was probably written in. In principle you can do this with any data set and any set of discrete outcomes. In general, though, you should expect that the resulting classifier won't give you much insight on why it came up with the answers that it did. Plus it frequently is less accurate than a trained human. But it is much, much cheaper.
- mikecane 16y agoWhenever I see the term "prediction" applied to software, I immediately think of the books "The Eudaemonic Pie" and "The Predictors." I guess they've spoiled me.
- jodrellblank 16y agothey now have a classifier that lets you input random text and tells you the language it was probably written in. Incidentally, Google Translate does this and starts guessing the source language as you start typing. I found it interesting that when you type a single character, w is guessed as Polish, i is Norwegian, s is Czech, e is Portuguese...
- ovi256 16y agoFrequency of first-character of words in those languages.
- Sandman 16y agoThe purpose of the example was to show how the Prediction API can recognise the language used just from a few words. So, the data given to the API is a few words in French, and it's prediction is that the language is French. I believe that they're already using this technology in Google Translator. You just type in a few words and it immediately recognises what language is being used. Then you only need to choose the language to which the text is to be translated.
- metaguri 16y agoI was guessing that google (in their never-ending desire to consume more data) would want to use us as guinea-pigs to improve their algorithms. It's not 100% clear to me, but from the terms of service: By submitting, posting, displaying, or transmitting Data on or through the Service, you give Google permission to process your Data for the sole purpose of enabling Google to provide you with the Service in accordance with its privacy policy. You hereby grant Google all licenses to your Data necessary to process the Data and provide you with the Service in accordance with its privacy policy. As a part of the Service and through provided interfaces, Google may allow you to remotely access, view, and download results of the processing of your Data. (via http://code.google.com/apis/predict/docs/terms.html http://code.google.com/apis/predict/docs/terms.html) I imagine that they might claim the right to use your data anonymously to improve their algorithms, much like they do for your personal data in their other apps. I mean, what better way to refine their supervised learning algorithms than via an endless supply of training sets? But I hate wading through legalese, anyone have any insights?
- n8agrin 16y agoAlso from the TOS, in the section directly above the bit you quote: 4.2. Google claims no ownership or control over any of your Data. You retain copyright and any other rights you already hold in the Data, and you are responsible for protecting those rights, as appropriate.
- btilly 16y agoDid you miss the phrase, for the sole purpose of enabling Google to provide you with the Service in accordance with its privacy policy? That phrase tells me that the ONLY thing they get permission to do with the data is use it for processing your requests. And they definitely need that. In order to process requests, Google has to make a bunch of copies of your data, create models, etc. Furthermore Google will need to keep copies so that it can use the model it generated for future requests. If the data that you have uploaded is confidential, proprietary, etc, then this requires copyright permission. (Particularly since in the previous clause they made it clear that you retain full copyright.)
- 16y ago
- caffeine 16y agoDarn ... I'm halfway through writing one of these. I guess I just have to make it better..
- jimbokun 16y agoBut wonderful validation of your idea, no?
- zefhous 16y agoI'd love to see how well it could predict comment ratings from Hacker News. The following data would be a good start: 1. Text of comment 2. How many points the comment has 3. How many points the article has 4. Time article was posted 5. Time comment was posted I'd also be interested to see what kind of user bias there is. If you don't provide user names, you could see what kind of rating a comment should have based on its content, and what rating it actually has because certain users are generally loved (pg) or hated (jasonmcalacanis) by the community.
- bshep 16y agoThat sounds really interesting! If anyone does the analysis it would be cool to see the results.
- physcab 16y agoThat would be interesting. Does anyone have a dataset? Ideally to do this type analysis you would also need to know the upvote (or downvote) history of the users so you can pinpoint any bias, or predict which comments you as a user are most fond of reading.
- crystalis 16y agoTo be fair, several posters can earn their points on name alone: - grellas can post a one liner on a law issue - DarkShikari can post about video codecs - tptacek can post about security - patio11 can post about bingo - edw519 can post a grocery list
- derefr 16y agoThere should be one more data point in there, and it's the hard part, because it makes the dataset nonlinear: 6. The same data for parent and children of the comment Every comment's rating is heavily swayed by its position within the thread. A comment replying to something at the bottom won't get voted on. A comment replying to something at the top, with just as much merit, will almost always get somewhere between 0.5x to 1.0x as many votes as its parent. A child comment somewhere within a low-voted comment's descendants saying "why am I getting downvoted?" has the potential to call off the latch-on-downvoting effect, and thus give the comment a chance to spike upward. A comment in reply to something no one bothered reading will be ignored despite its merits. Etc. Of course, your "content worth rating" is orthogonal to all of those concerns, and would probably help in changing the patterns mentioned above, which are mostly bad for the comment futures market. :)
- joubert 16y agoDoes google use the data you upload for other purposes besides just driving your (private) results via the prediction api?
- deepu_k 16y agoFrom their TOS seems like they won't use it for any other purpose. This is discussed on a comment thread above.
- tszming 16y agoBasically what I see is they implemented an open platform for running classification algorithms that gives discrete categories as output. Automatic selection from multiple machine learning methods - maybe just simple cross-validation.
- T_S_ 16y agoNot enough details available on how it works. Would rather build my own at this point. Plus the way this is billed oversimplifies the whole model design process. Sorry to sound so negative, but I just earned a PhD in Machine Learning. How would you feel if you were replaced by an API? :-(
- akadien 16y agoI know. It's worse than being outsourced.
- eob 16y agoNext thing we know, the Tea Party is going to start protesting APIs taking our jobs. EDIT: In seriousness, though, this is a good thing for ML PhDs like you (and eventually me in a couple more years). Building the progress that's already been made in the field into easy-to-use APIs frees us up to work on the next steps. Now if they just released an Integer Linear Programming API that would give us access to their compute cloud...... :)
- dan00 16y agoWell, expertise isn't only needed for building something, but also for using it.
- stuff4ben 16y agotrust me, you have nothing to worry about. Us noobs with regular bachelor degrees who use this will get into trouble because we can't understand the results and the math is all over our heads. We still need you PhD's...(gives T_S_ a hug)
- T_S_ 16y agoThanks man, sniffle. Actually I'm not too worried about that. More worried that the guys at google are waaaay smarter than me :-)
- markschneider86 16y agoVery useful info if your selling in an international market. But I am not, thankfully. But thanks for the good info. http://denversinsurance.com http://denversinsurance.com http://denversinsuranceblog.com http://denversinsuranceblog.com
- natfriedman 16y agoThis is interesting: "Automatically selects from several available machine learning techniques" So not only does it learn, it's learning which learning techniques work best for different problems.