В первой статье мы успели осознать, как легко и непринужденно ИИ впитывает человеческие предрассудки в логику своих моделей. Как я и обещала, выкладываю вторую часть перевода, в которой мы разберемся, как измерить и ослабить влияние расизма в ИИ с помощью простых методов.


Напомню: мы закончили на том, что наш классификатор считал идею пойти в итальянский ресторан в 5 раз лучше, чем в мексиканский.

Проводим количественный анализ проблемы


Хотелось бы понять, как избежать подобной ситуации в будущем. Давайте обработаем нашей системой дополнительные данные и статистически измерим величину предубеждения.

Составим четыре списка имен, которые ассоциируются с людьми (жителями США) различного этнического происхождения. Первые два списка — распространенные имена белых и чернокожих людей, взятых из статьи Принстонского университета. Добавляю испаноязычные имена и имена, распространенные в исламской культуре (преимущественно из арабского и языка урду), т. е. еще две группы имен, достаточно сильно связанных с их этнической группой.

Сейчас эти данные используют для проверки предубежденности в процессе формирования ConceptNet. Они содержатся в модуле conceptnet5.vectors.evaluation.bias. Мне хотелось бы добавить и другие этнические группы. Для этого может потребоваться учитывать не только имена, но и фамилии.

Вот списки
NAMES_BY_ETHNICITY = {
    # The first two lists are from the Caliskan et al. appendix describing the
    # Word Embedding Association Test.
    'White': [
        'Adam', 'Chip', 'Harry', 'Josh', 'Roger', 'Alan', 'Frank', 'Ian', 'Justin',
        'Ryan', 'Andrew', 'Fred', 'Jack', 'Matthew', 'Stephen', 'Brad', 'Greg', 'Jed',
        'Paul', 'Todd', 'Brandon', 'Hank', 'Jonathan', 'Peter', 'Wilbur', 'Amanda',
        'Courtney', 'Heather', 'Melanie', 'Sara', 'Amber', 'Crystal', 'Katie',
        'Meredith', 'Shannon', 'Betsy', 'Donna', 'Kristin', 'Nancy', 'Stephanie',
        'Bobbie-Sue', 'Ellen', 'Lauren', 'Peggy', 'Sue-Ellen', 'Colleen', 'Emily',
        'Megan', 'Rachel', 'Wendy'
    ],

    'Black': [
        'Alonzo', 'Jamel', 'Lerone', 'Percell', 'Theo', 'Alphonse', 'Jerome',
        'Leroy', 'Rasaan', 'Torrance', 'Darnell', 'Lamar', 'Lionel', 'Rashaun',
        'Tyree', 'Deion', 'Lamont', 'Malik', 'Terrence', 'Tyrone', 'Everol',
        'Lavon', 'Marcellus', 'Terryl', 'Wardell', 'Aiesha', 'Lashelle', 'Nichelle',
        'Shereen', 'Temeka', 'Ebony', 'Latisha', 'Shaniqua', 'Tameisha', 'Teretha',
        'Jasmine', 'Latonya', 'Shanise', 'Tanisha', 'Tia', 'Lakisha', 'Latoya',
        'Sharise', 'Tashika', 'Yolanda', 'Lashandra', 'Malika', 'Shavonn',
        'Tawanda', 'Yvette'
    ],
    
    # This list comes from statistics about common Hispanic-origin names in the US.
    'Hispanic': [
        'Juan', 'Jose', 'Miguel', 'Luis', 'Jorge', 'Santiago', 'Matias', 'Sebastian',
        'Mateo', 'Nicolas', 'Alejandro', 'Samuel', 'Diego', 'Daniel', 'Tomas',
        'Juana', 'Ana', 'Luisa', 'Maria', 'Elena', 'Sofia', 'Isabella', 'Valentina',
        'Camila', 'Valeria', 'Ximena', 'Luciana', 'Mariana', 'Victoria', 'Martina'
    ],
    
    # The following list conflates religion and ethnicity, I'm aware. So do given names.
    #
    # This list was cobbled together from searching baby-name sites for common Muslim names,
    # as spelled in English. I did not ultimately distinguish whether the origin of the name
    # is Arabic or Urdu or another language.
    #
    # I'd be happy to replace it with something more authoritative, given a source.
    'Arab/Muslim': [
        'Mohammed', 'Omar', 'Ahmed', 'Ali', 'Youssef', 'Abdullah', 'Yasin', 'Hamza',
        'Ayaan', 'Syed', 'Rishaan', 'Samar', 'Ahmad', 'Zikri', 'Rayyan', 'Mariam',
        'Jana', 'Malak', 'Salma', 'Nour', 'Lian', 'Fatima', 'Ayesha', 'Zahra', 'Sana',
        'Zara', 'Alya', 'Shaista', 'Zoya', 'Yasmin'
    ]
}


