Ири адрон коллайдери жана Одноклассники

Habréдеги машина үйрөнүү конкурстарынын темасын улантуу менен, биз окурмандарды дагы эки платформа менен тааныштыргыбыз келет. Алар, албетте, каггл сыяктуу чоң эмес, бирок алар сөзсүз көңүл бурууга татыктуу.

Ири адрон коллайдери жана Одноклассники

Жеке мен бир нече себептерден улам кагланы өтө жактырбайм:

  • биринчиден, ал жерде мелдештер көбүнчө бир нече айга созулат, ал эми активдүү катышуу көп күч-аракетти талап кылат;
  • экинчиден, коомдук ядролор (коомдук чечимдер). Кагглдын жактоочулары аларга тибеттик монахтардын тынчтыгы менен мамиле кылууну кеңеш беришет, бирок чындыгында бир-эки ай бою иштеп жүргөн нерсеңиз күтүлбөгөн жерден ар бир адам үчүн күмүш табакка салынып калганы абдан уят.

Бактыга жараша, машина үйрөнүү боюнча сынактар ​​башка аянтчаларда өткөрүлөт жана бул сынактардын бир нечеси талкууланат.

IDAO SNA Hackathon 2019
Расмий тили: англис,
уюштуруучулар: Яндекс, Сбербанк, HSE
расмий орус тили,
Уюштуруучулар: Mail.ru Group
Онлайн раунд: 15-январь — 11-февраль, 2019-жыл;
Сайттагы финал: 4-6-апрель, 2019-жыл
онлайн - 7-февралдан 15-мартка чейин;
офлайн - 30-марттан 1-апрелге чейин.
Чоң адрон коллайдериндеги бөлүкчө жөнүндө маалыматтардын белгилүү бир топтомун (траектория, импульс жана башка татаал физикалык параметрлер) колдонуу менен анын мюон экендигин же эмес экенин аныктаңыз.
Бул билдирүүдөн 2 милдет аныкталган:
- биринде сиз жөн гана өз божомолуңузду жөнөтүшүңүз керек болчу,
- жана экинчисинде - болжолдоо үчүн толук код жана модель, ал эми аткаруу иштөө убактысына жана эстутумуна карата катуу чектөөлөргө дуушар болгон.
SNA Hackathon сынагына 2018-жылдын февраль-март айлары үчүн колдонуучулардын жаңылыктар ленталарындагы ачык топтордун мазмунун көрсөтүү журналдары чогултулган. Сыноо топтому марттын акыркы бир жарым жумасын камтыйт. Журналдагы ар бир жазууда эмне жана кимге көрсөтүлгөнү, ошондой эле колдонуучу бул мазмунга кандай реакция кылганы жөнүндө маалымат камтылган: ага баа берген, комментарий берген, көңүл бурбаган же каналдан жашырган.
SNA Hackathon милдеттеринин маңызы - Odnoklassniki социалдык тармагынын ар бир колдонуучусуна өзүнүн каналын рейтингин коюу, "класс" алган постторду мүмкүн болушунча жогору көтөрүү.
Онлайн этапта тапшырма 3 бөлүккө бөлүндү:
1. кызматтарды ар кандай биргелешкен мүнөздөмөлөргө ылайык даражалоо
2. постторду камтыган сүрөттөрдүн негизинде баалаңыз
3. камтылган текстине жараша постторду разряддоо
Татаал ыңгайлаштырылган метрика, ROC-AUC сыяктуу Колдонуучу боюнча орточо ROC-AUC
Биринчи этап үчүн байгелер - N орунга футболкалар, экинчи этапка өтүү, анда мелдеш учурунда жатакана жана тамак-аш төлөнөт.
Экинчи этап - ??? (Белгилүү себептерден улам сыйлык тапшыруу аземине катышкан жокмун жана жыйынтыгында кандай сыйлыктар болгонун биле албадым). Алар жеңүүчү команданын бардык мүчөлөрүнө ноутбуктарды убада кылышты
Биринчи этаптын байгелери – 100 мыкты катышуучуга футболкалар, экинчи этапка өтүү, анда Москвага баруу, мелдеш учурунда жатакана жана тамак-аш төлөндү. Ошондой эле, биринчи этаптын аягында 3-этапта 1 тапшырма боюнча эң мыктыларга сыйлыктар жарыяланды: бардыгы RTX 2080 TI видео картасын утуп алышты!
Экинчи этап командалык этап болуп, командалар 2ден 5ке чейин, байгелер:
1-орун - 300 000 рубль
2-орун - 200 000 рубль
3-орун - 100 000 рубль
калыстар тобунун байгеси - 100 000 рубль
Расмий телеграмма тобу, ~190 катышуучу, англис тилинде баарлашуу, суроолор жооп үчүн бир нече күн күтүүгө туура келди Telegramдагы расмий топ, ~1500 катышуучу, катышуучулар менен уюштуруучулардын ортосундагы милдеттерди активдүү талкуулоо
Уюштуруучулар жөнөкөй жана өркүндөтүлгөн эки негизги чечимди сунушташты. Жөнөкөй RAM 16 ГБ кем талап кылынат, ал эми өркүндөтүлгөн эс 16га туура келген эмес. Ошол эле учурда, бир аз алдыга карап, катышуучулар алдыңкы чечимди олуттуу түрдө аткара алышкан жок. Бул чечимдерди ишке киргизүүдө эч кандай кыйынчылыктар болгон жок. Белгилей кетчү нерсе, өнүккөн мисалда чечимди жакшыртууну кайдан баштоо керектиги боюнча ишарат болгон. Ар бир тапшырма үчүн негизги примитивдүү чечимдер каралган, алар катышуучулар тарабынан оңой эле ашып кеткен. Сынактын алгачкы күндөрүндө катышуучулар бир нече кыйынчылыктарга дуушар болушкан: биринчиден, маалыматтар Apache Parquet форматында берилген жана Python менен паркет пакетинин бардык комбинациялары катасыз иштеген эмес. Экинчи кыйынчылык почта булутунан сүрөттөрдү жүктөө болду; учурда бир эле учурда чоң көлөмдөгү маалыматтарды жүктөөнүн оңой жолу жок. Натыйжада бул көйгөйлөр катышуучуларды бир-эки күнгө кечиктирди.

