Андрей Плахов @yafinder
Руководитель разработки международных проектов
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Работает в
- Дата рождения
- Зарегистрирован
- Активность
Руководитель разработки международных проектов
peace!
"Ну вот что это такое, а? Что вы там <...> - просматриваете все исходники библиотек всех версий что ли?" (с)
Выбор же все равно будет между тем, предпочитать контролируемые фиксированные устаревающие версии и "велосипеды" или постоянные апдейты до свежих и добавление новых зависимостей в ущерб наблюдаемости. Да, так получается, что какие-то программисты склоняются к первому, а какие-то ко второму. По моим наблюдениям, с используемым языком программирования это очень даже коррелирует.
Это не входило в мои намерения, и жаль, что это так читается. Я в последнее время пишу в основном на Питоне (хотя и не продакшн-код), очень одобряю подход "производительность программиста превыше всего" и то, до каких пределов можно её довести при таком подходе, меня как раз впечатляет. Скорость развития современного AI, мне кажется, невозможна была бы в "первой культуре".
Есть опять же два подхода.
1) Предпочитаем фиксированную версию библиотеки, переходим на новую, только если на это есть серьезные причины. Предпочитаем отсутствие зависимостей, подключаем библиотеку, только если она делает что-то достаточно сложное. В этом подходе просматривать исходники на самом деле не так уж сложно, я так делал.
2) Предпочитаем последнюю версию всех библиотек, фризим версию, только если на это есть серьезные причины. Предпочитаем внешние библиотеки "велосипедам", пишем что-то свое, только если ничего готового, решающего ту же задачу, не нашли. В этом случае, действительно, нужно "все исходники всех версий" читать, и никто этого не осилит делать, конечно.
Ничего даже близко похожего на историю с leftpad в первом подходе произойти, мне кажется, не может. Зато второй защищен от уже исправленных известных уязвимостей старых версий и "велосипедов", потому безопасней в adversarial-смысле (по крайней мере, я много раз слышал такой аргумент)
Речь же не о том, "что лучше". Ровно наоборот, основной тезис - в обеих культурах можно подсмотреть полезные принципы и подходы, так что не игнорируйте их.
Кроме того, я считаю, что в нашем деле очень полезно в явном виде формулировать, почему для той или иной задачи подходит тот или иной инструмент, даже если это кому-то кажется очевидным.
Именно такой логики нет, она, по-моему, была бы сознательным вредительством. По симптомам похоже на работу опечаточного смешивания: если машина подозревает опечатку, но не уверена, она составит выдачу из исходной и из выдачи по «исправленному» запросу. Если опечаточник при этом ошибся, то итог будет каким-то таким.
Согласен, обидно быть грамотным человеком в мире, где пользователи пишут "смареть бесплатна расценке на аделачные работы казане", а поисковики всё это пытаются отрабатывать.
Используется несколько «источников знаний», которые лучше всего показывать на примерах.
1) название «московский государственный университет» имеет вид «что-то-там университет», значит, наверное, это может быть и организация
2) «мазда сх 7» имеет «расход топлива» и бывает «с пробегом» (это мы и из пользовательских запросов знаем, и в интернете можем «прочитать»), значит, наверное, это может быть и автомобиль
3) в википедии статья «Привидение, которое не возвращается» относится к категориям «Фильмы по алфавиту» и «Фильмы 1929 года», значит, наверное, это может быть и фильм
4) в выдаче по запросу «пирожки с капустой» есть сайт kuking.net, и пользователям он по нраву, значит, они могут быть и едой
5) отношения между категориями: предположим, мы уже знаем, что «запорожец» может быть автомобилем; тогда он точно может быть и товаром
6) для некоторых категорий можно перечислить значительный процент составляющих их объектов просто фиксированным списком, который получен из какого-то внешнего источника. Такой категорией могут быть, например, станции московского метрополитена или города России.
Знание из всех этих источников комбинируется. К сожалению, ни один из них нельзя считать ни абсолютно полным, ни абсолютно точным (отсюда оговорка «может быть») — везде могут быть ложные срабатывания («закон ньютона» не в категории «право», несмотря на источник типа 1), почти всё можно накручивать и спамить. Поэтому все эти способы дополняют и исправляют друг друга; здесь я уже не буду вдаваться в подробности (не потому, что секрет, а потому что скучно). Кроме того, приходится все время держать в голове, что объект может быть и в нескольких категориях одновременно.
Надеюсь, я, если и не ответил полностью на ваш вопрос, то хотя бы снабдил информацией к размышлению :)
Вообще, какие-то детекторы попыток манипуляции встроены в Спектр загодя. Посмотрим, как скоро сигнализация начнет звенеть.
Пока что :)
На самом деле, это вовсе не такая очевидная (даже интерфейсно) фича, как может показаться. Ну вот, навскидку: захотелось вам показать у себя в блоге интересную (смешную, ошибочную, завораживающую, ...) выдачу Яндекса, постите вы урл, а каждый читатель видит вместо этого что-то своё. Нехорошо получится.
Но до «Спектра» в матмодели, на основе которой строится ранжирование, принималось, что результаты ответа на любой запрос можно линейно упорядочить по их релевантности. Грубо говоря, что все пользователи хотят одного и того же. Оказывается, что для многих запросов (примерно пятая часть потока) это слишком сильное упрощение. Для одних пользователей релевантнее одно, для других — другое, а единственной цифирки, позволяющей учесть интересы каждого, не существует.
«Спектр» как раз и учитывает существование подобных запросов явным образом, и строит выдачу, максимизирующую матожидание события «пользователь нашёл то, что искал» в расширенной вероятностной модели, явно учитывающей, гм, спектр запроса.