Распознавание и анализ разговоров
2012-07-05 07:45 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
В продолжение вчерашней дискуссии.
Допустим, мы как-то распознаем разговоры и сохраняем получившийся текст. Я намерено не хочу сейчас касаться ни качества "аудио", которое придется распознавать, ни качества получающегося в результате текста. Пусть даже тут у нас все будет идеально.
Расскажите мне пожалуйста, что с этими текстами делать потом? (напомню, что мы говорим про Кровавый Режим, который надеется получить с этого какой-то профит).
Суммируя вчерашние аргументы, были названы такие цели:
1)использовать тексты для бинарной классификации (террорист - не террорист, протестующий - не протестующий)
2)использовать тексты для последующего полнотекстового поиска (с целью той же бинарной классификации, но без четких критериев)
3)складировать тексты про запас с тем, чтобы потом читать про тех, кто "попал на карандаш".
Мне кажется, что для всех трех целей запись и распознавание всех разговоров будут ужасно неэффективным средством. По пунктам:
Классификация
=============
Как учить такой классификатор? Откуда взять training set тех самых true positive целевых разговоров достаточного объема?
У классификатора будут ужасные precision и recall - что с этим делать? Поясню: классы будут сильно перекошены по размеру (1 террорист на пару миллионов обычных людей), соответственно, любые неточности классификации в сумме с false positives приведут к тому, что классификатор будет практически бесполезен. Допустим, мы с вероятностью в 30% не узнаем нужный единственный разговор из миллиона, зато с вероятностью 0.01% тыкаем пальцем в ненужный - посчитайте сами, что мы получим на выходе.
Кроме того, критерии классификации - не фиксированы (сегодня ищем "химию", завтра - "болотную"), соответственно, надо постоянно создавать и учить новые классификаторы. Это сложно и вычислительно и организационно (выбор хороших критериев).
Использовать же unsupervised методы, как мне кажесят, не получится из-за размерности простанства. Грубо говоря - у нас слишком много всех возможных слов и разговоров, чтобы какой-то unsupervised алгоритм это прошерстил. Да и на выходе мы получим слишком много классов, которые потом надо будет обработать вручную. Добавим к этому, что почти наверняка нужный "один разговор из миллиона" будет объединен в один класс с мешком других, и получаем на выходе один пшик.
Полнотекстовый поиск
====================
Учитывая, что целевая аудитория (гипотетические "террористы") шифруется, поиск надо будет вести по неуникальным, "бытовым" словам. Любой желающий может поиграть с гуглом и поскать "террористов" там, и увидеть, насколько это безнадежная затея.
Читать постфактум
=================
Казалось бы, какие тут могут быть возражения - бери и читай? Но для начала надо сгруппировать разговоры "по людям", то есть вместо "это разговор между номерами А и Б" получить "это разговор между Ивановым и Петровым", и потом уже читать все разговоры Иванова. При это _надо_ исходить из предположения, что владелец контракта и тот, кто реально говорит по телефону - это могут быть разные люди. Я верю, что подобная задача решается в условиях ограниченного количества людей и аудиозаписей, но для всех-всех-всех разговоров - нереально.
Итого
=====
Вагон затрат (особенно временных), минимальный (неотличимый от нуля) выхлоп. Если бы было социально приемлемо прослушивать всех подряд, из этого вышел бы хороший PR-проект (или, иначе, security theatre) - смотрите, мол, как у нас граница на замке. Ни одна мышь не проскочет - у нас этажи сервером и кубометры винчестеров, всех поймаем. Делать же это втайне, надеясь получить какой-то результат - глупо.
Discuss?
Допустим, мы как-то распознаем разговоры и сохраняем получившийся текст. Я намерено не хочу сейчас касаться ни качества "аудио", которое придется распознавать, ни качества получающегося в результате текста. Пусть даже тут у нас все будет идеально.
Расскажите мне пожалуйста, что с этими текстами делать потом? (напомню, что мы говорим про Кровавый Режим, который надеется получить с этого какой-то профит).
Суммируя вчерашние аргументы, были названы такие цели:
1)использовать тексты для бинарной классификации (террорист - не террорист, протестующий - не протестующий)
2)использовать тексты для последующего полнотекстового поиска (с целью той же бинарной классификации, но без четких критериев)
3)складировать тексты про запас с тем, чтобы потом читать про тех, кто "попал на карандаш".
Мне кажется, что для всех трех целей запись и распознавание всех разговоров будут ужасно неэффективным средством. По пунктам:
Классификация
=============
Как учить такой классификатор? Откуда взять training set тех самых true positive целевых разговоров достаточного объема?
У классификатора будут ужасные precision и recall - что с этим делать? Поясню: классы будут сильно перекошены по размеру (1 террорист на пару миллионов обычных людей), соответственно, любые неточности классификации в сумме с false positives приведут к тому, что классификатор будет практически бесполезен. Допустим, мы с вероятностью в 30% не узнаем нужный единственный разговор из миллиона, зато с вероятностью 0.01% тыкаем пальцем в ненужный - посчитайте сами, что мы получим на выходе.
Кроме того, критерии классификации - не фиксированы (сегодня ищем "химию", завтра - "болотную"), соответственно, надо постоянно создавать и учить новые классификаторы. Это сложно и вычислительно и организационно (выбор хороших критериев).
Использовать же unsupervised методы, как мне кажесят, не получится из-за размерности простанства. Грубо говоря - у нас слишком много всех возможных слов и разговоров, чтобы какой-то unsupervised алгоритм это прошерстил. Да и на выходе мы получим слишком много классов, которые потом надо будет обработать вручную. Добавим к этому, что почти наверняка нужный "один разговор из миллиона" будет объединен в один класс с мешком других, и получаем на выходе один пшик.
Полнотекстовый поиск
====================
Учитывая, что целевая аудитория (гипотетические "террористы") шифруется, поиск надо будет вести по неуникальным, "бытовым" словам. Любой желающий может поиграть с гуглом и поскать "террористов" там, и увидеть, насколько это безнадежная затея.
Читать постфактум
=================
Казалось бы, какие тут могут быть возражения - бери и читай? Но для начала надо сгруппировать разговоры "по людям", то есть вместо "это разговор между номерами А и Б" получить "это разговор между Ивановым и Петровым", и потом уже читать все разговоры Иванова. При это _надо_ исходить из предположения, что владелец контракта и тот, кто реально говорит по телефону - это могут быть разные люди. Я верю, что подобная задача решается в условиях ограниченного количества людей и аудиозаписей, но для всех-всех-всех разговоров - нереально.
Итого
=====
Вагон затрат (особенно временных), минимальный (неотличимый от нуля) выхлоп. Если бы было социально приемлемо прослушивать всех подряд, из этого вышел бы хороший PR-проект (или, иначе, security theatre) - смотрите, мол, как у нас граница на замке. Ни одна мышь не проскочет - у нас этажи сервером и кубометры винчестеров, всех поймаем. Делать же это втайне, надеясь получить какой-то результат - глупо.
Discuss?
(no subject)
Date: 2012-07-05 12:26 pm (UTC)всё остальное за скобками: оцифровать, каталогизировать, поместить в БД и организовать по ней поиск - уже решено и внедрено.
аналогично с тотальным видеонаблюдением. да, пилотный проект распознавания лиц в США потерпел крах, но зная, что где-то произошло преступление можно просто взять видео за интересующий период времени и детально отсмотреть человеческим ресурсом. а видео требует значительно больше места для хранения, чем аудио).
(no subject)
Date: 2012-07-05 12:40 pm (UTC)А телефонные номера и imsi включаются, отключаются, переносятся между контрактами и т.п. Любое массовое решение по "записи всего" должно это учитывать и коррелировать хренову тучу истории.
(no subject)
Date: 2012-07-05 01:23 pm (UTC)Биллингу все равно, что Иванов Иван уже был клиентом компании пять лет тому назад, потом отключился три года тому назад, теперь пришел снова.
Биллингу все равно, что Иван Иванов владеет 5 симками, но говорит реально только по одной, а по остальным говорят его сотрудники. И так далее. То есть биллингу надо только разбираться с историей смен номеров телефона и сим-карт за ограниченный период времени. Все эти смены, что важно, делаются через биллинговую же систему, и вся история таким образом в ней уже есть.
В препейде вообще все просто. Сняли деньги с баланса на ходу и никакой возни с историей.
А вот чтобы связывать разговоры с реальными _людьми_ нужно поработать чуть основательнее (в случае постпейда) или вообще по-другому (в случае припейда).
И забивать на такие частности нельзя, а то не получится универсального, работающего годами решения.
(no subject)
Date: 2012-07-05 02:35 pm (UTC)(no subject)
Date: 2012-07-05 03:09 pm (UTC)(no subject)
Date: 2012-07-05 03:37 pm (UTC)и что, операторы каждый раз при подключении каждого абонента лезут в архив ручками ?
Вы не поняли. Есть минимальная информация о клиенте. А вот к примеру куда он звонил год назад уже нет. Или детализация начислений есть только за месяц.
(no subject)
Date: 2012-07-05 03:43 pm (UTC)Как бы то ни было, долги собираются отнюдь не в момент переподключения.
(no subject)
Date: 2012-07-06 07:23 am (UTC)Если у вас получилась цифра - как вы ее посчитали?
(no subject)
Date: 2012-07-05 01:33 pm (UTC)когда случаются разные маркетинговые заскоки, то возникают проблемы с созданием выборок абонентов и реализациями всяких маркетинговых акций.
одна из неудавшихся затей маркетинга описана прямо в этом треде, когда хотели переманить абонентов.
(no subject)
Date: 2012-07-05 01:07 pm (UTC)(no subject)
Date: 2012-07-05 01:24 pm (UTC)(no subject)
Date: 2012-07-05 06:19 pm (UTC)и синтетические id создавать не обязательно, ведь сейчас запросы из мвд приходят чаще без фамилий), тайна следствия, видите ли). да и не факт, что говорить будут именно владельцы контрактов.
(no subject)
Date: 2012-07-06 06:39 am (UTC)Сформировать произвольное синтетическое ID, конечно же, очень легко, но толку от него будет 0. Мы же хотим, чтобы ID идентифицировало говорящего, а не номер, так?
(no subject)
Date: 2012-07-06 07:34 am (UTC)и зачем идентифицировать говорящего? то, что нужно органам - это записи разговоров конкретных номеров за конкретное время. в настоящее время с известной степенью достоверности можно установить владельцев только контрактных номеров.
(no subject)
Date: 2012-07-06 08:58 am (UTC)Для постпейда надо хранить какую-то небольшую часть информации, которую дает коммутатор (кто, кому, когда). Но всякие технические подробности (какая базовая, какой транк, ...) там не нужны.
Сооветственно, чтобы делать выборку "кто звонил тогда-то через такую-то базовую" ни припейд платформа, ни биллинг не подходят.
А других баз может и не быть (так как оператору нафиг не надо хранить ВСЕ). Может быть только большая файлопомойка, выборка из которой делается полным перебором всех файлов за конкретный день, например. Что вполне удовлетворяет текущим требованиям к операторам ("давать распечатку данных о звонках"), но не расширяется до "хранить все записи звонков".
(no subject)
Date: 2012-07-06 10:52 am (UTC)для постпейда технические подробности не нужны абоненту, но они хранятся для каких-то других целей. за продолжительность хранения технических событий тоже не скажу, запросы видел, а что на них отвечали - не знаю. наверное был отказ в духе "такого не храним".
да и не нужно МВД делать выборки через какую базовую звонил Иван Иваныч и что он сказал на базовой такой-то. тем более при включенном хоппинге и/или на оборудовании некоторых производителей это бессмысленно.
хранить всё и вечно - не обязательно, даже сейчас хранятся события только за определённое время. в маленьких системах, типа астериска, этот механизм относительно легко реализуется, в больших, конечно, сложнее. сложность, главным образом в том, наверное, что в том месте, где нужно писать, нет дисковых хранилищ и оборудования/софта для записи. кроме, пожалуй, huawei). эти что угодно напишут, пусть и кривовато.
(no subject)
Date: 2012-07-06 11:10 am (UTC)Да, но они хранятся вовсе не там, где происходит рейтинг и биллинг. Ровно о чем я и написал.
Все, что я хотел сказать - что совершенно не очевидно, что эти запросы удовлетворяются "запросами из базы", в которую, следовательно, можно вставить еще какое-то поле или с чем-то там ее связать. База может быть, а может и не быть. Просто не нужно считать, что она обязательно есть.
Нужно-нужно. "В районе ул. Такой-то и Сякой-то в промежутке с 17:00 до 19:00".
(no subject)
Date: 2012-07-06 11:30 am (UTC)(no subject)
Date: 2012-07-06 12:09 pm (UTC)(no subject)
Date: 2012-07-06 04:55 pm (UTC)кстати, ещё один источник мифов - ПО для записи разговоров. "активистам" бывает проще верить в кровавый режим, чем учиться пользоваться собственным телефоном.