Могут ли теги победить рубрики? Иерархии тегов

в 12:18, , рубрики: иерархии, интерфейсы, математика, теги, ярлыки

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

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

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

Почему Теги не стали великим откровением и могильщиком рубрик?

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

2. Аналогично, контент расположенный в рубрике, скорее всего находится там по праву, а вот теги которыми он снабжен, это просто субъективное мнение того кто ставил метки.

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

4. В интернет магазинах и других системах, где классификация рулит — рубрикация это основа навигации.

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

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

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

Например, если мы используем тег как навигатор, но навигатор в контексте какого то сообщения, то это одно:
Я читаю очередную новость про мобильник и вижу там тег «покрытие». При переходе по этому тегу, на самом деле я должен переходить по связке «мобильная связь» + «покрытие».
Если же текст был про разведение особоудойных коров, то тег «покрытие» имел бы другой смысл «коровы»+ «покрытие».
Если я встретился с тегом без контекста, например, просто увидел их в облаке тегов сайта, то как отличить «покрытие А» от «покрытия Б»?

трахать или звонить

Позволю себе крамольную мысль – однозначная трактовка смыслового контекста тега возможна только в том случае, если нам известна история интересов читателя (поведенческий анализ?). То есть если наш читатель обычно копается в текстах категории «сети», «мобильные сети» и т.п., то можно понять что он подразумевает под тегом «покрытие». Если же мы НЕ располагаем такой информацией, то все как обычно…

Что делать?

С точки зрения развития технологий тегирования это означает вот что:

Использование тегов для поиска

1. В сомнительных случаях лучше использовать не один тег, а совокупность тегов для получения выборки сообщений.
2. Эта совокупность может быть составлена из Основного тега (того который заказан в качестве критерия выбора постов) и дополнительных, то есть, тех ярлыков в которых пользователь «часто пасется».
3. Дополнительные теги, естественно, должны часто встречаться с Основным, то есть быть «связанными» — сильно коррелирующими.

Установка тегов

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

Иерархии

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

Иерархии тегов таят огромный потенциал. Это, иерархии естественные, то есть те которые как тропинки протаптываются пользователями, а не прокладываются проектировщиками.

Можно сказать преамбула окончена. Далее следуют вполне конкретные рецепты от нашего математика Сергея Львова. Очень надеюсь, что ему дадут на Хабре голос (popolznev).

Первые шаги к иерархии тегов

Автор: Сергей Львов

1. Чего хотим

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

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

Поскольку ярлыки отвечают за «тематичность» сообщений, наведение порядка в куче ярлыков означает учреждение некой мерки, которая позволила бы сказать, насколько любые два ярлыка тематически близки друг к другу. Эта мерка может
быть устроена как метрика (= расстояние) в математическом смысле слова (то есть для любых двух различных ярлыков расстояние между ними должно быть положительным числом, не зависящим от порядка перечисления ярлыков; расстояние от
ярлыка до самого себя равно нулю). Но нам показалось удобнее сделать мерку наподобие коэффициента корреляции (минимальное значение, для совсем не связанных ярлыков, равно 0, максимальное — 1). К тому же этот коэффициент не обязан быть симметричным: один ярлык ко второму может быть привязан сильнее, чем второй к первому.

2. Элементы и обозначения

Через M обозначается множество всех сообщений, хранящихся в нашей болтотеке: M = {m1,..., mN }. Понятно, что множество M со временем меняется, число сообщений растет, но динамика нас не интересует: мы рассматриваем систему в произвольный фиксированный момент. S — это множество всех тегов-ярлыков, имеющихся на данный момент в системе: S = {s1,..., sNN }. Между множествами M и S определено соответствие (отношение), которое по аналогии с геометрией (многие читатели скажут: с теорией графов! — но придумали-то это геометры) можно назвать инцидентностью: сообщение m и ярлык s инцидентны, если сообщение m помечено ярлыком s.

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

Если s1,..., sr — ярлыки, которыми помечено сообщение m (можно определить теговое множество сообщения m: S(m) = {s1,..., sr}), то определены величины e[s1](m),..., e[sr](m), которые называются (теговыми) значимостями сообщения m. Как именно они вычисляются, сейчас для нас не очень важно, но вычисляться
они должны так, что чем значимее сообщение, тем выше его значимость. Грубо-приблизительно говоря, значимость сообщения — это количество «плюсиков», выставленных сообщению читателями. Особенность нашей системы: плюсик ставится не просто сообщению, а прикрепляется к ярлыку (ярлыкам).

Учитываются генетические связи между самими сообщениями: у каждого сообщения могут быть «потомки» и «предки» («предшественники»). Если сообщение m2 написано в ответ на сообщение m1, то сообщение m1 будем называть непосредственным предком или предшественником для m2, а m2 — непосредственным потомком. Если сообщение m2 написано в ответ на сообщение, являющееся непосредственным потомком сообщения m1, то m2 будем называть прямым потомком (или просто потомком) сообщения m1. Если сообщение m2 написано в ответ на сообщение, являющееся потомком сообщения m1, то m2 будем также называть (прямым) потомком сообщения m1. Аналогично определяются прямые предки (предшественники).

3. Подход № 0: статистика появлений