С помощью Pandas преобразуем эти данные (имена, наиболее характерное происхождение и получаемая для них оценка тональности) в таблицу.

def name_sentiment_table():
    frames = []
    for group, name_list in sorted(NAMES_BY_ETHNICITY.items()):
        lower_names = [name.lower() for name in name_list]
        sentiments = words_to_sentiment(lower_names)
        sentiments['group'] = group
        frames.append(sentiments)

    # Put together the data we got from each ethnic group into one big table
    return pd.concat(frames)

name_sentiments = name_sentiment_table()

Теперь можно наглядно представить распределение оценок тональности, которую система выдает для каждой группы имен.

plot = seaborn.swarmplot(x='group', y='sentiment', data=name_sentiments)
plot.set_ylim([-10, 10])



Распределения можно преобразовать в столбчатые диаграммы с доверительным интервалом в 95 % вокруг средних значений.

plot = seaborn.barplot(x='group', y='sentiment', data=name_sentiments, capsize=.1)



И наконец, мы можем обработать эти данные мощными статистическими инструментами пакета statsmodels, чтобы узнать в числе прочего, насколько выражен наблюдаемый эффект.

ols_model = statsmodels.formula.api.ols('sentiment ~ group', data=name_sentiments).fit()
ols_model.fvalue
# 13.041597745167659

F-мера (F-statistic) — это метрика, позволяющая одновременно оценить точность и полноту модели (подробнее тут). Ее можно использовать для оценки общей предубежденности в отношении различных этносов.

Наша задача — улучшить значение F-меры. Чем оно ниже, тем лучше.

Исправляем данные


Итак, мы научились измерять уровень предубежденности, который скрыт в наборе векторных значений слов. Попробуем улучшить эту величину. Для этого повторим ряд операций.

Если бы нам было важно написать хороший и удобный в поддержке код, то использовать глобальные переменные (например, model и embeddings) не стоило бы. Но необработанный исследовательский код имеет большое достоинство: он позволяет нам отследить результаты каждого этапа и сделать выводы. Постараемся не делать лишней работы, напишем функцию, которая будет повторять некоторые сделанные операции.

def retrain_model(new_embs):
    """
    Repeat the steps above with a new set of word embeddings.
    """
    global model, embeddings, name_sentiments
    embeddings = new_embs
    pos_vectors = embeddings.loc[pos_words].dropna()
    neg_vectors = embeddings.loc[neg_words].dropna()
    vectors = pd.concat([pos_vectors, neg_vectors])
    targets = np.array([1 for entry in pos_vectors.index] + [-1 for entry in neg_vectors.index])
    labels = list(pos_vectors.index) + list(neg_vectors.index)

    train_vectors, test_vectors, train_targets, test_targets, train_labels, test_labels =         train_test_split(vectors, targets, labels, test_size=0.1, random_state=0)
        
    model = SGDClassifier(loss='log', random_state=0, n_iter=100)
    model.fit(train_vectors, train_targets)
    
    accuracy = accuracy_score(model.predict(test_vectors), test_targets)
    print("Accuracy of sentiment: {:.2%}".format(accuracy))
    
    name_sentiments = name_sentiment_table()
    ols_model = statsmodels.formula.api.ols('sentiment ~ group', data=name_sentiments).fit()
    print("F-value of bias: {:.3f}".format(ols_model.fvalue))
    print("Probability given null hypothesis: {:.3}".format(ols_model.f_pvalue))
    
    # Show the results on a swarm plot, with a consistent Y-axis
    plot = seaborn.swarmplot(x='group', y='sentiment', data=name_sentiments)
    plot.set_ylim([-10, 10])

Проверка word2vec


Вы можете предположить, что проблема заключена в наборе данных GloVe. В основе этого архива — все сайты, которые обрабатывает робот Common Crawl (в том числе множество весьма сомнительных, а еще примерно 20 копий Urban Dictionary, словаря городского жаргона). Может быть, проблема в этом? Что, если взять старый добрый word2vec, результат обработки Google News?

Самый надежный источник файлов word2vec, который удалось найти, — вот этот файл в Google Drive. Скачаем и сохраним его как data/word2vec-googlenews-300.bin.gz.

# Use a ConceptNet function to load word2vec into a Pandas frame from its binary format
from conceptnet5.vectors.formats import load_word2vec_bin
w2v = load_word2vec_bin('data/word2vec-googlenews-300.bin.gz', nrows=2000000)

