Slashdot Mirror


Bayesian Filtering Outside of Email?

clonebarkins asks: "Is anybody out there using Bayesian filtering for stuff other than to get rid of spam? For example, how useful would Bayesian filtering be to identify news stories/blog entries in the RSS feeds I monitor? Is there any software out there using Bayesian filtering to do this sort of thing already? Are other types of filters better for these purposes?" What other areas can you think of where Bayesian filtering may prove useful?

16 of 54 comments (clear)

  1. I'd like to use it for Slashdot.. by NanoGator · · Score: 2, Funny

    .. imagine, filtering out MS fud stories and dupes!

    --
    "Derp de derp."
  2. Re:Nyuk Nyuk Nyuk by NanoGator · · Score: 3, Interesting

    " There have been a few "attacks" on slashdot which could have been prevented by simply blocking 'repeat' posts. "

    Filerting out GNAA posts would be nice. Not that I've run into it lately, but there was a story a couple of months back that had nearly 1,000 GNAA posts. Impressive organization on the behalf of the trolls, but it did take a while to suss out. (I wonder how many mods burned up mod points that night...)

    --
    "Derp de derp."
  3. Bayesian isn't the right approach by costas · · Score: 4, Informative

    Bayesian needs pre-determined "bins" of data to assign a new piece of information to --that's a limited approach that will break down for news articles or generic Web pages. A combination of context- and collaborative-filtering is a much better approach IMSHO (that's my newsbot, BTW).

    1. Re:Bayesian isn't the right approach by stoborrobots · · Score: 3, Insightful
      Most "Filtering" techniques fall into the same trap you've outlined - namely that they require pre-determined bins to sort data into. This is the nature of the beast.

      There are "clustering" techniques which attempt to identify similar bunches of data, without respect to any pre-determined bins, but the are not as useful for programmatically dealing with information. This is simply because you don't know what the clusters will contain, so you cannot make assumptions about what you will want to do with each cluster.

      Classification systems are used when you WANT to fit things into one of a number of bins that you already have decided what to do with (e.g. SPAM - delete, From Mistress - show now, From Boss - file for later, From Debt collector - return "Deceased", etc.) Bayesian filtering is simply one form of classification.

      For more information and ideas, check out KD Nuggets

      Nice work on the newsbot, BTW.

  4. Autonomy's been doing this for years by Jayfar · · Score: 3, Interesting

    See their technology overview. I believe they have a number of (ugh!) patents on Bayesian text analysis. They were founded by a Dr. Michael Lynch to productize research he did at Cambridge U.

  5. Bayesian Approaches to Phylogenetics by GrumpySimon · · Score: 5, Informative
    Bayesian approaches have really taken off in studies of molecular evolution (Phylogenetics).

    For those of you who don't know, phylogenetics is a set of techniques for working out a 'family tree' of taxa (taxa = basically units of analysis, normally species or genetic sequences). The main reason for doing this is that it gives an objective way of testing evolutionary hypotheses. For example - If I predict a certain protein has evolved through stages A, B then C, but my tree shows a pattern of A - C - B, I can reject that hypothesis.

    Phylogenetics is extremely powerful and has allowed us to investigate many many cool things (like the origin of modern humans in Africa, and the migrations out of). The problem is that there is a *huge* number of trees to search to find the optimal set of trees. The formula (IIRC) is 5N-2!!, where N is the number of taxa. So, 10 taxa (species or whatever) has 34 million trees, and when you get up to a real dataset it gets much worse: There are 10^132 ways of connecting my 77 taxa dataset.

    Bayesian approaches can really really speed up this process. We used to have to do a large number (100-1000) of heuristic analyses and then bootstrap (a resampling procedure) these to get a confidence interval, of say, a date of a divergence time or a model fit. These Bayesian techniques allow us to do, say, 10 long runs whilst simultaneously estimating parameters.

    Sooo much faster (ie - that 77 taxa dataset mentioned before - instead of ~250 hours x 1,000, I can do the same in about ~100 hours x 10.

    There are some problems - it possibly over-estimates support (ie underestimated uncertainty in the data) for taxa groupings, compared to the bootstrap method. This isn't terribly surprising given the hill-climbing approach these algorithms use, but no-one's really sure whether this is a good or bad thing (since no-ones really sure how to interpret the alternative bootstrap support)

    Fantastic software: Mr Bayes: Bayesian Inference of Phylogeny
    and BAMBE: Bayesian Analysis in Molecular Biology and Evolution

    1. Re:Bayesian Approaches to Phylogenetics by wayne606 · · Score: 3, Informative
      For a good summary of this stuff check out Biological Sequence Analysis : Probabilistic Models of Proteins and Nucleic Acids.

      Also, hidden Markov models (which are used for phylogenetic analysis and involve Bayesian statistics) have been used longest in speech recognition.

  6. MT-Newswatcher by megabulk3000 · · Score: 3, Informative

    Well, the latest version of MT-Newswatcher for Mac OS X utilizes Bayesian filtering to filter Spam out of newsgroup postings. Maybe not the most unusual application of things Bayesian, but a welcome one nonetheless.

  7. Why...yes. by ByronEllis · · Score: 5, Informative

    First off, the spam filters are actually classification algorithms, not filters---the name filter is incorrectly used almost exclusively by spam classification software--and worse yet they're really only referring to a specific classifier (the "Naive Bayes" algorithm) rather than to classifiers in general. "Bayesian" filters are things like Kalman Filters, Particle Filters and Hidden Markov Models which are used in any number of fields, but not really germane to the tasks you're asking about I think. Using "Bayesian Classification" in Google will probably yield more fruitful results.

    It sounds like you want to extend the naive bayes classifier to more than two categories and, in the best case, learn new categories from the data. Both can be done and have been done with varying degrees of success. You might try here for some pointers to more information about how it is done (the algorithm itself has been around since the '60s---people only think its something new). Unfortunately for things like RSS and email you're going to run into two problems: you really want to do your classification on-line and your data are actually quite sparse and your prior is usually uninformative so its going to be hard to do the actual classification. But, who knows, its still an active topic of research.

  8. Classifier4J, NNTP//RSS &Bayesian Blog Classif by ArkieNerd · · Score: 2, Informative

    Try visiting http://www.mackmo.com/nick/blog/java/?permalink=cl assifier4jnntprss.txt

    "I now have Classifier4J and nntp//rss working together to do Bayesian classification of RSS feeds. There are a few things still to work out (perfomance and usability to name two), but I'm pretty pleased with it, since it was something I whipped up in a couple of hours. AFAIK it is the first Bayesian/RSS thing that has got far enough to have a screenshot..."

  9. Similarly... identifying webpage blocking by OnyxRaven · · Score: 2, Interesting

    I'm working on a project for my Senior Project that could take the Bayes method to identify webpages that are 'good' or 'bad' for a proxy or bridge based connection filtering or bandwidth limiting application.

    Now, obviously for webpages its a bit easier to say 'good' 'bad', but this app (www.bandwidtharbitrator.com) already has some regular expressions for apps like Kazaa, Bittorrent, in the hopes of limiting the bandwidth. I wonder if a Bayesian system could be adapted to this domain? I considered it, but the person in charge of that part of the project is using a diff-like method (which I find silly).

    Are there easy-to-plug-into APIs and libraries like that we could use to do all the 'hard work'? Is SpamBayes up to the task?

    --
    --onyx--
  10. oh yeah by revmoo · · Score: 3, Funny

    What other areas can you think of where Bayesian filtering may prove useful?

    Family discussions?

    --
    I would expect such blatant racism on Fark, but on Slashdot? Mods please ban this asshole.
  11. the paperclip by drDugan · · Score: 3, Informative

    the technology developed at MS research to get the paperclip (the office help animate hate attractor) to work is based on a bayes net.

    http://www.wired.com/news/print/0,1294,43065,00.ht ml

  12. Re:NNTP/Usenet by jpkunst · · Score: 2, Informative

    For those who still bravely (foolishly) venture onto usenet, it would be nice to replace kill files with something Bayesian. There may be such a reader already but I haven't seen it (nevermind something cross-platform, which is a must for me).

    There is one newsreader I know of which uses Bayesian filtering for articles in its latest version, but it's Mac only: MT-NewsWatcher.

    JP

  13. Control algorithms by lindelof · · Score: 5, Interesting
    I work at the Building Physics Laboratory in Lausanne, Switzerland, and I investigate the possible use of Bayes' theorem in the building control field. The idea is to classify situations as bad respectively good based on feedback from the occupants and have the system learn from its mistakes.

    Consider, for instance, the total amount of sunlight hitting your computer screen. Most people would like an automatic system to control their window blinds to keep that amount to an acceptable level, but the system cannot know a priori what that level will be for a given user. So we let the system set the blinds to a setting deemed acceptable for the average user and use the user's manual interventions to build up a list of bad settings, corresponding to the setting immediately before the intervention, and good settings, corresponding to the setting immediately after the intervention.

    The system will then attempt to minimize the probability of the user rejecting its settings by applying Bayes' theorem.

    I've done only preliminary exploration of this idea so far but the results are encouraging, and we plan to do a full-scale experiment this summer.

  14. Kind of ... by pen · · Score: 2, Interesting
    I run a submission-based web site that, at times, gets a lot of duplicate (or very similar) submissions. I have a basic Bayesian script break each new submission into words and flag it if it's too close to something else.