IDAO. Биринчи этап

Милдет муондук/мюондук эмес бөлүкчөлөрдү өзгөчөлүктөрүнө жараша классификациялоо болгон. Бул тапшырманын негизги өзгөчөлүгү машыгуу маалыматтарында салмак тилкесинин болушу болду, аны уюштуруучулар өздөрү бул саптын жообуна ишеним катары чечишти. Көйгөй бир нече катар терс салмактарды камтыган.

Ири адрон коллайдери жана Одноклассники

Кыйытма менен сызык жөнүндө бир нече мүнөт ойлонгондон кийин (иш жөн гана салмак тилкесинин бул өзгөчөлүгүнө көңүл бурган) жана бул графикти кургандан кийин, биз 3 вариантты текшерүүнү чечтик:

1) терс салмагы бар сызыктардын бутасын (жана ошого жараша салмагын) инверттөө
2) салмактарды 0дөн башталышы үчүн минималдуу мааниге которуу
3) жиптин салмагын колдонбоңуз

Үчүнчү вариант эң начар болуп чыкты, бирок биринчи экөө натыйжаны жакшыртты, эң жакшысы №1 вариант болду, ал бизди дароо биринчи тапшырмада азыркы экинчи орунга, экинчисинде биринчи орунга алып келди.
Ири адрон коллайдери жана Одноклассники
Биздин кийинки кадамыбыз жетишпеген маанилер боюнча маалыматтарды карап чыгуу болду. Уюштуруучулар бизге буга чейин бир нече жетишпеген маанилер бар таралган маалыматтарды беришкен жана алар -9999 менен алмаштырылган.

