Не кинокритик. Не палеонтолог. ([info]plakhov) wrote,

Конкурс

Здесь можно построить свой Яндекс, с блек-джеком и шлюхами.

Тем, кто занимается (или интересуется) машинным обучением, рекомендую заглянуть. Если что-то в формулировке задачи окажется непонятным - отвечу на вопросы здесь в комментариях.

У участников конкурса есть Данные, основанные на реальных событиях. Это некие признаки пары (запрос к поисковой машине, web-страница). Такие признаки вычисляются Яндексом в процессе обработки запроса, после чего на их основании наша яша решает, хорошо эта страница отвечает на запрос, и ее надо поставить на первое место, или плохо, и ее надо поставить на 82-ю страницу.

Такие ранжирующие признаки в Данных приведены для нескольких десятков тысяч пар (запрос, web-страница). Среди них есть что-то вроде PageRank, есть числа, имеющие смысл "насколько текст документа похож на текст запроса", есть классификаторы потенциального спама, ну и всякие другие числа, которые, по идее, в совокупности должны с какой-то точностью дать ответ на вопрос "насколько хорошо документ отвечает на запрос, и почему мы так считаем". Чтобы не раскрывать всякое мерзким поисковым оптимизаторам, в табличке, которую скачивают участники конкурса, приводятся "просто числа", без каких-либо объяснений. То есть нет ни текстов запросов, ни url'ов, ни названий признаков - только цифры. Примерно для половины пар приводится также оценка, которую паре выставил человек. Это тестовая выборка, по которой следует обучать свои алгоритмы.

В итоге каждой команде нужно придумать некую формулу или правило, согласно которому приписать каждой паре (запрос, документ) в тестовой выборке некоторое число (ранг). Документы затем ранжируются в соответствии с этим числом, и для каждого запроса получается "выдача". Ее качество оценивается: чем больше в топе разумных ответов, тем лучше. Нам всем тут кажется, что ранжирующие формулы лучше все-таки не "придумывать", а обучать при помощи тех или иных методов machine learning'а; но в принципе, правила не запрещают сделать все вручную.

В конкурсе побеждает тот, кто припишет парам (запрос, документ) числа, ранжирующие документы наиболее разумным образом.

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

Итак, последовательность действий:
1. Регистрируетесь
2. Скачиваете данные
3. Учитесь парсить их формат, смотрите на них "глазками", используете голову и разные мощные тулзы
4. ?????????????
5. Формируете результаты и отсылаете их (это можно делать несколько раз). Видите в режиме "почти реального времени" свою оценку и оценки других участников. При необходимости повторяете пп.3-5 любое количество раз.
6. PROFIT!

Бонусные хинты для тех, кто дочитал аж до сих пор.
1) Прежде чем кодить, почитайте интернеты, чтобы убедиться, что по крайней мере все термины, упомянутые в правилах, вам ясны.
2) Не переобучайтесь. Если оценка на learn'е улучшается, это вовсе не значит, что улучшится оценка на test'е. Даже если улучшается оценка и на learn'е, и на public-test'е, это все еще не говорит о том, что вы действительно научились ранжировать, а не обманываете сами себя каким-то хитрым образом. Если это вдруг так, то final test при подведении итогов это покажет. Если вы не знакомы с проблемой переобученности, см п.1
3) Не переусложняйте. Прежде чем перебирать утонченные ядра в экзотических вариантах SVM, попробуйте сначала какую-нибудь простую регрессию, ковариационный анализ, ну или кластеризуйте все по-быстренькому. Это недолго, а у вас появится и вменяемый результат, и baseline для понимания того, какой результат хорош, а какой не очень.
4) Некоторые переменные зависят только от документа (например, PageRank), некоторые - только от запроса (например, классификатор: "хотел ли пользователь найти порно"), некоторые - и от того, и от другого. Не игнорируйте это.

Удачи.

Update. Пропустили epic fail. В чем он состоял, не скажу, но данные пришлось поменять на новую порцию, соответственно, текущий рейтинг был сброшен. Смысл соревнования не изменился, новые данные доступны для скачивания, можно продолжать.
Tags: math, search, soft

  • Post a new comment

    Error

    Your reply will be screened

  • 77 comments