Система, которую мы строим, ничего не понимает. Для нее ярлык — это просто набор символов (проблему омонимии вынесем за скобки — будем считать, что каким-то образом она решена). Поэтому оценить тематическую близость ярлыков система может только основываясь на частоте их совместных появлений: естественно считать, что если пара ярлыков часто встречается вместе, то они тематически близки. Обозначим через µ[s] количество сообщений, помеченных тегом s, через µ[u] количество сообщений, помеченных тегом u, а через µ[su] количество сообщений, помеченных тегами s и u одновременно.

Первая попытка определить коэффициент тематической связи ярлыков s и u:

ρ0(s, u) = µ[su]/(µ[s] + µ[u]µ[su]). (1)

Величина, которая стоит в знаменателе — это количество сообщений, снабженных хотя бы одним из ярлыков s, u.
Чем плоха формула (1)? Прежде всего, бегать по всем сообщениям — это может оказаться очень долго. Неплохо бы иметь хорошую выборку сообщений, чтобы уменьшить объем работы. Тем более что возможна вот какая ситуация. Понятно,
что сообщения-потомки часто будут наследовать ярлыки своих родителей. И если в системе заведется длинная ветка диалога (на форумах или в том же жж такое случается сплошь и рядом), не интересная уже никому, кроме ее участников, то она может перекосить статистику.

Выход возможен такой. Назовем сообщение узловым, если оно имеет более одного непосредственного потомка. Далее, пусть µj[s], µj[u], µj[su] — количества узловых сообщений, помеченных, соответственно, ярлыком s, ярлыком u, ярлыками s и u одновременно. Теперь поправим формулу (1), учитывая не все вообще сообщения, а
только узловые:

ρ0j(s, u) = µj[su] / (µj[s] + µj[u]µj[su]). (2)

От одного дефекта формулы (1) мы избавились, но это ещё не всё. Нехорошо, что формула (1), а вместе с ней и формула (2) симметричны — ведь на самом деле отношения между ярлыками несимметричны. Но поправить это несложно.

Введем коэффициент зависимости ярлыка s от ярлыка u:

ρ1j(s, u) = µj[su]/µj[s]. (3)

Смысл этой формулы простой: чем чаще ярлык s встречается отдельно от ярлыка u, тем меньше зависимость ярлыка s от ярлыка u.

Заметим, что все три формулы дают единицу, если подставить один и тот же ярлык на место двух аргументов: то есть ρ0(s, s) = ρ0j(s, s) = ρ1j(s, s) = 1. Это естественное условие нормировки.

Пойдем дальше. Во всех формулах, которые мы пока предъявили, ключевым элементом служит частота одновременных появлений двух ярлыков. Однако иногда смысловая близость двух ярлыков может быть причиной как раз их одновременного
непоявления. Например: то, что один человек назовет помидорами, другой поименует томатами — но у одного юзера будет все время встречаться только ярлык «томаты», а у другого — только «помидоры». Если исключить априорное приписывание «томатам» и «помидорам» статуса синонимов (такие приемы мы пока исключаем из рассмотрения), то можно надеяться уловить близость ярлыков, которые часто одновременно появляются вместе с каким-либо третьим ярлыком. Например, если ярлык «гомология» часто ходит вместе с ярлыком «топология», и ярлык «гомотопия» часто ходит вместе с ярлыком «топология», то, даже ничего не зная о гомологиях и гомотопиях, можно предположить, что эти вещи имеют что-то общее, тематически близки. Формульно это можно выразить так (мы по-прежнему учитываем только узловые сообщения):

ρ2j(s, u) = max(v∈S)((µj[sv]j[s])(µj[uv]j[u])). (4)

Здесь мы опять, однако, вернулись к симметрии: по построению, ρ2j(s, u) = ρ2j(u, s). Смысл этой симметрии в том, что мы теперь ищем третий ярлык, к которому были бы близки два сравниваемых ярлыка. Заметим, что всегда ρ2j(s, u) ≥ ρ1j(u, s) (потому что при u = v и при s = v один из сомножителей в скобке правой части формулы (4) равен 1, а в торой совпадает с ρ1j(u, s), то есть значение ρ1j(u, s) заведомо достигается, а максимум может оказаться и побольше).

Можно попробовать еще обогатить формулу:

ρ3j(s, u) = max(max(v∈S)((µj[sv]j[s])(µj[uv]j[u])), max(v∈S)((µj[sv]j[s])(µj[uv]j[v]))). (5)

4. Возможность других подходов

Все формулы, приведенные в предыдущем пункте, реализуют попытки угадать тематическую близость на основе статистики. Что еще можно сделать? Можно попробовать задействовать оснащение нашей избы-обсуждальни: вспомним, что ее главную
изюминку представляет собой система значимостей. Любую из формул (1)–(5) можно модифицировать следующим способом. Числа µ с разными индексами — это количества сообщений, удовлетворяющих тем или иным условиям (каким именно условиям — за это как раз отвечают индексы, приписанные к µ). Количество сообщений — это сумма единичек: за каждое сообщение, удовлетворяющее нужным условиям, в величину µ добавляется не 1. Если добавлять не 1, а величину, зависящую от значимостей сообщения (поскольку во всех наших формулах участвуют как минимум два ярлыка, и значимостей можно задействовать как минимум две), то мы получим более тонкие формулы. Но будет ли эта тонкость к добру — вопрос сложный. Мы не будем сейчас обсуждать это подробно — отложим на потом.

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

Автор: julos

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js