Биз MatchedHit_{X,Y,Z}[N] жана MatchedHit_D{X,Y,Z}[N] тилкелеринде жетишпеген маанилерди таптык жана N=2 же 3 болгондо гана. Биз түшүнгөндөй, кээ бир бөлүкчөлөр жок болгон 4 детектордун баарын өткөрүп, 3-же 4-плитада токтоду. Маалыматта ошондой эле Lextra_{X,Y}[N] тилкелери камтылган, алар MatchedHit_{X,Y,Z}[N] сыяктуу эле нерсени сүрөттөйт, бирок кандайдыр бир экстраполяцияны колдонгон. Бул анча-мынча божомолдор Lextra_{X,Y}[N] MatchedHit_{X,Y,Z}[N] ичиндеги жетишпеген маанилерге алмаштырылышы мүмкүн деп сунуштады (X жана Y координаттары үчүн гана). MatchedHit_Z[N] медиана менен жакшы толтурулган. Бул манипуляциялар эки тапшырмада тең 1-ортолук орунга жетүүгө мүмкүндүк берди.

Ири адрон коллайдери жана Одноклассники

Биринчи этапта жеңишке жеткени үчүн эч нерсе бербегенин эске алсак, ошол жерде токтоп калсак болмок, бирок биз улантып, кооз сүрөттөрдү тартып, жаңы мүмкүнчүлүктөрдү ойлоп таптык.

Ири адрон коллайдери жана Одноклассники

Мисалы, биз төрт детектордук пластинкалардын ар бири менен бөлүкчөнүн кесилишкен чекиттерин түзсөк, ар бир пластинкадагы чекиттер тараптарынын катышы 5төн 4ке чейинки 5 тик бурчтукка топтолуп, борборлоштурулганын көрөбүз. чекит (0,0) жана биринчи тик бурчтукта чекиттер жок.

Пластинанын номери / тик бурчтуктун өлчөмдөрү 1 2 3 4 5
Пластина 1 500h625 1000h1250 2000h2500 4000h5000 8000h10000
Пластина 2 520h650 1040h1300 2080h2600 4160h5200 8320h10400
Пластина 3 560h700 1120h1400 2240h2800 4480h5600 8960h11200
Пластина 4 600h750 1200h1500 2400h3000 4800h6000 9600h12000

Бул өлчөмдөрдү аныктап, биз ар бир бөлүкчө үчүн 4 жаңы категориялык белгини коштук - ал ар бир пластинка менен кесилишкен тик бурчтуктун санын.

Ири адрон коллайдери жана Одноклассники

Ошондой эле бөлүкчөлөр борбордон эки тарапка чачырап жаткандай сезилгенин жана кандайдыр бир жол менен бул чачырандылыктын “сапатын” баалоо идеясы пайда болгонун байкадык. Идеалында, учуу чекитине жараша кандайдыр бир “идеалдуу” параболаны ойлоп табуу жана андан четтөөлөрдү баалоо мүмкүн болмок, бирок биз “идеалдуу” түз сызык менен чектелдик. Ар бир кирүүчү чекит үчүн ушундай идеалдуу түз сызыктарды түзүп, биз бул түз сызыктан ар бир бөлүкчөнүн траекториясынын стандарттык четтөөсүн эсептей алдык. Максат = 1 үчүн орточо четтөө 152, ал эми максат = 0 үчүн 390 болгондуктан, биз бул өзгөчөлүктү алдын ала жакшы деп бааладык. Чынында эле, бул өзгөчөлүк аны дароо эң пайдалуулардын биринчисине чыгарды.

Биз кубанып, ар бир бөлүкчө үчүн идеалдуу түз сызыктан бардык 4 кесилишкен чекиттердин четтөөсүн кошумча 4 өзгөчөлүк катары коштук (жана алар да жакшы иштешти).

Уюштуруучулар тарабынан сынактын темасы боюнча илимий макалаларга шилтемелер биз бул маселени чечүүдө биринчилерден алыспыз жана, балким, кандайдыр бир атайын программалык камсыздоо бар деген ойго түрттү. Githubда IsMuonSimple, IsMuon, IsMuonLoose методдору ишке ашырылган репозиторийди таап, биз аларды анча-мынча өзгөртүүлөр менен сайтыбызга өткөрдүк. Методдордун өзүлөрү абдан жөнөкөй болгон: мисалы, энергия белгилүү бир чектен аз болсо, анда бул мюон эмес, антпесе бул мюон. Мындай жөнөкөй функциялар градиентти жогорулатууну колдонууда көбөйө албайт, ошондуктан биз босогого дагы бир олуттуу "аралыкты" коштук. Бул өзгөчөлүктөр да бир аз жакшыртылды. Балким, бар болгон ыкмаларды тереңирээк талдап, андан да күчтүү ыкмаларды таап, белгилерге кошууга мүмкүн болгондур.

Мелдештин аягында биз экинчи маселенин “тез” чечилишин бир аз оңдоп койдук, акырында ал төмөнкү пункттар боюнча баштапкы деңгээлден айырмаланды:

  1. Терс салмактагы катарларда бутага тескери бурулду
  2. MatchedHit_{X,Y,Z}[N] ичиндеги жетишпеген маанилер толтурулган
  3. Тереңдик 7ге чейин кыскарган
  4. Окуу ылдамдыгы 0.1ге чейин төмөндөдү (0.19 болгон)

Натыйжада, биз көбүрөөк функцияларды сынап көрдүк (өтө ийгиликтүү эмес), параметрлерди тандап, catboost, lightgbm жана xgboost үйрөттүк, ар кандай божомолдорду аралаштырып көрдүк жана купуяны ачардан мурун биз экинчи тапшырмада ишенимдүү жеңишке жеттик, биринчисинде биз лидерлер.

Катар ачылгандан кийин 10-тапшырма боюнча 1-орунда, экинчисинде 3-орунда болдук. Бардык жетекчилер аралашып кетишти, жекече ылдамдык либордо караганда жогору болду. Маалыматтар начар стратификацияланган окшойт (же, мисалы, жекеде терс салмактары бар саптар жок) жана бул бир аз капа болду.

SNA Hackathon 2019 - Тексттер. Биринчи этап

Милдет Одноклассники социалдык тармагындагы колдонуучулардын постторун алардагы тексттин негизинде рейтингдештирүү болчу; тексттен тышкары, посттун дагы бир нече мүнөздөмөлөрү (тили, ээси, түзүлгөн күнү жана убактысы, көрүү датасы жана убактысы) болгон. ).

Текст менен иштөөдө классикалык ыкма катары мен эки вариантты белгилейт элем:

  1. Окшош сөздөрдүн окшош векторлору болушу үчүн ар бир сөздү n-өлчөмдүү вектордук мейкиндикке түшүрүү (кеңири оку биздин макала), андан кийин же текст үчүн орточо сөздү табуу же сөздөрдүн салыштырмалуу абалын эске алган механизмдерди колдонуу (CNN, LSTM/GRU).
  2. Дароо бүт сүйлөмдөр менен иштей ала турган моделдерди колдонуу. Мисалы, Берт. Теориялык жактан алганда, бул ыкма жакшыраак иштеши керек.