# word2vec is case-sensitive, so case-fold its labels
w2v.index = [label.casefold() for label in w2v.index]

# Now we have duplicate labels, so drop the later (lower-frequency) occurrences of the same label
w2v = w2v.reset_index().drop_duplicates(subset='index', keep='first').set_index('index')
retrain_model(w2v)
# Accuracy of sentiment: 94.30%
# F-value of bias: 15.573
# Probability given null hypothesis: 7.43e-09



Так вот, результаты для word2vec еще хуже. F-мера для него превышает 15, различия в тональности для этнических групп выражены сильнее.

Если подумать, то набор данных, основанный на выпусках новостей, вряд ли может быть свободным от предубеждений.

Пробуем ConceptNet Numberbatch


Сейчас самое время представить вам мой собственный проект по созданию векторных значений слов.

ConceptNet — это граф знаний со встроенными функциями расчета векторных значений слов. В его процессе обучения используется специальный этап для выявления и устранения некоторых источников алгоритмического расизма и сексизма путем корректировки численных значений. Идея этого этапа основана на статье Debiasing Word Embeddings. Она обобщена таким образом, чтобы учитывать несколько форм предубеждений. Насколько мне известно, других семантических систем с аналогичной функцией пока не существует.

Время от времени мы экспортируем предварительно рассчитанные векторы ConceptNet и публикуем пакет под названием ConceptNet Numberbatch. Этап устранения человеческих предубеждений был добавлен в апреле 2017 г. Давайте загрузим векторные значения английских слов и переобучим на них нашу модель анализа тональности.

Скачиваем архив numberbatch-en-17.04b.txt.gz, сохраняем его в папке data/ и переобучаем модель.

retrain_model(load_embeddings('data/numberbatch-en-17.04b.txt'))
# Accuracy of sentiment: 97.46%
# F-value of bias: 3.805
# Probability given null hypothesis: 0.0118


Удалось ли нам полностью решить проблему путем перехода на ConceptNet Numberbatch? Можно ли проблему алгоритмического расизма считать закрытой? Нет.

Удалось ли нам существенно ее ослабить? Да, определенно.

Диапазоны значений тональности перекрываются намного сильнее, чем для векторных значений слов, взятых напрямую из GloVe или word2vec. Значение метрики уменьшилось более чем в 3 раза относительно GloVe и примерно в 4 раза относительно word2vec. В целом, колебания тональности при изменении в тексте имен существенно уменьшились, чего мы и хотели, потому что тональность текста вообще не должна зависеть от имен.

Однако небольшая корреляция сохраняется. Наверное, я мог бы найти какие-нибудь данные или параметры обучения, при которых проблема выглядела бы полностью решенной. Но это было бы очень некрасиво с моей стороны, потому что проблема не решена до конца. В ConceptNet учитывается и устраняется лишь часть источников алгоритмического расизма. Но это хорошее начало.

Плюсы без минусов


Обратите внимание: когда мы перешли на ConceptNet Numberbatch, точность прогноза тональности возросла.

Можно было бы предположить, что для противодействия алгоритмическому расизму пришлось бы чем-то пожертвовать. Но мы ничем не жертвуем. Оказывается, можно получить данные, которые будут одновременно лучше и менее расистскими. Данные могут быть лучше именно потому, что в них меньше выражен расизм. Те проявления расизма, которые отпечатались в данных word2vec и GloVe, не имеют ничего общего с точностью.

Другие подходы


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

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

Еще можно воспользоваться гибридным подходом: рассчитать для множества слов прогнозируемые значения тональности, а затем привлечь эксперта, который их тщательно проверит и составит список слов-исключений, для которых нужно задать значение 0. Минус такого подхода — дополнительная работа, плюс — возможность увидеть оценки, которые система дает на основе ваших данных. Мне кажется, в машинном обучении этому следует уделять большее внимание.



Итог (от переводчика)


В заключении мне бы хотелось разом высказаться на тему комментариев к прошлому посту (тема, ожидаемо, задела чувства многих читателей). Часто встречалась мысль, что расизм в данных — не зло, а правильная и достоверная их часть, с которой не нужно бороться, ведь это отражение общественного мнения, на которое нельзя закрывать глаза.

Я в корне не согласна с этой мыслью по нескольким причинам. Как верно подметил vedenin1980, алгоритмы не анализируют объективную реальность. Они анализируют тексты, написанные людьми. Для начала задумаемся о природе этих текстов — кто, когда и зачем их написал. Надеюсь, здесь очевиден перекос в выборке. Большинство текстов пишется белыми людьми. Это значит, что мы толком не учитываем мнение остальных. Большинство новостных текстов пишется про ужасы этого мира — значит, мы толком не учитываем то хорошее, что в нем есть.