[info]_denplusplus_

March 10 2009, 18:19:30 UTC 3 years ago

Если получится, как с БГУ...

[info]max_posedon

March 10 2009, 18:42:24 UTC 3 years ago

1.2. Участник – дееспособное и правоспособное физическое лицо, являющееся гражданином РФ, не состоящие в трудовых или иных договорных отношениях с Организатором, действующее от своего имени, или Команда, выполнившие конкурсное задание в соответствии с требованиями Положения,

Насколько это критично?

[info]max_posedon

March 10 2009, 18:42:45 UTC 3 years ago

Т.е. Я гражданин РБ

[info]plakhov

3 years ago

[info]mikser

3 years ago

[info]plakhov

3 years ago

[info]faceted_jacinth

March 10 2009, 20:35:46 UTC 3 years ago

А какова продолжительность эвента-то?

[info]plakhov

March 11 2009, 06:17:26 UTC 3 years ago

31 мая - финальный замер

Anonymous

March 11 2009, 09:51:29 UTC 3 years ago

euhenio

А как-то выставляются реперные точки, на что ориентироваться?
Например, нынешний поиск яндекса - прогнать по нему, как бы научиться с ним сравнивать результаты?

[info]plakhov

March 11 2009, 10:38:56 UTC 3 years ago

Я так понимаю, единственная присутствующая пока что реперная точка - это "ранжирование" вида "всем парам одинаковая оценка". Как можно ранжировать еще хуже, я не знаю, но, судя по рейтингу решений, люди как-то умудряются. Да, еще в таблице результатов есть команда с говорящим именем Random :)

А так, есть рейтинг решений - и хорошо. Вот сейчас есть две команды, показавшие 6.534 (обе вне конкурса). Обгоняйте. А из конкурсных команд пока что даже baseline никто не преодолел. Если такой уровень выступлений сохранится, то участие в данном конкурсе - простейший из известных мне способов заработать 30К. :)

"Яндекс прогнать" - не очень корректная процедура в данном случае (в задаче старый набор признаков, сейчас они уже немного другие, и их больше; да и кроме вычисления цифирки Яндекс довольно много чего еще в момент ранжирования делает). Можно было бы потратить несколько часов и обучить какую-нибудь формулу нашими методами. Может, и соберемся.

Anonymous

3 years ago

[info]plakhov

3 years ago

Anonymous

3 years ago

[info]__rico

3 years ago

[info]__rico

3 years ago

[info]plakhov

3 years ago

[info]plakhov

3 years ago

[info]__rico

3 years ago

Anonymous

March 11 2009, 11:38:29 UTC 3 years ago

На странице http://company.yandex.ru/grant/2009/datasets пропали данные. Верните мне данные.

[info]plakhov

March 11 2009, 12:08:35 UTC 3 years ago

Произошел былинный отказ. Данные через некоторое время вернутся в измененном и улучшенном виде. Виновные будут расстреляны.

Deleted comment

[info]plakhov

March 11 2009, 15:12:58 UTC 3 years ago

Запрос идентифицируется только своим номером (который как раз и идет после решетки).
Сайт не идентифицируется никак.
Т.е. по сути это да, "строчки чисел с неизвестным смысловым содержанием".

[info]tasmanj

March 11 2009, 19:10:37 UTC 3 years ago

А выложите кто успел скачать неправильные данные. Интересно в чем ошибки были.

[info]tasmanj

March 11 2009, 19:16:09 UTC 3 years ago

а еще лучше diff :)

Anonymous

3 years ago

[info]tasmanj

3 years ago

[info]_el_loco_

March 11 2009, 21:59:05 UTC 3 years ago

>>Чтобы не раскрывать всякое мерзким поисковым оптимизаторам
Ты охуел, чмошник?

[info]plakhov

March 12 2009, 05:30:20 UTC 3 years ago

тупая гопота или только прикидываешься?

Anonymous

3 years ago

[info]plakhov

3 years ago

Anonymous

March 12 2009, 09:31:36 UTC 3 years ago

euhenio

