Фильтрация контента

    Я тут задумался об эффективном механизме фильтрации интересующего контента: премодерирование, карма, etc…

    И в голову пришла простая идея: почему бы не использовать байесовскую фильтрацию для топиков? Теоретически для этой цели она должна работать даже лучше, чем для фильтрации спама. Кроме того, если потеря email из-за ошибки фильтра может обойтись очень дорого, то пропуск хабратопика абсолютно не критичен.

    Не знаю, может идея бредовая… я её толком обдумать ещё не успел. :)
    Share post

    Comments 65

      0
      А подробней?
        +4
        Читаешь топик - клацаешь захабрить/отхабрить. Только кнопочки эти влияют не на то, будет ли этот топик показан хабракоммьюнити на главной странице, как сейчас, а на то, будут ли лично Вам в будущем показываться аналогичные топики. "Аналогичность" вычисляется математически, по методу Байеса (движком сайта).

        Никаких "личностных" оценок типа "популярности топика" или "кармы автора" при этом нет. Точнее, их можно параллельно использовать, можно не использовать - исключительно как механизм одобрения и поощрения, а не фильтрации.
          0
          вычисляется математически, по методу Байеса (движком сайта).

          а это как?
            0
            Честно скажу, поленился ссылку сделать в топике - решил что все или и так знают, или гуглом воспользуюся. Виноват, каюсь: Теорема Байеса.
              0
              спасибо
                0
                У байесовской классификации (а эта технология относится к "мягким вычислениям") есть существенный недостаток: она, как и перцептрон осуществляет линейное разделение всего множества входных событий на "плохие" и "хорошие". При этом несущественная, с точки зрения пользователя, модификация "плохих" событий делает байесовский фильтр непригодным. По сути, этот фильтр эффективен для фильтрации сообщений со сходным словарем.
                Но есть другие, более перспективные технологии, например фильтры на основе нечетких множеств. Они в отличие от байесовских - нелинейны и могут учитывать схожесть (с точки зрения контекста их применения) слов и предложений из них составленных. То есть они, практически, фильтруют смысл топика.
                  0
                  с ума сойти. я далек от этого, но насколько я вижу, еще немного и будет сделан кардинальный шаг в сторону генерации одной единицы контента(статьи) с использованием различных источников информации? верно? такая клиентоориентированность на 100%?
                    0
                    На мой взгляд, для описанной задачи байесовская классификация как раз хорошо подойдет - словарь характерных слов тут весьма ограничен :) Кстати, она пригодна не только для того, чтобы разделять на плохой/хороший, но и для классификации по нескольким категориям.
                      0
                      Насчет классификации по нескольким критериям, полностью согласен, но при этом сохраняются свойства линейности классификатора. Насчет словаря - трудно сказать определенно - возможно в простейших случаях, типа "японял", это и верно, но для более сложных случаев фильтрации эффективность байесовского классификатора мне кажется сомнительной.
              0
              Вы предлагаете отсекать "плохой", неинтересный контент. Минус тут очевидный - тяжело сообщить компьютеру что же вам конкретно не понравилось. Самый простой пример - интересно читать то, что не знаешь и в круге интересов. Но читать про тот же google gears одно и то же десятый раз скучно и не интересно, хочется свежих данных. Но компьютер не знает что вы уже знаете про gears, а что нет и не может оценить полезность, т.к. по баесу статьи будут одинаковы.

              Можно пойти с другой стороны, предлагать искать хороший, который похож на встретившийся. Критерии похожести могут быть разными - по содержанию, по тегам, еще того же автора, ... Вот здесь как раз всякие "неточные логики" и Баесы можно применять.
                +1
                кстати, да, очень интересно прочитать в первый раз про iPhone, интересно прочитать про него во второй раз, но когда читаешь про него в пятнадцатый раз, уже не интересно. имхо, такую фильтрацию настроить будет очень сложно, так как часто я успеваю прочитать о новинке на ixbt.com или lenta.ru, и только потом статья появляется на хабре. предлагаемый поверьманом механизм нужно встраивать в rss-reader, что, впрочем, уже реализовано в google.news :) там на одну новость приходится по десятку статей в разных изданиях, но мудрый гугл показывает одну новость, как одну новость, а не как десяток статей.
                  0
                  Т.е. приходим к выводу что база должна знать про все сайты, которые вы читаете(т.е. хранится как можно ближе к вам), но и одновременно быть доступна веб-сервисам типа Хабра для фильтрования. Лучше всего это делать в виде отдельного сервиса с внешним API, хранилищем баз и клиентским софтом для анализа посещаемых страниц.
                    0
                    Google Search API?
                      0
                      Не, гуглу я такую информацию не отдам. Он и так про меня уже слишком много знает.
                    0
                    Вы даже не представляете, как обидно читать идею самостоятельного сервиса, которой живешь уже пару месяцев и всячески развиваешь в голове, но на реализацию которой нет ни времени, ни дружеской/партнерской поддержки, ни средств.. Ножом по сердцу. =(
                      +1
                      не бойтесь, я вашу идею не отберу :)
                      можете реализовывать себе спокойно, у меня тут работы и так невпроворот.
                      пойду-ка я домой, а то уже ночь..
                        +1
                        Не боюсь - более того, присоединился бы с удовольствием к команде разработчиков, коль взялся бы кто-нибудь за дело )
                        Во всяком случае, приятно ощущать себя не полным дураком и осознавать, что идея актуальна.
                  0
                  мне кажется, что тогда о кешировании можно будет забыть...
                0
                ИМХО, задача близкая к фильтрации спама и все методы те же тут приминимы. Сети Байеса, если Вы их имеете в виду, видимо, только частный случай.
                  0
                  В отличие от спама, врядли авторы хабра будут писать статьи используя приёмы спамеров, чтобы прорваться сквозь фильтры. :)
                    0
                    Все же это не мешает использовать методы фильтрации спама. Ведь там тоже определяется близость писем по содержанию, определение характерных признаков и т.п.
                      0
                      Я, вероятно, не достаточно понятно изложил свою мысль.

                      Я хотел сказать, что как раз благодаря тому, что топики:

                      • содержат осмысленные статьи, причём обычно значительно большего объёма чем email (т.е. предоставляют больше данных для анализа)
                      • обычно посвящены одной теме
                      • не содержат никаких приёмов для обмана фильтров
                      их можно будет автоматически фильтровать значительно эффективнее!
                0
                главное - у них есть тэги, которых у писем нет. )
                0
                Вообще-то (если я правильно понял) речь шла не о Байесовских сетях, а о Байесовском наивном классификаторе. Обычно в задачах классификации/фильтрации используется именно он, так как запрограммировать автоматическое построение сети довольно сложно.
                  0
                  Я бы не стал этого делать. Люди не всегда довольны тем как человеческий разум модерирует контент, а Вы хотите эту функцию доверить машине.
                    +1
                    Я вас понимаю, но есть нюансы:
                    1. человеческий разум обычно модерирует контент для группы людей, у которых интересы и предпочтения не могут быть одинаковыми, отсюда и недовольство... а в моём варианте фильтрация идёт согласно индивидуальным предпочтениям
                    2. люди доверяют машине фильтровать свой email, что гораздо опаснее... но что делать, если не фильтровать то они будут завалены спамом
                    3. вам никто не мешает контролировать что именно машина отфильтровала заглядывая иногда в папку "отхабренное" и переучивать фильтр нажимая "захабрить"
                  0
                  Кстати, любопытно, я далёк от мысли что я первый до этой идеи додумался... следовательно где-то это уже может быть реализовано. Кто-нить знает примеры (удачные или неудачные) внедрения такого подхода?
                  0
                  хороша идея. а не страшно ее так просто выкладывать?
                  +1
                  А смысл пользователям писать топики тогда?
                  Как с социальной составляющей?
                  Сейчас они пишут что-то, растут в глазах общественности, видят результат.
                  А тут вообще не понятно, увидит кто-нибудь то что ты напишешь или нет, потому что все уже могли забанить эту тему :) Хотя, не все. Может в этом и интерес...
                  А новым пользователям тогда скидывать все что можно?
                  Так.... Я запутался, одни вопросы. По-моему, кому-то еще придется эту идею додумать :)
                  0
                  Идея отличная. Но есть проблема с обучением - байесовский классификатор лучше всего учится, когда ему подсовываешь те примеры, на которых он ошибся. С "плохими" темами все ясно - увидел плохой пост в ленте, кликнул "минус" - больше такого не увидишь. А как быть с "хорошими"? Как пользователь подсунет ему тот хороший пост, который не попал в ленту, а должен был бы? То есть, где пользователь будет искать такие хорошие посты?
                  0
                  Сервер не загнется всем Байеза расчитывать?
                  Я даже про персонализированные RSS ленты еще не слышал(чтобы хотя бы по пользователю можно было отсекать, удобно для разных community), а вы уже таких наворотов захотели.
                  А вообще такая идея легко реализуется в виде локального RSS-прокси, все собираюсь для себя такой написать, да никак собраться не могу.
                  0
                  1)Как было сказано выше – потребуется держать для каждого пользователя свою баесовскую базу – размеры общей базы будут соответственно огромными.
                  2) На сколько Баес вообще будет хорош для таких решений? При работе со спамом предполагается то все спам-письма похожи друг на друга – то есть содержать пересекающиеся множество терминов – на сколько это будет работать для статей? То есть автоматически отбрасывать все статьи про web дизайн и рекомендовать все статьи про php программирование баес фильтр сможет. А вот отличить «хорошую» статью про web дизайн от «плохой» нет.
                  3) Так как Вы, в описании алгоритма работы, не отказываетесь от голосования за контент как такового – может было бы правильно применять алгоритмы рекомендации контента, основанные на оценках пользователей?
                  0
                  Сильная идея по-моему. Ещё, если речь идёт о блоге с большим количеством пользователей, то можно использовать данные "похожих" пользователей (то-есть тех, кто примерно одинаково оценивал топики): если некоторое количество похожих пользователей поплюсовали топик, то наверно и мне он интересен, а если минусовали, то наоборот. Правда этот механизм по-моему уже реализован в некоторых местах, но вместе с фильтром Байеса он как раз будет отлавливать топики, которые похожи по словам, но другие по качеству.
                  0
                  имхо самая интересная идея, это автоматическая расстановка тегов. А вот на основе уже тегов генерировать персональную RSS ленту.
                  0
                  Вроде бы это как раз основная фишка проекта reddit.com
                  0
                  Идея отличная! Проблемы есть, но есть и над чем подумать. Только стартапу такое не поднять, это уже выходит за рамки написания пользовательских интерфейсов и оптимизации скриптов. Если кто и поднимет такое - крупные поисковики, тот же гугл. У них уже наверняка есть наработки в этой области для поиска, осталось дождаться открытого API.
                  0
                  Идея очень похожа на так называемый Collaborative Filtering, а даже скорее на Active Filtering, когда учитывается некоторые активные показатели, такие как захабренность.

                  Ну а дальше на эту инфу уже можно натравить любой из методов машинного обучения aka Data Mining, Байес по опыту сливает тому же Персептрону и SVMу. Проблемы и это очень серьёзная задача с формированием данных для алгоритмов машинного обучения. Этим много где занимаются и на Amazon.com и в Netflix (тут вообще обещают миллион долларов тому кто их алгоритм на 10% по-моему обставит), в Hewlett-Packard, начальник их Data Mining отдела рассказывал на презентации в МГУ, и много наверно где ещё. Проблема очень актуальна и пока нормальных статей по этой теме лично мне не попадалось!!

                  Ну а после того как готова концепция, вопрос только в технических деталях :) Удачи!
                • Only users with full accounts can post comments. Log in, please.