“Предсказательный” тип данных
Dec. 5th, 2016 11:39 pmУ меня возник любопытный вопрос математического свойства. Сначала несколько примеров:
1. Пусть у нас есть поле ввода, в которое можно написать несколько тегов – то-есть на выходе массив строк. Примерно так на ютубе теги заколачиваются. При установке фокуса в это поле под ним раскрывается выпадайка со списком – и можно выбрать тег оттуда. Но – и это важно – можно вписать и тег, которого в списке нет.
2. Пусть у нас есть поле ввода, в котором можно наколотить многострочный текст. На выходе – массив строк. При наколачивании текста у нас появляются всплывайки с автокомплитом, причём можно и из всплывайки выбрать вариант, и своё написать (чего во всплывайке нет).
3. Пусть у нас есть поле ввода для суммы, скажем, пожертвования на поиски Атлантиды. В рублях. Туда можно вписать любое положительное число с двумя знаками после запятой – но если введена сумма меньше 100 рублей, под полем появляется надпись “Ваш платёж будет в нижнем 1% самых скромных пожертвований”.
Во всех трёх примерах у нас тип данных на первый взгляд определён вполне точно. Однако все вот эти выпадайки и подписи существенно увеличивают вероятность появления на выходе заранее известных результатов.
То-есть, если выпадайки-всплывайки выкинуть, мы получим в каком-то смысле другой тип данных. И с инженерной, и с интерфейсной, да и просто с общебытовой точки зрения это так.
Только совершенно непонятно, как эту разницу выразить математически. Что это вообще такое?
no subject
Date: 2016-12-05 09:31 pm (UTC)С точки зрения типов, можно представить, что контрол без подсказок имеет сигнатуру IO -> list[T], а контрол с подсказками IO * TState -> list[T], либо IO * TState -> list[T] * TState, если подсказки зависят от ввода.
no subject
Date: 2016-12-05 09:40 pm (UTC)T1 = [],
T2 = [Value1],
T3 = [Value1|Value2],
etc.
Выпадайки выдают подсказки типа Tn, если значение будет добавлено то образуется тип Tn+1.
no subject
Date: 2016-12-05 10:16 pm (UTC)1. Effect of marketing.
2. Amplification.
3. Inertia.
Автокомплит это своего рода маркетинг, реклама. У рекламы есть параметры эффективности, оценка её влияния на результат.
Когда автокомплит целиком состоит тот, что пользователи вводили раньше, то популярные вещи становятся ещё более популярными. Это амплификация эффекта популярности. Вот, скажем, почему гэнгэм стайл уже набрал 2.7 миллиарда просмотров? https://www.youtube.com/watch?v=9bZkp7q19f0
Потому что это *уже* топовая вещь, привлекательная отчасти самим фактом своей топовости.
Инерция: сложнее быть непохожим на других, но *легче быть похожим на других*. Общественный эффект из прошлого влияет на эффект тебя в настоящем так, что твоё поведение тяготеет к усреднённому, этим ещё сильнее закрепляя и выделяя усреднённое в новую устойчивую позицию.
no subject
Date: 2016-12-05 10:18 pm (UTC)no subject
Date: 2016-12-05 11:12 pm (UTC)no subject
Date: 2016-12-05 11:12 pm (UTC)Первый пример приведён, чтобы исключить такой подход. Вообще говоря, не обязательно зависят.
no subject
Date: 2016-12-05 11:28 pm (UTC)no subject
Date: 2016-12-05 11:30 pm (UTC)С тз физики эта конструкция похожа на сигнал плюс шум, то-есть как будто в некотором смысле спектры сигнала и шума складываются.
no subject
Date: 2016-12-05 11:47 pm (UTC)А что делать с общебытовым сдвигом вероятности? Оно из такого представления никак не выводится.
no subject
Date: 2016-12-06 02:09 am (UTC)Если надо учесть вероятности, надо перейти к другой модели. Я не специалист, но опять же можно представить. Допустим, мы не знаем как происходит общебытовый сдвиг, не можем его выразить. Можно дополнить список элементом "иное" и принять {список; иное} за независимую случайную величину. Ручной ввод пользователя принять за другую независимую случайную величину. С остальными величинами, если они есть, поступить так же. А потом воспользоваться методами регрессионного анализа.
Я к тому, что даже развитые системы типов не cмогут представить желаемое по определению типов.
no subject
Date: 2016-12-06 03:04 am (UTC)Представь себе падение снега. Снег это входной сигнал: пользователь набирает свой текст, и он каким-то слоем ложится на поверхность, с небольшим количетсвом случаеных неровностей. Если снег падает неравномерно, то там, где его больше падало, больше скопится.
Теперь представь себе, что рельеф поверхности - это сложный узор, по которому снег скатывается. Не каждая снежинка, конечно, но "в среднем".
Получается, что тот же самый снег, наложенный на структуру, будет давать другой узор. Отличие между аналогией с сигналом и шумом и вот этой: здесь нельзя сказать, что снег и структура это вещи одной природы. Это разной природы вещи, хоть они и взаимосвязаны.
В твоих примерах может показаться, что структура адаптивна, но ведь можно избавиться от адаптивности, если представить её себе как многомерную штуку, у которой эффект адаптивности виден только в рисовании серии проекций.
Ещё мысль: мне кажется, хорошо бы сформулировать какую-то интересную задачу, связанную с *этим* (как с типом данных), и это может помочь подобрать/осмыслить/описать тип данных.
Кстати, обычные бумажные *формы* - это ещё один пример такой структуры. Результаты заполнения формы - это далеко не случайные наборы слов, даже если человек хотел бы выразить мысли по той же теме. Они куда чаще из выбранного алфавита или списка, и в заданной последовательности, хотя люди могут и вписывать своё, и зачёркивать, и дописывать случайные комментарии.
no subject
Date: 2016-12-06 09:17 am (UTC)> если представить её себе как многомерную штуку
Спектр – вполне себе многомерная штука. Я примерно в том смысле имел в виду, что спектр образует ортонормированный базис.
> здесь нельзя сказать, что снег и структура это вещи одной природы
Зато спектры у них – одной природы. А раз спектры по своей природе аддитивны – почему бы и нет?
Бумажная форма – это в некотором смысле фильтр (спектр со знаком минус), он из белого шума человеческого сознания выделяет только нужные слова ))
no subject
Date: 2016-12-06 09:19 am (UTC)Я как раз пытаюсь понять, что это могла бы быть за модель. См комменты ниже про спектр.
no subject
Date: 2016-12-06 05:10 pm (UTC)Я подумал денёк и надумал такие задачи:
1. Детектирование ботов (и вообще обнаружение аномалий в данных, корректных с тз «машинной» типизации)
2. Автоматическая редактура стиля речи
3. Выявление людей, склонных к творчеству (то-есть, вычисление какой-то метрики)
4. «Восстановление автомобиля по отпечатку покрышки» (© Питер Уоттс) – в широком смысле.