The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Facebook открыл код библиотеки классификации текста fastText

23.08.2016 08:50

Лаборатория искусственного интеллекта Facebook объявила об открытии исходных текстов библиотеки fastText, предоставляющей средства для классификации текста с использованием методов машинного обучения. Код написан на языке C++ и открыт под лицензией BSD. Библиотека позволяет организовать автоматическое назначение категорий для произвольного текста, на основании предварительно проведённого обучения по наборам текстов с уже известными категориями. Например, fastText может оценить является ли письмо спамом или определить к какой категории относится статья (научная, спорт, финансы, развлечения и т.п.), после обучения по типовым базам спама и тематических статей.

Из достоинств fastText отмечается поддержка различных языков и очень высокая скорость обучения. Например, обучение fastText по базе Yahoo длится всего 5 секунд и обеспечивает точность классификации 72.3%, в то время как char-CNN выполняет эту работу за 1 день при точности 71.2%, а VDCNN за 2 часа при точности 73.4%. Результирующая классификация также выполняется на несколько порядков быстрее существующих аналогов.

Для увеличения производительности работы с большим числом категорий в fastText применяется иерархический классификатор, организующих хранение категорий в древовидной структуре, вместо обычно применяемых плоских моделей. При этом дерево строится с учётом популярности категорий, что позволяет повысить скорость доступа к часто используемым элементам. При тестировании модели, в обучении которой применялась база в 1 миллиард слов и более 300 тысяч категорий, на обучение было потрачено менее 10 минут, а на классификацию выборки из 500 тысяч записей менее 5 минут (около 1700 сопоставлений в секунду) на системе с обычным многоядерным CPU.

  1. Главная ссылка к новости (https://code.facebook.com/post...)
  2. OpenNews: Facebook открыл модули машинного обучения, использующие GPU для ускорения
  3. OpenNews: Открыт код системы машинного обучения TensorFlow, разработанной командой Google Brain
  4. OpenNews: Компания Microsoft открыла код распределённого инструментария машинного обучения DMTK
  5. OpenNews: Компания IBM передала сообществу Apache платформу машинного обучения SystemML
  6. OpenNews: Microsoft опубликовал на GitHub систему машинного обучения CNTK
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/45018-ai
Ключевые слова: ai, fasttext, facebook
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (41) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 09:22, 23/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Новости на Opennet и Хабре сразу классифицировать
     
     
  • 2.4, rob pike (?), 09:45, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +27 +/
    Главное мудро выбрать классификацию. Для Опеннета подойдет такая
      - "systemd нанес очередное улучшение на радость всему прогрессивному человечеству"
      - "Mozilla продолжает заниматься фигней вместо браузера"
      - "Microsoft открыла код очередного продукта"
      - "вышла новая версия DE X с нескучными обоями"
     
     
  • 3.8, jtad (?), 10:33, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    to rob pike: про systemd не согласен, в остальном в точку
     
     
  • 4.10, rob pike (?), 10:44, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Про systemd вы согласны - либо с "нанес", либо с "улучшением".
     
     
  • 5.21, jtad (?), 11:36, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    не заметил сарказма :). С улучшением конечно
     
  • 3.19, тоже Аноним (ok), 11:29, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +16 +/
    Маловато категорий. Незаслуженно забытые:
    - "кто-то в Canonical решил, что, может быть, в следующем релизе они сделают не так, как в предыдущем, хотя ручаться за это никто не может"
    - "wine исправил очередное множество ошибок для улучшения совместимости с чем попало"
    - "вышла новая версия популярного открытого продукта с неудобопроизносимым названием: перечень изменений без уточнения, что этот продукт вообще делает"
    - "в РФ тоже есть IT! Качайте наш дистрибутив и приезжайте на конференцию в Минск (реклама)"
     
  • 3.34, Аноним (-), 00:20, 24/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    - "Facebook открыл код ещё одной библиотеки, являющейся частью Skynet"
    - "Компания Canonical представила Altthing, являющийся конкурентом Something компании Red Hat"
    - "Критическая уязвимость в NodeJS, получившая названия Not-a-JS"
     
  • 3.35, xm (ok), 00:21, 24/08/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Про systemd "нанёс непоправимое очередное улучшение" будет точнее и правильнее :-)
     
  • 3.42, Аноним (-), 07:13, 26/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    На коменты напустить. Классификация будет примерно такая:
    - Старпер ноет про то что раньше солнце светило ярче.
    - Школьник хвастается новым гибридом арча и генты.
    - Хейтер ругает системд.
    - Тролль жирно троллит.

    Это пожалуй все паттерны которые можно найти в коментах опеннета.

     
  • 2.6, Аноним (-), 10:07, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    лучше комменты классифицировать, чтобы порядок.
     

  • 1.2, Аноним (-), 09:28, 23/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А иерархии тегов сайтов, сделанные этим fastText, доступны где-то в готовом виде?
     
  • 1.3, бедный буратино (ok), 09:43, 23/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а тип "хрень, которую и читать не стоит", там есть?
     
     
  • 2.5, rob pike (?), 09:57, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    С этим все очень и очень плохо.
    Категорное деление, упомянутое вами, хоть и в несколько резкой, но безусловно понятной и емкой формуле, невозможно без качественного профиля пользователя по отношению к новостям.
    Если ваш профиль укладывается в до предела упрощенное "новости - да, спорт - нет" (или наоборот), то все, конечно, легко. Проблема в том что никакой реальный профиль в такую формулу не укладывается.
    Выхода два - либо заставить вас составить свой профиль максимально подробно, но никакой реальный пользователь это делать не станет - либо вычислять его автоматически подсовывая вам относительно случайные новости и глядя на то что вы отвергнете с возмущением, а что наоборот, лайкнете.
    С первого взгляда такая схема представляется реалистичной, но уже со второго выясняется что она тоже не работает - ведь по сути таким образом пользователю предлагается натренировать свою собственную нейросеть, что он задолбается делать приблизительно на первых 0.0001% новостей от необходимых для качественной тренировки.
     
     
  • 3.24, cmp (ok), 11:59, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да ну ладно, в чем проблема построить "бинарный" классификатор? В тематических лентах новости появляются не так часто, а если пользователь жмет кнопку "еще", то значит подписывается на смежные тематики, как только перестанет, так сразу обозначит круг интересов и уровень вовлеченности.
     
  • 3.36, Аноним (-), 00:23, 24/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Соцсети уже давно подсовывают посты, похожие на те, что вы чаще всего читаете, и/или из групп/пабликов, похожих на те, на которые вы подписаны. Похожесть паблика N на другие определяется либо по категориям, если они указаны, либо по тому, на что ещё подписано большинство подписчиков паблика N.
     
     
  • 4.37, Аноним (-), 00:25, 24/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И да, можно нажать "Крестик"/"Не интересно", чтобы пост из ленты скрылся, тогда паблик получает минус к персональному скору для юзера и появляется реже, после достижения некоторого низкого значения скора – не показывается никогда.
     
  • 3.43, Аноним (-), 07:54, 26/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > по сути таким образом пользователю предлагается натренировать свою собственную нейросеть,

    По сути вы слишком много хотите от пользователей - 95% пользователей хронически не способны к тренировке СВОЕЙ нейросети. А вы хотите чтобы они еще и чужую натренировали.

     
  • 2.7, Аноним (-), 10:09, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Критерии такого типа неопределимы. Донцова не даст соврать.
     
     
  • 3.9, Ivan (??), 10:43, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Исходники донцовой будут опубликованы позже, когда она начнет проходить тест Тьюринга. А пока ценность ее свидетельств околонулевая.
     

  • 1.11, Аноним (-), 10:50, 23/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    клоун: банальный поиск по ключевым словам теперь стал ещё быстрее.

    Если нашёл слова "дебет", "кредит", "счёт", "отчётность", значит это "бухгалтерия".

     
     
  • 2.13, Ан0ним (?), 11:05, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    ...а может ещё и криминал. Тут нужно осмотреть окружающие слова - контекст.
     
     
  • 3.14, Аноним (-), 11:07, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    клоун: для криминала будут другие ключевые слова. Один текст может иметь несколько тем.
     
     
  • 4.15, Ан0ним (?), 11:19, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Так и я о том же, по наличию слов дебет/кредитом нельзя однозначно сказать, что это текст по бухгалтерии.
     
     
  • 5.17, Crazy Alex (ok), 11:27, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Именно что можно. Другое дело, что это может быть кирминальная бухгалтерия, ну так это другой вопрос, решаемый отдельно.
     
  • 5.20, Аноним (-), 11:33, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    клоун: я привёл упрощённый пример.

    Берётся набор текстов заранее известной тематики и по ним определяются ключевые слова. Определяются веса слова, калибруется функция расстояния.

    Затем берётся набор текстов другой тематики и проводится повторная калибровка.

    Получили список ключевых слов и веса для них. Теперь можно юзать.

    В основе всех подобных алгоритмов лежит полином, с которым игрались ещё в 60-е. Где-то полином в явном виде, где-то как параметры функции расстояния, где-то (в нейросетях) как вес узлов, но полином это один хрен полином. Ничего нового не придумали, поэтому ускоряют то, что есть.

    Что-то интересное есть только у Интел с её интеллектуальным процессором (лабораторную крысу разрезали, записали как соединены нейроны мозга, заменили их на транзисторы и вроде как получили принципиально новое распознавание образов), но он пока в бете.

     
  • 2.16, бедный буратино (ok), 11:21, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > Если нашёл слова "дебет", "кредит", "счёт", "отчётность", значит это "бухгалтерия".

    неа, это комментарий к новости "Facebook открыл код библиотеки классификации текста fastText"

     
  • 2.18, Crazy Alex (ok), 11:28, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, вот если б оно сами категории могло само формировать...
     
     
     
    Часть нити удалена модератором

  • 4.25, Crazy Alex (ok), 14:24, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё как нужно. Язык-то описан, только то, что реально ищешь - редко чётко куда-то попадает. Если я ищу всё о DIY-применении серводвигателей в быту - лучше, если мне ещё притащит (возможно, по просьбе) "соседнее" - шаговики, например, или соленоиды. Ну потому что функции у них иногда похожие. И вот на этом "иногда" подход через антологии и ломается. К примеру, что в других случаях для похожих задач используют вообще банки с водой (открытие форточек для теплиц).

    Не зря популярные в своё время каталоги сайтов (где были именно продуманные классификации) благополучно померли.

     
     
  • 5.26, Аноним (-), 14:58, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    клоун: поиск - это другая задача, более сложная по отношению к классификации.

    Даже в случае двух людей прежде чем задать вопрос, нужно знать половину ответа. Общение чаще всего идёт путём уточнения вопроса, у поисковика такой возможности нет.

    Я несколько недель искал дешёвый датчик прикосновения. По-английски они называются FSR или "touch sensor". Только вот фраза "touch sensor" является зарегестрированной торговой маркой компании "FSR". Понятно, что компания продаёт свои датчики по цене 500-1500 руб. Нужный мне датчик называется "тензо BF350-3AA" и стоит 30 руб. Ты или знаешь половину ответа ("тензо") или переплачиваешь жлобам.

     
     
  • 6.27, Crazy Alex (ok), 15:38, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так классификация нужна либо для поиска, либо для подкидывания "похожего"/"возможно интересного" -  в случае Фейсбука и подобных уж точно.

    И как раз в вашем случае ответ находится именно расширением области поиска (и исключением потом из неё FSR) - быстро высните, что нужная вам штука называется strain gauge. Только не прикосновения, а нажатия, наверное. Touch sensor и strain gauge - это совсем разные вещи.

     
     
  • 7.28, Аноним (-), 16:41, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    клоун: в какую сторону расширять хочешь?

    Поисковый запрос: "сдача IELTS" (экзамен такой). Что интересует вопрошающего? По хорошему, он должен получить FAQ с ответами на часто задаваемые вопросы из которых он выберет интересующие, но такие штуки автоматически пока не создаются.

    Или более сложный запрос - "отпуск в октябре", ответ на который должен учитывать личные предпочтения, предыдущий опыт, сезонность, акции авиакомпаний и пр.

     
     
  • 8.29, Crazy Alex (ok), 18:16, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да что попало - что рядом лежит по какой-то метрике в запрос добавить И дать кн... текст свёрнут, показать
     
     
  • 9.30, анонимус (??), 19:38, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Советую https ru m wikipedia org wiki D0 9E D1 82 D0 BF D1 83 D1 81 D0 BA_ D0... текст свёрнут, показать
     
     
  • 10.32, Аноним (-), 21:39, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    клоун где-то рядом всплывёт красный октябрь, Охота за красным октябрём , устро... текст свёрнут, показать
     
     
  • 11.33, Crazy Alex (ok), 23:06, 23/08/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну вот поэтому на слишком общие запросы ловить можно банально по числу подходящ... текст свёрнут, показать
     

  • 1.23, Аноним (-), 11:57, 23/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    >  к какой категории относится статья (научная...

    теперь корчеватели можно сортировать

     
  • 1.31, adolfus (ok), 21:09, 23/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Прятно видеть человеческие суффиксы у файлов с исходниками.
     
     
  • 2.38, АнонимХ (ok), 12:59, 24/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это filename extension что ли? Чем .cc примечательнее?
     

  • 1.39, Аноним (-), 01:08, 25/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, какая категория будет корнем в дереве категорий? Философия?
     
  • 1.40, Аноним (-), 07:50, 25/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >обучение fastText по базе Yahoo длится всего 5 секунд

    А не гонево ли? Эта база весит 1.5 терабайта и получается, что диски читают со скоростью не менее 300Гб/секунду и такой же объем обрабатывает программа в оставшиеся микросекунды.

     
  • 1.41, 5kbps (ok), 20:24, 25/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > точность классификации 72.3%,

    Что понимать под этой цифрой? Совпадение с результатом аналогичной работы, проделанной человеком?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру