Изучая предметную область, я наткнулся на ряд статей, которые утверждают, что улучшают состояние дел, и были опубликованы в уважаемых изданиях (например, CVPR, ICIP). Эти документы часто написаны таким образом, что некоторые детали затемняются, а в их методах может отсутствовать детализация. Связавшись с этими авторами для получения дополнительной информации и спросив, не могли бы они сделать свой исходный код доступным, они перестают отвечать или отклоняют предложение.
Почему исследователи информатики не хотят делиться своим кодом?
Я ожидал, что распространение вашего исходного кода будет иметь положительный эффект для автора, например, большее признание и известность в сообществе и больше цитирований. Что мне не хватает?
На будущее, какие есть лучшие способы обратиться к коллегам-исследователям, которые приведут к большему успеху в получении копии их исходного кода?
Почему исследователи могут неохотно делиться своим кодом: по моему опыту, есть две распространенные причины, по которым некоторые/многие исследователи не делятся своим кодом.
Во-первых, код может дать исследователям важное преимущество для дальнейшей работы. Это может помочь им стать на шаг впереди других исследователей и быстрее публиковать последующие исследования. Если у исследователей есть планы на дальнейшие исследования, сохранение их кода в секрете дает им конкурентное преимущество и помогает избежать кражи со стороны кого-то другого. (Это может быть хорошо, а может быть и плохо; я не занимаю позицию по этому поводу.)
Во-вторых, большая часть исследовательского кода имеет исследовательское качество. Исследователи, вероятно, думали, что этого достаточно, чтобы проверить гипотезы статьи, но это все. У него может быть много известных проблем; у него может не быть никакой документации; это может быть сложно использовать; он может компилироваться только на одной платформе; и так далее. Все это может затруднить использование кем-то другим. Или может потребоваться куча работы, чтобы объяснить кому-то еще, как использовать код. Кроме того, код может быть прототипом, но не производственным качеством. Нет ничего необычного в том, чтобы при кодировании использовать ярлыки: ярлыки, которые не влияют на результаты исследования и хороши в контексте исследовательской работы, но это было бы неприемлемо для развернутого кода производственного качества. Некоторые люди перфекционисты, и не не нравится идея совместного использования кода с известными уязвимостями или там, где они срезали путь; они не хотят смущаться, когда другие видят код.
Вторая причина, вероятно, более важная; это очень распространено.
Как обращаться к исследователям: я предлагаю переориентировать ваше взаимодействие с этими исследователями. Каковы ваши настоящие цели? Ваша настоящая цель — лучше понять их алгоритмы. Итак, начните с этой точки зрения и действуйте соответственно. Если в документе есть какие-то части, за которыми трудно уследить или которые неоднозначны, начните с чтения и перечитывания их статьи, чтобы увидеть, есть ли какие-то детали, которые вы могли пропустить. Хорошо подумайте, как заполнить недостающие пробелы. Сначала приложите серьезные усилия самостоятельно.
Если вы находитесь на уровне исследования, и вы приложили серьезные усилия, чтобы понять, и вы все еще не понимаете ... напишите авторам и попросите их разъяснить конкретные моменты, которые вы считаете неясными . Не беспокойте авторов без необходимости, но если вы проявите интерес к их работе и у вас возникнет хороший вопрос, многие авторы будут рады ответить. Они просто благодарны, что кто-то читает их статьи и достаточно заинтересован в их работе, чтобы внимательно изучить их работу и задать проницательные вопросы.
Но убедитесь, что вы задаете хорошие вопросы. Не поленитесь и попросите авторов прояснить то, в чем вы могли бы разобраться самостоятельно, если подумать. Авторы это чувствуют и спишут вас как вредителя, а не ценного коллегу.
Очень важно: пожалуйста, поймите, что мой ответ, объясняющий, почему исследователи могут не делиться своим кодом, задуман как описательный , а не предписывающий ответ. Я решительно не делаю никаких суждений о том, хороши ли их доводы или правы (или неправы) исследователи, думая таким образом. Я не занимаю позицию относительно того, должны ли исследователи делиться своим кодом или нет; Я просто описываю, как ведут себя некоторые исследователи . То, что они должны сделать, это совершенно другой шарик воска.
Оригинальный постер просил помочь понять, почему многие исследователи не делятся своим кодом, и я отвечаю на это. Споры о том, являются ли эти причины хорошими, субъективны и не относятся к данному вопросу; если вы хотите провести эту дискуссию, задайте отдельный вопрос.
И, пожалуйста, я призываю вас использовать немного сочувствия здесь. Вне зависимости от того, правы вы или нет исследователи, отказывающиеся делиться своим кодом в таких обстоятельствах, пожалуйста, поймите, что у многих исследователей действительно есть причины, которые кажутся им вескими и подходящими. Постарайтесь понять их мышление, прежде чем рефлекторно критиковать их. Я не пытаюсь сказать, что их доводы обязательно правильны и полезны для данной области. Я просто говорю, что если вы хотите убедить людей изменить свою практику, важно сначала понять мотивы и структурные силы, которые повлияли на их нынешние действия, прежде чем вы начнете пытаться запугать их и заставить действовать по-другому.
Приложение: Я определенно поддерживаю рекомендацию Яна Горзного прочитать статью в SIAM News, которую он цитирует. Это информативно.
Стивен, у меня точно такой же опыт, как и у вас, и я объясняю это тем, что соотношение выгоды/затраты слишком низкое.
Упаковать часть программного обеспечения, чтобы его мог использовать другой человек, сложно — часто даже сложнее, чем написать его в первую очередь. Это требует, среди прочего:
Кроме того, я должен быть готов отвечать на вопросы и исправлять ошибки через несколько лет после выпуска, когда я уже работаю полный рабочий день в другом месте и у меня есть маленькие дети.
И все это без какой-либо специальной оплаты или академического кредита за все эти усилия.
Одним из возможных решений, о котором я недавно подумал, является создание нового журнала Journal of Reproducible Computer Science , который будет принимать только публикации, эксперименты с которыми можно легко повторить. Вот некоторые из моих мыслей о таком журнале:
Представленные статьи должны иметь подробный раздел воспроизведения , содержащий (как минимум) следующие подразделы: - предварительные условия - какие системы, стороннее программное обеспечение и т. д. необходимы для повторения эксперимента; - инструкции - подробная инструкция, как повторить эксперимент. - лицензии - либо с открытым исходным кодом, либо с закрытым исходным кодом, но должны разрешать свободное использование в исследовательских целях.
Процесс рецензирования требует, чтобы каждый из 3 разных рецензентов, с разным опытом, прошел этот раздел, используя разные компьютеры и операционные системы.
После процесса рецензирования, если статья будет принята к публикации, будет еще один этап подготовки к публикации , который продлится в течение года. На этом этапе статья будет доступна всем читателям, и у них будет возможность повторить эксперимент, а также связаться с автором в случае возникновения каких-либо проблем. Только после этого года газета будет окончательно опубликована.
Этот журнал позволит исследователям получить признание за трудную и важную работу по созданию их кода, пригодного для использования другими.
РЕДАКТИРОВАТЬ: теперь я вижу, что кто-то уже думал об этом! https://www.scienceexchange.com/воспроизводимость
«Science Exchange, PLOS ONE, figshare и Mendeley запустили Инициативу воспроизводимости для решения этой проблемы. Пришло время начать вознаграждать людей, которые тратят дополнительное время на наиболее тщательную и воспроизводимую работу. Текущие академические стимулы делают акцент на новизне. , что достигается за счет строгости. Исследования, представленные в рамках Инициативы, присоединяются к пулу исследований, которые будут выборочно воспроизводиться по мере поступления финансирования. Инициатива работает на основе добровольного согласия, поскольку мы считаем, что научный консенсус , в отличие от просто наиболее цитируемых, работа является ценным сигналом, помогающим выявить высококачественные воспроизводимые результаты, которые можно надежно использовать для продвижения научного понимания».
Эта статья в SIAM News проливает свет на первый вопрос, так что, возможно, ее стоит посмотреть. Для математической аудитории в нем доказывается, почему исследователи должны публиковать свой исходный код, и перечисляются многие причины, по которым исследователи не делятся своим исходным кодом. Это делается с помощью умной аналогии, которая сравнивает обмен математическими доказательствами с обменом исходным кодом. Взглянем; у него есть довольно обширный список причин, по которым исследователи могут предпочесть не делиться своим исходным кодом (а также некоторые ответы, утверждающие, что эти причины не являются хорошими).
Вот цитата:
Десять главных причин не делиться своим кодом (и почему вы все равно должны это делать). Рэндалл Дж. ЛеВек. Новости СИАМ, 1 апреля 2013 г.
При совместном использовании кода есть несколько проблем:
Первая проблема связана с вопросами авторского права, поскольку некоторые исследования/проекты CS финансируются определенными промышленниками/финансирующими организациями, которые не поощряют обмен конфиденциальной информацией, такой как алгоритмы, код или программное обеспечение, при публикации в публичных периодических изданиях.
Действительно, есть статьи, основанные на определенных данных (собранных в результате выполнения кода), которые, к сожалению, авторы модифицируют вручную. Если они делятся кодом, обнаружение их ошибок/ошибок/модификаций становится очень простым, что приводит к провалу либо в их MS/PhD, либо в исследовательском проекте, что нежелательно.
В исследованиях CS и особенно в публикациях разработка кода, особенно длинного и сложного кода, является нетривиальной задачей и в большинстве случаев считается активом, приносящим деньги и генерирующим бумаги. Делясь кодом с общественностью, они очень подробно раскрывают факты, которые могут снизить их вклад в будущие исследования. Кроме того, они могут быть не единственными, кто может восстановить статью и отдать должное этому конкретному исследованию и коду. В большинстве случаев магистранты выбирают алгоритм или метод, немного изменяют его и представляют на его основе диссертацию и статью, которые могут противоречить выводам и утверждениям первого автора. Вспомните Тома Хердона , аспиранта, раскритиковавшего выводы двух выдающихся экономистов Гарвардского университета ( здесьэто ссылка). В случае раскрытия кодов в КС последствия, скорее всего, будут катастрофическими (случаев может быть не так уж и много, но если они и произойдут, то будут катастрофическими).
Коды жизненно необходимы большинству исследователей для проведения экспериментов и исследований. Если у вас есть код, вы можете просто поэкспериментировать с ним и изменить его, чтобы получить новый набор результатов, которые могут быть более ценными, чем первоначальные результаты. Без авторства первоначального автора им нет кредита.
Тем не менее, Elsevier недавно представила новую функцию, использующую COLLAGE, под названием Executable Papers , которая в настоящее время доступна для журнала Computers & Graphics, с помощью которой доступны коды и данные, и исследователи могут изменять код и входные значения для игры.
Надеюсь, поможет.
Я не исследователь CS как таковой, но я пишу код Android для своих исследований в области физики атмосферы, поэтому мое мнение несколько ограничено. Тем не менее, я могу сказать по своему собственному опыту, что большая часть кода, который я разрабатываю и тестирую, является частью более крупного проекта, который разрабатывает команда, частью которой я являюсь. Это сочетание правил, которых я придерживаюсь, и необходимости пока держать часть кода в тайне.
Петр Мигдаль
Стивен Тирни
Михаил Панков
Фахим Мита
ДВ
Дикран Сумчатый
Стивен Тирни
Дикран Сумчатый
Дикран Сумчатый