Бул менин тексттер менен болгон биринчи тажрыйбам болгондуктан, бирөөгө үйрөтүү туура эмес болуп калат, ошондуктан мен өзүм үйрөтөм. Конкурстун башында мен өзүмө бере турган кеңештер:

  1. Бир нерсени үйрөтүү үчүн чуркагандан мурун, маалыматтарды караңыз! Тексттин өзүнөн тышкары, маалыматтар бир нече тилкеге ​​ээ болгон жана алардан менден алда канча көбүрөөк сыгып алууга мүмкүн болгон. Эң жөнөкөй нерсе - кээ бир тилкелер үчүн максаттуу коддоону жасоо.
  2. Бардык маалыматтардан сабак албаңыз! Маалыматтар көп болгон (болжол менен 17 миллион сап) жана гипотезаларды текшерүү үчүн алардын баарын колдонуунун таптакыр кереги жок болчу. Машыгуу жана алдын ала кайра иштетүү абдан жай жүрдү жана мен, албетте, кызыктуу гипотезаларды сынап көрүүгө убакыт тапмакмын.
  3. <Талаштуу кеңеш> Өлтүрүүчү моделди издөөнүн кереги жок. Мен Элмо менен Бертти дароо эле бийик жерге алып чыгышат деп көпкө ойлонуп, натыйжада орус тили үчүн FastText алдын ала даярдалган кыстармаларды колдондум. Мен Эльмо ​​менен жакшыраак ылдамдыкка жетише алган жокмун, а мен дагы эле Берт менен аны түшүнүүгө үлгүргөн жокмун.
  4. <Талаштуу кеңеш> Бир өлтүргүч өзгөчөлүктү издөөнүн кереги жок. Маалыматтарды карап, мен тексттердин 1 пайызга жакынында текст жок экенин байкадым! Бирок кээ бир ресурстарга шилтемелер бар болчу, мен сайтты ачып, аталышын жана сүрөттөмөсүн сууруп алган жөнөкөй талдоочу жаздым. Бул жакшы идея болуп көрүндү, бирок кийин мен алданып калдым жана бардык тексттерге шилтемелерди талдап чыгууну чечтим жана кайра көп убакытты жоготтум. Мунун баары акыркы натыйжада олуттуу жакшырууну камсыз кылган жок (бирок мен, мисалы, стемпингди түшүндүм).
  5. Классикалык функциялар иштейт. Биз Google, мисалы, "текст өзгөчөлүктөрү kaggle", баарын окуп жана кошобуз. TF-IDF жакшыртты, ошондой эле тексттин узундугу, сөздөр жана тыныш белгилеринин саны сыяктуу статистикалык өзгөчөлүктөр жакшырды.
  6. DateTime тилкелери бар болсо, аларды бир нече өзүнчө өзгөчөлүктөргө (сааттарга, жуманын күндөрүнө, ж.б.) талдоо керек. Кайсы өзгөчөлүктөрдү бөлүп көрсөтүү керек, графиктер/кээ бир метрикаларды колдонуу менен талдоо керек. Бул жерде, каалоо боюнча, мен баарын туура кылдым жана керектүү өзгөчөлүктөргө басым жасадым, бирок кадимки анализ зыян келтирбейт (мисалы, биз финалда кылгандай).

Ири адрон коллайдери жана Одноклассники

Сынактын жыйынтыгында бир керас моделин сөз айкалыштыруу менен, экинчисин LSTM жана GRU негизинде даярдадым. Экөө тең орус тили үчүн алдын ала даярдалган FastText кыстармаларын колдонушкан (мен бир катар башка кыстарууларды сынап көрдүм, бирок булар эң жакшы иштеген). Божомолдорду орто эсеп менен эсептеп, 7 катышуучунун ичинен акыркы 76-орунга ээ болдум.

Биринчи этаптан кийин ал басылып чыкты Николай Анохиндин макаласы, экинчи орунду ээлеген (ал сынактан тышкары катышкан) жана анын чечими кандайдыр бир баскычка чейин кенди кайталады, бирок суроо-ачкыч-маанилик көңүл буруу механизминен улам андан ары кетти.

Экинчи этап OK & IDAO

Сынактын экинчи этаптары дээрлик катары менен өткөндүктөн, аларды чогуу кароону чечтим.

