От переводчика.
В статье Брайна Дэвисона «Распознавание непотистских ссылок в Вебе» впервые было озвучено понятие «непотистские ссылки», была дана трактовка термина и предложен алгоритм выявления ссылок такого типа.
Хотя и прошло уже более 7 лет с момента публикации Брайна Дэвисона, данная работа все равно не потеряла своей актуальности, так как озвученный ученым подход применим и современных реалиях.
При переводе было решено не уделять много внимания частностям алгоритма выявления непотистских ссылок, а наоборот, подробнее остановиться на самом методическом подходе.
В завершении предложен вариант использования рассмотренного алгоритма в условиях современного SEO. В любом случае, нам кажется, что оптимизаторам будет полезно ознакомиться с данным переводом.
Тема непота, пожалуй, одна из самых часто обсуждаемых тем до последнего времени. Обсуждали различные стороны работы фильтра, алгоритмы диагностики непота и прочее.
В новом году Яндекс серьезно поменял свой алгоритм и оптимизаторы подрастеряли интерес к непоту, начав вместо этого обсуждать такие параметры как возраст ссылки, качество ссылающегося сайта, «трастовость», т.е. доверие к сайту со стороны Яндекса.
К тому же, пару недель назад Яндекс прикрыл возможность определять непот по всем известному алгоритму – через уникальные ссылки (вопрос, прикрыл ли Яндекс работу самого непот-фильтра, остается открытым). Так вот, в принципе, остался другой алгоритм проверки непота, достаточно простой в понимании и сложный в реализации.
Алгоритм следующий:
• Берем какой-либо продвигаемый запрос, например, «пластиковые окна»
• Добавляем одно слово, которое делает запрос не таким конкурентным; при этом страница остается релевантной новому запросу. Пусть мы нашли кусочек текста «пластиковые окна обеспечивают…» — это как раз нам подойдет
• Фиксируем позицию нашего сайта по этому запросу. Если место за топом – выбранный запрос подойдет
• Покупаем ссылку на площадке, которую хотим проверить
• После индексации ссылки отслеживаем подвижки по запросу и делаем вывод.
Согласитесь, каждый раз так определять непот таким образом очень затратно. А что если один раз собрать информацию о занепоченных страницах, найти у них общие черты и далее по созданному шаблону анализировать новые страницы, с которых хотите купить ссылки. Интересно?
Давайте посмотрим, что предлагают нам американский коллега.
Вступление
Алгоритмы определения популярности сайтов в настоящее время базируются на учете ссылочного окружения сайта. Среди обычных ссылок можно выделить группу непотистских ссылок. Такие ссылки должны быть исключены из расчета популярности страниц, так как они неестественны, и не говорят на самом деле о популярности страниц, на которые ссылаются.
В рассматриваемой работе исследуется вопрос о том, какие ссылки нужно учитывать и также раскрываются предварительные результаты экспериментов работы самообучающегося алгоритма, основанного на созданных вручную наборах данных, который должен распознавать подобные ссылки .
Вводные данные
Обычно популярность сайта рассчитывается в учетом величины его ссылочного окружения (имеются в виду совокупность внутренних и внешних ссылок). Однако такие вычисления не совсем точны по нескольким причинам:
• Наличие на сайтах навигационных меню. На таких сайтах все страницы, на которые ведут ссылки из меню, имеют по n входящих ссылок, где n – количество страниц на сайте. На наш взгляд, учитывать такие ссылки нецелесообразно.
• Ссылочный спам. Спамеры, знакомые с алгоритмом ранжирования поисковых систем, могут специально создавать страницы для простановки с них ссылок на другие страницы, которые они хотят поднять в выдаче.
Второй пример иллюстрирует проблему спама поисковых систем (“search engine spam”), когда отдельные страницы стараются поднять в выдаче искусственными методами. Некоторые поисковые системы, алгоритм ранжирования которых учитывает ссылки, заявляют, что успешно борются со спамом. Однако их алгоритмы диагностики основываются больше на текстовом анализе и становятся уязвимыми, когда дело касается спама ссылочного.
Из «проблемных сайтов» можно привести в пример сайт >doorkey.com. Это сайт, который содержит множество ссылок на другие сайты, но сам не содержит уникального контента.
Также исследователи выделяют отдельные группы сайтов, которые ссылаются на какой-либо один сайт с единственной целью – поднять его в выдаче. (От переводчика: это наши с вами «промосайты» 🙂)
Чтобы бороться с этими проблемами предлагается следующее:
• Вести список страниц, которые злоупотребляют входящими ссылками
• Использовать эвристики*, чтобы исключить из расчета внутренние ссылки (препроцессинг)
• Распознавать случаи, когда результаты поиска были подвержены влиянию спама и соответственно корректировать выдачу (пост-обработка)
От переводчика. *
К сожалению, некоторые простые эвристики можно определять по-разному. Приведем пример.
Ссылки между страницами с одинаковым хостом (identical host-names) можно считать как внутренние, при этом
• не учитывать ссылки между страницами различных пользователей на одном сайте
• учитывать ссылки между различными хостами на одном домене.
Или, например, учет производить наоборот, не принимая во внимание ссылки между различными хостами на одном домене.
Также есть спорные моменты, касающиеся учета ссылок между страницами, расположенными на одном домене, но разных поддоменах.
В любом случае, проблема не столько в том, какие ссылки признавать внутренними, а сколько в том, какие ссылки нужно учитывать при анализе ссылочного окружения, а какие нет. При этом отметим, что технология неучета ссылок может быть реализована двумя способами: ссылки можно просто отбрасывать, а можно учитывать с очень малым весом.
Также возникает вопрос – производить «обработку» ссылок до расчета релевантности (препроцессинг) или после (постпроцессинг). С одной стороны, если мы производим учет непотистских ссылок до расчета ссылочной релевантности, то увеличивается скорость расчета конечной релевантности (т.к. часть ссылок попросту откидывается). С другой стороны, постпроцессинг позволяет сохранить исходный набор данных, к которому можно применять другие алгоритмы обработки, отыскивая среди них самый эффективный.
Предварительные эксперименты
Наборы данных
Мы использовали 2 набора данных. Для первого мы вручную отметили 1536 ссылок (т.е. пар страниц, одна из которых ссылается на другую), специально выбранных таким образом, чтобы в набор попали различные типы страниц. Затем отметили, какие ссылки являются непотистскими, а какие нет.
Второй набор данных был получен путем случайного отбора из 7 млн. страниц 750 ссылок, которые были вручную промодерированы и помечены, являются ли они непотистскими или нет.
В итоге получились следующие значения вероятностей: 89.5% ссылок были отмечены как непотистские в первом наборе данных и 72.8% — во втором.
После этого был определен набор факторов (например, количество ссылок на странице, DNS-сервер сайта, IP-адрес) и для каждой из страниц двух наборов значения факторов были собраны. В первом случае получилось 255 уникальных классов, во втором – 535.
Определение показателей
Определенный вручную набор из 75 пар показателей. включили в тесты найти ответы на вопросы:
• Идентичны ли заголовки страниц (title) или описания (description)?
• Перекликаются ли (и если да, то насколько, в %) описания (description) с текстом станицы?
• Полностью ли совпадают имена хостов (host-names)?
• Идентичны ли только домены?
• Идентичны ли только хосты без доменов?
• Совпадают ли, хотя бы частично, IP-адреса?
• Ссылающаяся страница содержит более чем n исходящих ссылок?
• Страницы содержат определенный процент одинаковых исходящих ссылок?
• Совпадают ли, хотя бы частично, URL страниц?
• Принадлежат ли страницы доменной зоне .com, .net, .org, или .edu?
• Страница-донор ссылается на linkstoyou.com?
• Описание (description) ссылающейся страницы содержит фразу «ссылки»?
• URL содержит такие слова как «домой», «пользователь» или символ «тильда» — ~
• Домены содержат одинаковые e-mail?
• Домены имеют одинаковые DNS-сервера?
Далее эти 75 показателей были разбиты на группы:
• Базовая группа (46 показателей) (base): показатели, касающиеся URL’ов страниц
• Базовая группа + информация о ссылках (59 показателей) (base+links): показатели, входящие в первую группу плюс показатели, касающиеся исходящих ссылок на ссылающейся странице и IP-адресов
• Базовая группа + текст (71 признак) (base+text): показатели, входящие в первую и вторую группу плюс информация о title и descriptions
• Общая группа (all), включающая все показатели плюс данные по проверке информация о e-mail и DNS-серверах (доступно только для доменных имен в простых доменов верхнего уровня gTLD ).
Эти группы были определены исходя из времени, которое затрачивается на сбор заданной информации. Значения показателей, входящих в первые три группы вычисляются на основе информации, содержащейся в базе данных поисковой системы. Четвертая группа содержит ряд показателей, информация о которых может быть получена только из внешних источников (что затрудняет, собственно, ее сбор). И наконец, пятую группу образуют данные по показателям (их 25), которые собираются вручную для повышения точности).
Итак, после определения набора показателей и сбора нужной информации используется программное обеспечение, позволяющее строить деревья решений. Исследователи использовали
С использованием в качестве обучающей выборки первого набора данных было построено дерево решений, фрагмент которого представлен на рисунке 1.
Рисунок 1. Фрагмент дерева решений, построенного на основании первого набора данных
Что мы видим на рисунке? В строках у нас расположены правила, образующие «ветки» дерева решений. Если ссылка непотистская, то результат = 1, если нормальная, то результат = -1. В скобочках указано количество случаев из обучающей выборки, которые удовлетворяют заданному условию.
Поясним. Обратим внимание на правила, выделенные красным. ЕСЛИ e—mail у двух страниц одинаковый, ТО тогда ссылку считать непотистской. Всего из обучающей выборки под это условие попадает 5 случаев, когда ссылка была исследователями помечена как непотистская (Same contact e-mail = 1: 1 (5.0)). ЕСЛИ e—mail двух страниц различается, то мы опускаемся на уровень ниже и делаем следующую проверку: ЕСЛИ страницы имеют >10% одинаковых ссылок, ТО тогда ссылки между двумя страницами надо считать непотистскими, ИНАЧЕ — нет. Под первую часть правила у нас попадают 62 ссылки, которые были изначально помечены как непотистские и 7 ссылок, которые были помечены как хорошие. Т.е. мы здесь наблюдаем ошибку, правило не совсем корректно определяет непот. Но об ошибках поговорим чуть позже.
Результаты
В первую очередь нам надо определить точность результатов, которые дает построение дерева. Исследователи провели два эксперимента: в первом в качестве обучающей выборки выступал первый набор данных (1536 ссылок), а второй использовался как тестовый, во втором эксперименте – все наоборот. Также использовались различные наборы показателей.
На рисунке ниже мы видим графики, показывающие точность двух экспериментов. Невооруженным глазом видно, что первый способ построения дерева решений оказался более точным. При этом самый хороший результат достигается, когда используются значения показателей, отобранных вручную (группа из 24 показателей). В этом случае ошибка составляет менее 10%. Ошибки, как было показано выше, случаются, когда ссылка, помеченная как непотистская, классифицируется как «хорошая», или наоборот.
Рисунок 2. Уровни ошибок алгоритма
Объясняются такие различия между двумя экспериментами следующим образом. Первый набор данных репрезентативнее, охватывает большее количество случаев, диагностирующих о непоте. Второй набор данных мал. Поэтому, обучая алгоритм диагностики на первом наборе данных, мы получаем более точный инструмент. Также стоит отметить, что использование более полного набора показателей, характеризующих страницы с непотистскими ссылками, дает лучший результат (за исключением случаев, когда показатели отбираются вручную).
Выводы
Наборы данных и результаты
Как может использовать поисковая система предложенный в данной работе подход? Сценарий достаточно прост. Создаются два набора данных, включающих два типа ссылок: хорошие и непотистские. Первый набор данных выбирается таким образом, чтобы в нем встречались всевозможные варианты непотистских ссылок. Второй набор представляет собой случайную выборку из реального Веба. На основании первого набора строится дерево решений и генерируются правила. На втором наборе правила тестируются. Использование второго набора данных для генерации правил дает худшие результаты, так как во втором наборе не рассматриваются все варианты непотистских ссылок, т.е. выборка нерепрезентативна.
В работе представлен лишь отдельный пример использования обучающего алгоритма для выявления непотистских ссылок. Конечно, результаты его работы не очень точны, так как для тестирования и обучения использовались достаточно малые наборы данных, да и деревья решений – это всего лишь один из многих инструментов работы самообучающегося алгоритма.
Объем работ
В ходе исследований не возникло проблем со скоростью вычислений. С другой стороны, учитывая масштабы реального поиска в Вебе, можно ожидать, что у реальных поисковых систем могут возникнуть некоторые проблемы с производительностью.
Наиболее оптимальным будет использование данного алгоритма определения непотистских ссылок не в режиме реального времени, а офлайн, т.е. не в момент подачи запроса и вывода релевантных результатов, а до этого.
Будущие работы
Проблема непотистских ссылок гораздо шире и не ограничивается описываемыми в работе предположениями. Основные вопросы, которые следует решить в будущем, это каким образом нужно учитывать дубликаты страниц и «зеркала» сайтов.
Нужно ли игнорировать ссылки со страниц, содержащих одинаковый текст или все же принимать их во внимание?
Так же, как было отмечено ранее в работе, неясным остается вопрос с эвристиками: каким из способов их задать, чтобы лучше учитывать ссылки между сайтами и между страницами одного сайта.
Эти проблемы еще предстоит решить поисковым системам.
Заключение от переводчика
Как же это использовать простому сеошнику? А все просто. Допустим, у нас есть несколько тысяч покупных ссылок. Мы определили их работоспособность способом, который описывался во вступлении. Далее, разделяем поровну рассмотренные несколько тысяч случаев. Получаем два набора данных. На основе первого мы строим дерево решений, второй используем для проверки точности. После того как мы построили адекватное дерево решений и определили правила, используем их для диагностики площадок, на которых хотим приобрести ссылки. Если правила указывают нам на то, что ссылка будет рабочей, значит, покупаем, иначе – не берем.
От себя хотелось бы добавить, что можно не ограничиваться только деревьями решений – в Data Mining есть много других способов! Дерзайте!
Со списком литературы, которой пользовались исследователи, можно ознакомиться в источнике.
Перевод под ред. Дмитрия Рузанова, аналитика-проектировщика компании