вы неправильные люди.
Ссыкотно написать на странице конкурса, мол, мы ошиблись, данные изменились, скачайте данные заново?

Загружаю данные - говорит, неправильное число строк :( \
Или напишите там на сайте, что мол, наш официальный представилтль - plakhov
не все же знают

[info]plakhov

March 12 2009, 09:37:01 UTC 3 years ago

Ого, так я не официальный ни разу. Я даже организацией конкурса не занимался, так, рядом постоял. Здесь решил пояснить условия, просто потому, что мне кажется, что на сайте уж слишком все лаконично.
Зачем стерли упоминание о том, что данные изменились, и вообще зачем там все так кратко - не знаю. По недосмотру, думаю. Попробую пнуть кого-нибудь на эту тему.

Anonymous

3 years ago

Anonymous

March 12 2009, 10:34:40 UTC 3 years ago

число доступных параметров увеличилось с 164 до 244.
С чем это связано?

[info]plakhov

March 12 2009, 12:04:13 UTC 3 years ago

Тем, кто успел скачать старые данные, обещали письмо разослать. Там об этом не сказано?
Число доступных параметров изменилось только потому, что данные теперь взяты из другой выборки, т.е. никакого глубинного смысла в этом нет.

Anonymous

March 12 2009, 11:56:12 UTC 3 years ago

euhenio

что-то у вас там странно...
заливаю тот же файл, где все оценки умножены на коэффициент - ничего не меняется

что-то сломалось?

[info]plakhov

March 12 2009, 12:01:56 UTC 3 years ago

Почему же сломалось, все правильно.
Ранжирование не меняется от того, что все оценки умножаются на одно и то же число (и вообще от применения монотонной функции), поэтому и метрика не поменяется - она ведь зависит только от порядка следования документов.

Цель - не "угадать оценку", а "правильно упорядочить".

Рекомендую также внимательнее взглянуть на формулу тут http://company.yandex.ru/grant/2009/datasets

Anonymous

3 years ago

[info]plakhov

3 years ago

[info]magictop30

March 12 2009, 12:37:36 UTC 3 years ago

TOP: 2009-03-12 15:40

Вы попали в top30 на яндексе самых обсуждаемых тем в блогосфере. Поэтому копия вашего поста доступна в ленте по ссылке
Почитать текст со всеми комментариями можно тут
Это Ваш 2-й ТОПовый пост за последний год. Посмотреть статистику автора можно тут.
Кризиса нет, есть Блогун © НадежныйИсточник

Anonymous

March 12 2009, 13:09:27 UTC 3 years ago

йоу, я преодолел бейслайн! :)

Кстати: а где читать описание бейслайна? я не нашел...

Anonymous

March 12 2009, 14:27:52 UTC 3 years ago

Это кто тут "мерзкий поисковый оптимизатор"? Я скажу тогда, что ты больной глистами слепой урод.

[info]plakhov

3 years ago

Anonymous

3 years ago

[info]plakhov

3 years ago

[info]plakhov

3 years ago

Anonymous

3 years ago

[info]plakhov

3 years ago

Anonymous

3 years ago

[info]plakhov

3 years ago

[info]bert_msk

March 12 2009, 16:10:45 UTC 3 years ago

В Яндексе совсем всё плохо, если они таким способом решили привлечь народ у себя работать? ))

[info]pfyfxrf

March 12 2009, 20:17:14 UTC 3 years ago

ну если дураков готовых работать нахаляву полно то почему б не привлечь?

[info]_foreseer

3 years ago

Deleted comment

[info]_foreseer

March 13 2009, 06:30:47 UTC 3 years ago

товарища скорее зовут Амит Сингал и у нас стоит гораздо более простая задача, чем их "переплюнуть"

не говорите нам что нам надо делать и мы не будем вам говорить, куда вам надо идти :)

Anonymous

March 12 2009, 23:38:59 UTC 3 years ago

"Файл с обучающей выборкой содержит оценку релевантности, значения из множества {4, 3, 2, 1, 0} (4 – «высокая релевантность», 0 – «нерелевантно»)."

а в строках 45 и 47 стоит оценка 0.5. это как понимать? таки классов больше, чем пять?

[info]pavelpg