Биринчиден, мен жана жаңы алынган команда Mail.ru компаниясынын таасирдүү кеңсесинде болдук, ал жерде биздин милдет биринчи этаптан үч тректин моделдерин айкалыштыруу болду - текст, сүрөттөр жана коллаб. Бул үчүн 2 күндөн бир аз ашык убакыт бөлүнгөн, бул өтө аз болуп чыкты. Чынында, биз биригүүдөн эч кандай пайда албай туруп, биринчи этаптагы жыйынтыктарды кайталай алдык. Жыйынтыгында 5-орунга ээ болдук, бирок текст моделин колдоно албай калдык. Башка катышуучулардын чечимдерин карап чыккандан кийин, тексттерди кластерлөө жана аларды биргелешкен моделге кошууга аракет кылуу керек болчу. Бул этаптын терс таасири жаңы таасирлер, салкын катышуучулар жана уюштуруучулар менен жолугушуу жана баарлашуу, ошондой эле IDAOнун жыйынтыктоочу этабынын жыйынтыгына таасир эткен катуу уйкунун жетишсиздиги болду.

IDAO 2019 Финалдык баскычындагы тапшырма Яндекс такси айдоочуларынын аэропортто заказ күтүү убактысын болжолдоо болгон. 2-этапта 3 милдет = 3 аэропорт аныкталды. Ар бир аэропорт үчүн алты айдагы таксиге буйрутмалардын саны боюнча мүнөт сайын маалыматтар берилет. Ал эми сыноо маалыматтары катары, кийинки ай жана акыркы 2 жумадагы заказдар боюнча мүнөт сайын маалыматтар берилди. Убакыт аз болду (1,5 күн), тапшырма кыйла конкреттүү, командадан бир гана адам мелдешке келди - натыйжада ал акырына карата кейиштүү жер болду. Кызыктуу идеяларга тышкы маалыматтарды колдонуу аракеттери кирди: аба ырайы, тыгындар жана Яндекс такси заказ статистикасы. Уюштуруучулар бул кайсы аэропорт экенин айтышпаса да, катышуучулардын көбү Шереметьево, Домодедово жана Внуково деп ойлошкон. Бул божомол сынактан кийин четке кагылганына карабастан, өзгөчөлүктөр, мисалы, Москванын аба ырайынын маалыматтары валидацияда да, лидер тактасында да натыйжаларды жакшыртты.

жыйынтыктоо

  1. ML мелдештери сонун жана кызыктуу! Бул жерде сиз маалыматтарды талдоо, куу моделдер жана ыкмалар боюнча көндүмдөрдү колдонууну таба аласыз, жана жөн гана акыл-эстүүлүк кабыл алынат.
  2. ML - бул экспоненциалдуу түрдө өсүп бараткандай көрүнгөн билимдин чоң жыйындысы. Мен алдыма ар кандай чөйрөлөр менен (сигналдар, сүрөттөр, таблицалар, текст) таанышууну максат кылып койдум жана окуу үчүн канчалык көп бар экенин түшүндүм. Мисалы, бул сынактардан кийин мен изилдөөнү чечтим: кластердик алгоритмдерди, градиентти жогорулатуучу китепканалар менен иштөөнүн алдыңкы ыкмаларын (атап айтканда, GPUде CatBoost менен иштөө), капсула тармактарын, суроо-ачкыч-маанилик көңүл буруу механизмин.
  3. Каггл менен эле эмес! Башка көптөгөн сынактар ​​бар, аларда жок дегенде футболка алуу оңой жана башка байгелерге көбүрөөк мүмкүнчүлүктөр бар.
  4. Байланыш! Машиналарды үйрөнүү жана маалыматтарды талдоо жаатында чоң коомчулук бар, телеграммада тематикалык топтор бар, Mail.ru, Яндекс жана башка компаниялардан олуттуу адамдар суроолорго жооп берип, башталгычтарга жана бул тармакта жолун улантууга жардам беришет. билимдин.
  5. Мен мурунку пункттан шыктангандардын баарына барууга кеңеш берем datafest — 10-11-майда Москвада өтө турган чоң эркин конференция.

Source: www.habr.com

Комментарий кошуу