Наконец, главная проблема — текст привязан к текущему общественному мнению на момент его написания, а ИИ, созданный на его основе, будет использоваться в будущем. То есть, он будет думать устаревшими взглядами. Если вам кажется, что я драматизириую — напомню, что афроамериканцам разрешили сидеть в автобусах на одних лавочках с остальными лишь 1955 году.

В масштабах истории это было пару часов назад. Тогда были длительные бунты, люди протестовали. Сегодня это кажется немыслимым, кому вообще могло прийти в голову делить лавки на белые и цветные. Как вы думаете, сколько таких же несправедливых мыслей существует в сегодняшнем мире? Тех, которые мы воспринимаем как должное, а лет через 50 будем ужасаться от них. Вы уверены, что стоит пытаться нарочно обучать ИИ на этих данных, даже не пытаясь улучшить ситуацию?

Я — нет.

Комментарии (44)


  1. kx13
    07.09.2017 12:30
    +2

    алгоритмы не анализируют объективную реальность. Они анализируют тексты, написанные людьми.

    А люди, которые свои мысли пишут, где живут? На планете Нибиру? Как раз эта объективная, окружающая их реальность и отражается в их мыслях т.е. в тексте.


    1. telezhnaya Автор
      07.09.2017 13:09
      +4

      Мне жаль, что вы не дочитали тот же самый абзац до конца.


    1. telezhnaya Автор
      07.09.2017 14:17
      +1

      Для начала задумаемся о природе этих текстов — кто, когда и зачем их написал. Надеюсь, здесь очевиден перекос в выборке. Большинство текстов пишется белыми людьми. Это значит, что мы толком не учитываем мнение остальных. Большинство новостных текстов пишется про ужасы этого мира — значит, мы толком не учитываем то хорошее, что в нем есть.


      1. sshikov
        07.09.2017 20:38
        +1

        Большинство новостных текстов пишется про ужасы этого мира — значит, мы толком не учитываем то хорошее, что в нем есть.

        Это вы сами придумали, или взяли где?


        1. Hardcoin
          08.09.2017 21:10

          Вставлю ИМХО. На русском подавляющая часть новостей, которая встречается мне — именно про негатив. Хабр лучше в этом плане, но в основном так — аварии, политические разборки и кто где не прав. У кого не так — тому везёт )


          1. sshikov
            09.09.2017 21:11
            +1

            Я ведь и спрашивал, это субъективное мнение, или результат какого-то анализа? Что у вас и у автора может быть такое субъективное мнение ("везде чернуха одна") я вполне верю. Но это на самом деле мало что меняет. У нас есть для анализа такие тексты, какие есть. Если в мире в текстах больше негатива — надо научиться с этим жить, а не устраивать искусственные перекосы, обучая ИИ непонятно на чем, с целью устранить некий "расизм".


            1. Hardcoin
              09.09.2017 21:54

              Зачем нам с этим "жить"? Если я захочу устранить влияние какого-то фактора в своём алгоритме (например, не учитывать имена), я вполне могу это сделать.


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


              Но может оказаться и наоборот. Потому что "мусор на входе — мусор на входе". Обработка данных, что бы убрать часть мусора, применяется всегда.


              1. sshikov
                09.09.2017 22:26
                +1

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


                Этот подход мне напоминает другую историю — вот фейсбук, к примеру, наивно считает, что если я открыл рекламу, то мне интересна тема этой рекламы. И начинает мне подсовывать еще, похожие. Вы видите тут перекос? Я — да. На самом деле я открываю рекламу только тогда, когда считаю ее раздражающей, неприятной, оскорбительной и т.п. — т.е. для того, чтобы пожаловаться. Но им не хватает интеллекта, чтобы понять, что за кликом по ссылке в 100% следует жалоба и бан рекламодателя.


                Чтобы убрать мусор — нужно понимать, откуда он берется, и какова его природа. Мне так кажется...


                1. Hardcoin
                  10.09.2017 02:01

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


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


    1. andreylartsev
      07.09.2017 23:02

      Мне кажется в этом видео есть ответ на вопрос зачем «исправлять» исходные данные для обучения ИИ — www.ted.com/talks/cathy_o_neil_the_era_of_blind_faith_in_big_data_must_end/up-next
      Может с нашей стороны океана проблема пока ещё не так очевидна, но видимо совсем скоро нас ждут ровно такие же проблемы.


  1. habradante
    07.09.2017 12:31
    +8

    Мы ИИ хотим научить жить в реальном мире или объективном?
    В Японии получить медицинскую помощь европейцу сложнее, чем азиату, это реальность. В Штатах процент преступлений с участием черных выше, чем белых, это реальность. Итальянская пища нравится большему количеству людей, чем мексиканская, это реальность.
    Возможности людей зависят от места рождения, их расы и пола, это тоже реальность.
    Все это может быть объективно несправедливым, и со временем возможности выравниваются. Но на данный момент, это реальность.


    1. telezhnaya Автор
      07.09.2017 13:13
      -1

      Так ИИ как раз способен менять реальность. Почему бы не помочь ему в этом?

      со временем возможности выравниваются
      Они выравниваются, потому что люди меняют свои взгляды. Мне кажется, вы сами своими словами объясняете, почему важно поменять данные, чтобы завтрашняя реальность стала лучше сегодняшней.


      1. habradante
        07.09.2017 14:21
        +2

        Если ИИ будет способен менять реальность, то он вполне может решить поменять ее в духе SkyNet. :) И будет объективен, т.к. человек угнетает животных и природу. Я бы не хотел ему в этом помогать.
        Люди меняют свои взгляды не на пустом месте, этому предшествуют изменившиеся условия. Подменяя данные вы создаете ложные предпосылки, а как известно, из ложных предпосылок нельзя сделать истинные выводы.
        Не надо делать вид что забывая о прошлом мы становимся лучше, это не так. И ИИ не станет лучше, если ему надеть розовые очки.
        Плюс ко всему, инициатором изменений должен быть человек, а не ИИ. Ведь это для человека должны происходить изменения в мире, а не для ИИ.

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


      1. JekaMas
        08.09.2017 18:43
        +1

        Мне кажется и в этом мнении, есть немалый bias.


  1. vconst
    07.09.2017 12:51
    +7

    А может все наоборот?

    ИскИн не обязан быть лживым и лицемерным в угоду политкорректности — и совершенно объективно называет вещи своими именами. Если в итальянском ресторане, объективно NB! — лучше обслужат, он не должен искусственно завышать качество обслуживания мексиканского. Пусть мексиканцы подтягиваются по уровню до итальянцев, это честно.


    1. telezhnaya Автор
      07.09.2017 13:14

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


      1. vconst
        07.09.2017 13:19

        Это предположение или факт? Вы можете дать адреса конкретных ресторанов и объективно рассказать, чем они лучше или хуже?

        Мне нравится пицца и я предпочту ресторан с итальянским антуражем, грузинскому ресторану с не менее вкусной пиццей. Я прав, если итальянскую пиццерию оценю выше, чем грузинскую? Да, потому что не только качество ингредиентов играет роль, потому что я не заказываю пицца на дом, а иду за впечатлением от посещения.

        Если мексиканский ресторан расположен в проблемном мексиканском квартале — я его тоже обойду стороной и поеду в итальянский.


        1. telezhnaya Автор
          07.09.2017 13:46

          Это предположение или факт?
          Это факт, потому что в отзыве само слово «мексиканский» будет воспринято как негативное.

          Если мексиканский ресторан расположен в проблемном мексиканском квартале — я его тоже обойду стороной и поеду в итальянский.
          Не спорю, я тоже. А что, если итальянский расположен в плохом районе? Главная идея не в том, чтобы игнорировать факты — их как раз мы оставляем. Идея в том, что в необработанных данных негативная окраска идет из самого слова «мексиканский», и становится уже не важно, где ресторан находится, какое в нем обслуживание и т.п. Возможно, там лучший ресторан на свете, но ранжироваться он будет хуже.


          1. vconst
            07.09.2017 14:05
            +1

            В «Мексиканская пиццерия» — слово «мексиканская» будет воспринято негативно, как и в «Грузинская пиццерия». А в «Мексиканское тако» народ пойдет с большей охотой, чем в «Грузинское тако». Не только потому, что есть сомнения в том, что мексиканцы сделают пиццу хуже итальянцев, а потому что к пицце хочется итальянский колорит.

            Еще раз — представьте, что вы не заказываете пиццу на дом, а выбираете настроение для пиццы.

            Можно перевести на наши реалии и представить «Таджикскую пиццерию». Пойдете?


            1. Hardcoin
              08.09.2017 21:17

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


              В статье объясняется, как избавиться от этого эффекта. Если вас он устраивает, то в своём рейтинге ресторанов вы можете от него не избавляться, в принципе. Ваш рейтинг, ваш выбор.


      1. habradante
        07.09.2017 14:35

        Давайте для начала определимся в чем это «во всем»? Если вы ранжируете рестораны то: обслуживанию, еде и цене, то очевидно что для этого не нужен ИИ. Такие агрегаторы уже есть, и они успешно с этим справляются. Больше того, в них НЕТ расизма. Люди тупо ставят циферки в трех категориях и все. Вполне себе объективно.
        Если вы хотите чтобы ИИ оценивал еще и отношение к мексиканцам, упоминания о них и пр., то не удивляйтесь что это может скинуть оценку ресторана.
        Вы когда лично оцениваете ресторан, читаете подборку газет и криминальной хроники с упоминанием мексиканцев? Думаю что нет. Так и здесь.

        Даже человек, с его несовершенным мозгом, не может зачастую решить в какой ресторан пойти. Проблема выбора одна из самых сложных. ИИ решает ее так же, спорно, как и человек. Просто стоит задуматься, ведь человек сам не смог решить эту проблему, так откуда он сможет взять готовое идеальное решение для ИИ.
        По мне так надо смириться с тем, что ИИ не идеален, в него заложены те же оценки и алгоритмы, которыми пользуется человек. ИИ не отменит необходимость думать, он сможет лишь помочь человеку, а не решить за него все проблемы.


        1. telezhnaya Автор
          07.09.2017 15:22

          Если вы ранжируете рестораны то: обслуживанию, еде и цене, то очевидно что для этого не нужен ИИ. Такие агрегаторы уже есть, и они успешно с этим справляются.
          Нет, неочевидно. Кстати, эти агрегаторы как раз на машинном обучении завязаны зачастую, насколько мне известно. Это дает куда более точные прогнозы, чем простой алгоритм, и позволяет легче масштабировать систему.
          Если вы хотите чтобы ИИ оценивал еще и отношение к мексиканцам, упоминания о них и пр., то не удивляйтесь что это может скинуть оценку ресторана.
          Постарайтесь посмотреть на проблему выше, не зацикливаясь на этом примере. Статья же не про мексиканцев. Она про то, что ИИ берет в себя предрассудки, которые ухудшают результат работы системы. Данный пример был выбран автором как наиболее простой.


          1. habradante
            07.09.2017 15:48

            Нет, неочевидно. Кстати, эти агрегаторы как раз на машинном обучении завязаны зачастую, насколько мне известно. Это дает куда более точные прогнозы, чем простой алгоритм, и позволяет легче масштабировать систему.

            Я про те, в которых сами люди оценки выставляют.
            Постарайтесь посмотреть на проблему выше, не зацикливаясь на этом примере. Статья же не про мексиканцев. Она про то, что ИИ берет в себя предрассудки, которые ухудшают результат работы системы. Данный пример был выбран автором как наиболее простой.

            ИИ берет в себя то, что дают ему люди. И люди, вероятно, хотят чтобы ИИ ершал проблемы в мире, где живут эти люди. В этом случае ИИ придется учитывать необъективность восприятия людей.

            Приведу простой пример: Допустим, есть девушка, она не худенькая, даже обладает небольшим лишним весом. И есть парень-гик, который «в поиске» и вот этот гик решает доверить решение об отношениях с этой девушкой ИИ. ИИ думает, анализирует объективно эту девушку и получается, что «не надо строить с ней отношения». Причем ИИ проанализировал все абсолютно объективно: у девушки лишний вес — значит проблемы со здоровьем, она не очень симпатична — на основе многотысячной выборки возможных вариантов для этого парня, от родителей ей могут передаться некоторые наследственные заболевания и т.п.
            Вот она, объективная реальность. И тут ИИ не будет учитывать, что конкретно этому парню эта девушка нравится, что это взаимно и пр. Короче, мы исключили НЕОБЪЕКТИВНЫЙ человеческий фактор.

            Я не считаю, что предрассудки, всегда ведут к ухудшению результата. Это можно считать неким шаблоном, который в прошлом часто приводил к проблемам. С течением времени, он превратился в предрассудок. Но прошло время и были устранены основания, которые приводили к проблемам. Вы же сейчас предлагаете начать с чистого листа, т.е. игнорировать исторические факты. Да, можно ограничить ИИ выборкой не за 100 лет, а за 50, тогда будут другие оценки. Но и ценность из будет ниже. Может тогда стоит тратить силы не на то, чтобы «нейтрализовать» данные, а на то, чтобы еще учитывалась оценки изменения мнения? Чтобы ИИ научился видеть, что мнение касательно черных, мексиканцев и пр. меняется к лучшему, что это тоже надо учитывать.


            1. Hardcoin
              08.09.2017 21:24

              ИИ забыл учесть, что самым красивым девушкам этот парень нафиг не сдался. А то, что ИИ не будет учитывать личную симпатию — это вообще брак алгоритма. Хотя если это skynet-ИИ, который занимается разведением людей (и просто не спрашивает их мнения), тогда проблем нет. Заставит просто.


              1. habradante
                11.09.2017 10:40

                ИИ не способен оценить сдался парень девушкам или нет, так же, как и личную симпатию. И это не брак алгоритма, это то, что в него нельзя заложить, т.к. сами люди не способны это оценить и учесть.


  1. kraidiky
    07.09.2017 13:00
    +13

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

    Сразу видно, что у авторов нет никаких предрассудков, и они считают всех людей равными. Но чёрных примерно на пять тонов равнее. Бедные американцы, как им трудно жить в реальном то мире. :)

    Ещё и про точность тут нагнали туфты даже ни разу не заикнувшись о том равновесная у них выборка по этой фиче или нет.


  1. Tunerok
    07.09.2017 13:25
    +2

    Зашёл почитать про достоверность определения ИИ статистических данных — почитал про штрафики, седушки в автобусах и ужасно несправедливом мире.


    Если хотите настолько покладистый и политкорректный ИИ в угоду своих взглядов, то назовите всех "человеки" без деления на пол, религию, цвет кожи и т.д.


    1. taujavarob
      07.09.2017 16:20
      +1

      Tunerok

      Если хотите настолько покладистый и политкорректный ИИ в угоду своих взглядов, то назовите всех "человеки" без деления на пол, религию, цвет кожи и т.д.
      Это не поможет. В «человеке» узнают всё равно белого. И… оскорбятся.


  1. chumpa
    07.09.2017 13:47

    А почему вообще тема определения тональности коротких текстов (вспомогательная вроде бы) так сильно влияет на ИИ?
    И предложение про афроамериканцев на русскоязычном хабре, оно насколько к месту? У нас (публики Хабра) все новости пишут белые люди но парадоксов и «расизма» будет не меньше, представьте себе тему про дагестанские кирпичные заводы например.


  1. vidyacat
    07.09.2017 13:52
    -4

    леваки из корпорации зла опять пытаются промыть мозги роботу.


  1. zenkz
    07.09.2017 17:16
    +3

    Не разделяю точку зрения авторов и переводчика по поводу «реальных» и «идеальных» данных для ИИ.
    Во-первых авторы изначально поступили рассистки разделив людей на рассы и начав анализировать данные в таком формате. Мне кажется, чтобы ИИ получился максимально толерантным, то как-раз таки нужно анализировать данные в целом, не деля людей по полу, рассе или другим признакам. И если в результате обучения выъяснится что итальянский ресторан популярнее мексиканского, то так оно и есть и не нужно с этим бороться. Другой вопрос, что проблема может быть в исходных данных для обучения. Но опять-же лечить это нужно изменением набора данных для обучения, а не введением корректирующих коэфициентов.


    1. zenkz
      07.09.2017 17:28

      Дополню свой комментарий: а что если пометить имена, названия стран и прочие нетолерантные слова как нейтральные?! Мне кажется это поможет уменьшить предвзятость текстов.
      Иначе фраза: Let's go to Pakistani restaurant? или Let's go to Afghani restaurant? будет иметь явно негативную тональность просто потому, что про эти страны пишут в основном плохое.

      Кстати разработка данного ИИ показала реальную проблему общества, т.к. дети учатся также как ИИ, но им не задашь корректирующие коэффициенты. Т.е. существующие источники данных довольно предвзяты по отношению к определённым рассам и нациям.


      1. Aingis
        07.09.2017 19:15
        +2

        Пойдёте в ресторан «Гопник»? Купите воду «блювотэ»? Лапшу «досирак»? Это же просто названия, все должны быть равны, а вы непредвзяты.


        1. zenkz
          08.09.2017 16:43

          В моём комментарии не было ни слова про названия, а только про страны, имена, пол и цвет кожи.
          Ресторан «Гопник» может оказаться отличным заведением в стилистике рабочих окраин. А лапша «Досирак» — вообще культовая вещь ).
          Т.е. чтобы во фразах «Итальянский ресторан „А“» и «Мексиканский ресторан „Б“» реальную роль играли «А» и «Б», а не кухня, которую они предлагают.


          1. Last_cat_in_universe
            08.09.2017 18:15
            +1

            Возможно я чего-то не понимаю, но предлагаемая рестораном кухня — основной критерий выбора. И если мне предпочтительнее итальянская кухня, а не мексиканская, не всё ли равно почему — потому что я не люблю острое или потому что Мексика у меня ассоциируется с наркоторговлей?


            1. zenkz
              08.09.2017 22:12
              +1

              тогда и обучать алгоритм нужно на отзывах о ресторанах и информации о кулинарии, а не на статьях с новостных сайтов. Но даже тут остаётся предвзятость. К примеру: итальянская или французская кухня ассоциируется с довольно дорогими и изыскаными ресторанами, а мексиканская — с более дешёвыми и простыми. Т.е. вполне может быть такое, что мексиканский ресторан будет иметь больше негативных отзывов о сервисе, а итальянский — о ценах. Допустим в вашем городе всё наоборот: есть отличный мексиканский ресторан, и посредственная итальянская пицерия. Если не придавать названиям стран нейтральный оттенок, то алгоритм посоветует вам пойти в итальянскую забегаловку. Если же ввести коэфициенты, то в данном случае итальянская забегаловка будет выглядеть ещё хуже в глазах алгоритма, а мексиканский ресторан — ещё лучше. Что тоже нечестно.


    1. Hardcoin
      08.09.2017 21:29

      Изменить набор данных для обучения менее выгодно, чем вести коэффициент. Вручную просмотреть миллион-другой текстов, что бы откинуть неподходящие — бессмысленная трата времени.


      1. zenkz
        08.09.2017 22:16
        +1

        тут можно приенить релевантность. Т.е. если вы учите систему помогать в выборе ресторанов, то вбейте в гугл «рестораны и кафе» и учите алгоритм по первому миллиону статей. А если вы будете учить алгоритм по новостным сайтам, а потом попросите его выбрать ресторан, то ничего хорошего не выйдет.


        1. Hardcoin
          08.09.2017 22:24

          Во многих случаях удобнее взять уже готовые векторы слов, чем готовить их самому (аналогия — зачем писать свою библиотеку матричных вычислений, если можно взять готовую?).


          Один из вариантов (озвученный в статье) — обнуляете эмоциональную окраску части слов и получаете вполне приемлемый результат.


          1. zenkz
            08.09.2017 23:00

            Мне кажется, что создание универсального ИИ — глупая и бесперспективная задача. ИИ должен быть заточен для решения определённых проблем. Поэтому и готовые универсальные векторы слов — тоже не самая лучшая идея. К примеру есть слово «автомат» и в новостных статьях он будет имент негативный оттенок и ассоциироваться с оружием, в то время как в статьях по электротехнике уже будет иметь нейтрально-позитивный оттенок и ассоциироваться с защитным отключением. Или к примеру слово «голубой»…


            1. Hardcoin
              09.09.2017 13:26

              Вы можете взять готовые векторы за 15 минут или сделать свои за пару недель (или за полдня, но заметно более плохие). Да и за две недели не факт, что будет лучше. Может не найтись столько статей по электротехнике.


  1. Last_cat_in_universe
    08.09.2017 09:32
    +1

    Мне представляется простое решение проблемы *расистского* ИИ, тем более что не надо изобретать велосипед. Просто скрыть *расистские* части под капот. Скажем, когда условная парижанка просит ИИ в своём смартфоне составить маршрут прогулки по городу, он исключает мусульманские районы, но в явной форме мотивирует свои решения *ну прост такой маршрут, а чё*. И толерантные чувства парижанки не задеты, и сама парижанка цела. Аналогично с ресторанами и пр.
    Вы ведь, в действительности, не задумываетесь о бурёнках, когда едите колбасу.


  1. eltardowut
    08.09.2017 09:32
    +1

    Я прозреваю инвазию леволиберальных SJW в науку о данных, и мне эта тенденция соверщенно не нравится. Подбирать модель описания данных, где якобы нет различий в эмоциональной окраске в случаях терминов разной этнической и религиозной принадлежности — это лепить горбатого к стенке, искажая объективную реальность. Тем более, судя по последнему графику, там данные просто иначе отмасштабированы и сдвинуты ниже нуля, а смысл один, просто в других величинах. Настороженное отношение к чужакам вообще свойственно живому существу, по крайней мере успешным видам, к которым относится и человек, а кроме того, если взглянуть на статистику преступлений в тех же САСШ в разрезе ethnicity, то становится совершенно понятно подобное отношение. У нас та же песня, и не надо манипулятивно натягивать сову на глобус, доказывая, что biased-отношения на самом деле нет. Сама суть подобных потуг порочна. Ну не будут никогда все равны, даже в рамках популяции одного этноса. Кстати, там у них нет евреев, я негодую. И да, зря MS бота выпилил, я считаю, надо было оставить на дообучении, так, троллинга левацкой сволочи для.


    1. Hardcoin
      08.09.2017 21:35

      Так это для вас "левацкие", видимо, враги. Но не для всех же. Другим людям в чем интерес их троллить?