March 19 2009, 23:40:53 UTC 3 years ago

.=. : : ... : #
.=. // вот этой строчкой в ФБН сказано что релевантность это непрерывная величина

[info]pavelpg

3 years ago

Anonymous

March 13 2009, 02:23:56 UTC 3 years ago

"Если значение признака равно 0, то он опускается"
Тут нет никаких подводных камней? Т.е. эта пара «запрос-документ» действительно характеризуется данным признаком, и эта характеристика имеет значение 0. Или, например, данный признак неприменим к этой паре «запрос-документ», или применим, но значение характеристики неизвестно?

[info]illy_drinker

March 13 2009, 07:09:18 UTC 3 years ago

Удивительная реакция
Вместо того, чтобы просто сесть и решить -- пускай не быть первым, но хотя бы что-то сделать, попробовать один из методов statistical learning на задачах с таким числом параметров это дело одного дня (просто чтобы начать работать) , если не знаешь, то изучить -- дело ведь очень интересное, народ начинает скалиться и не очень умно шутить


Baseline это яндекс (как нетфликс, у них заморож на определ день)?

[info]n0mad_0

March 13 2009, 07:46:04 UTC 3 years ago

я думаю, что те, кто может сесть и начать решать ничего такого не пишут =)

[info]plakhov

3 years ago

[info]n0mad_0

March 13 2009, 07:23:09 UTC 3 years ago

меня глючит?

$ grep "^0\." ./../../data/imat2009_learning.txt | awk '{print $1}' | head
0.5
0.5
0.25
0.25
0.25
0.25
0.25
0.25
0.5
0.5

А в задании говорится, что все оценки из множества {1,2,3,4}.
Запрос, например, 11547.

[info]n0mad_0

March 13 2009, 08:05:30 UTC 3 years ago

Re: меня глючит?

ок, в описании формата написано float.

Но вот интересно, 0.5 и 0.75 - менее релевантно, чем 1?
Или это просто на 4 забыли умножить?

[info]_foreseer

3 years ago

[info]n0mad_0

3 years ago

[info]tasmanj

3 years ago

Anonymous

March 13 2009, 08:11:26 UTC 3 years ago

euhenio

Все-таки насчет "прогнать через яндекс".

очень-очень хочется такое видеть. Яндекс более умный, использует больше параметров, еще что-то считает, да? Ну и пусть. Значит, должен отранжировать правильнее и лучше.

Всего-то и дел - прогнать набор запросов с ограничениями по урлам, отранжированный порядок вывалить в файл.

Настойчиво предлагаю такой параметр ввести.
Если, конечно, не боитесь, что получится хуже, чем у людей :)

[info]omant

March 13 2009, 14:47:04 UTC 3 years ago

а мне бы, помимо, еще бы
- возможность отмечать удачный поиск
- добавить 10+random(random(30))% случайных результатов с любым ненулевым рейтингом на случайные места

[info]omant

March 13 2009, 14:49:35 UTC 3 years ago

- пересечения моего запроса с актуальными запросами всех посетителей, если они заметны

[info]plakhov

3 years ago

[info]omant

3 years ago

Deleted comment

[info]plakhov

March 14 2009, 20:22:15 UTC 3 years ago

да вот блин, спамеры какие-то набегают

[info]pavelpg

March 19 2009, 23:46:10 UTC 3 years ago

формат тестовой выборки не очень ясен

что значит в начале некоторых строчек "-1" в тестовой выборке??? я так полагаю что это какой-то глюк потому как в тестовой выборке должны быть пары признак:значение



[info]pavelpg

March 23 2009, 01:45:44 UTC 3 years ago

Re: формат тестовой выборки не очень ясен

а минус один это неоцененная релевантность

Anonymous

April 11 2009, 08:38:31 UTC 3 years ago

Ошибка?

У вас в обучающем файле "imat2009_learning.txt", для всех 97290 строк с обучающими запросами, значение 78-го признака равно единице. Это значит, что этот признак ни на что не влияет, или есть какой-то подвох?

[info]plakhov

April 11 2009, 08:57:52 UTC 3 years ago

Re: Ошибка?

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

Anonymous

3 years ago

Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…