Расчет оценки элемента обычно используется для отзыва и используется в сочетании с профилированием интересов пользователей. Методы расчета баллов по предметам можно разделить на три категории:
Эта статья посвящена“Тысячи людей похожи друг на друга”изitemДавайте кратко поговорим о методе расчета баллов байесовского сглаживания.CTR上из实践。
Возьмем в качестве примера распространение контента,При подсчете баллов по предмету,Может иметь много измерений,Например, популярность взаимодействия с элементом, частота изменений, время создания, CTR, отрицательные отзывы и т. д. Если CTR используется в качестве основы оценки для отзыва элемента,Тогда мы надеемся вспомнить более высокий рейтинг кликовИ данные относительно достоверныиз一批item。В это время могут быть следующие двавопрос:
Самый простой способ подумать об этом состоит в том, что мы можем искусственно установить два значения, a и b, и преобразовать CTR в:
Но такая трансформация может решить только вопрос1,Решение вопроса 2 не очень хорошее. Итак, мы подумали, можем ли мы сделать здесь что-то менее «жестокое»? Более простое преобразование – взять среднее количество кликов и показов из исторических журналов.,Но все еще недостаточно элегантно,并且若给изa、bСлишком большое значение приведет к тому, что всеitemизРезультаты сходятся к среднему значению。
мы знаем,одинitemНажатие на него соответствуетРаспределение Бернуллииз,и Распределение Бернулли中只иметьодинпараметрP,Мы можем это выяснить, взяв несколько журналовP,Затем возьмите заднюю часть,Затем апостериорное значение можно использовать в качестве априорного для следующей итерации.,Но это сложно подсчитать.
Поэтому мы надеемся, что априорное и апостериорное принадлежат одному и тому же распределению.,Просто параметры разные,Таким образом, нам нужно только обновить параметры внутри при реализации,不需要проходить大量из计算。иРаспределение Бернуллиизсопряженное распределениедабета-распределение,Следовательно, вы можете использовать бета-распределение для байесовского сглаживания.,И преобразуйте показатель CTR в:
вαиβпроходитьоценка моментаполучить,Специфический:
где μ — среднее значение, а σ — дисперсия.
Горизонтальная ось и вертикальная ось бета-распределения представляют значение случайной величины и значение функции плотности вероятности (PDF) соответственно. Горизонтальная ось представляет значение случайной величины в бета-распределении. Диапазон значений — [0,1], что можно понимать как вероятность возникновения определенного события, например CTR. В бета-распределении диапазон значений горизонтальной оси определяется параметрами α и β бета-распределения. Вертикальная ось представляет плотность вероятности случайной величины, принимающей определенное значение в бета-распределении. Диапазон значений — [0, ∞), который представляет плотность вероятности в определенной точке горизонтальной оси. Рисование с помощью Python:
import numpy as np
from scipy.stats import beta
import matplotlib.pyplot as plt
ab_pairs = [(2.81,21.92), (14.19,123.57)]
x = np.linspace(0, 1, 1002)[1:-1]
for a, b in ab_pairs:
print(a, b)
dist = beta(a, b)
y = dist.pdf(x)
plt.plot(x, y, label=r'$\alpha=%.1f,\ \beta=%.1f$' % (a, b))
# Установить заголовок
plt.title(u'Beta Distribution')
# настраивать x,y Диапазон значений оси
plt.xlim(0, 1)
plt.ylim(0, 25)
plt.legend()
plt.savefig("./beta.svg", format="svg")
Далее нам нужно вычислить α и β. На этом этапе мы можем рассмотреть три варианта в зависимости от степени детализации:
Очевидно, что метод 3 просто неверен как с точки зрения реализации, так и с точки зрения байесовского сглаживания.
【我们希望изда】:Может использовать набор «репрезентативных» элементов, чтобы определить его бета-распределение.,Чтобы сгладить все предметы. в то же время,Если данные о кликах по показу элемента малы,Мы не считаем, что данные достаточно надежны,Тогда мои априорные значения (α и β) должны играть ведущую роль, если у элемента достаточно данных о кликах;,Мы думаем, что это достаточно уверенно,Тогда априорные эффекты (α и β) практически бесполезны.
Поэтому можно использовать метод 1 и метод 2. Эти два метода также будут рассмотрены ниже.
Для всех элементов в качестве параметров сглаживания (крупнозернистого) рассчитывается только набор α и β. На практике обычно берется период (например, 7 дней), а затем каждый день выполняется дедупликация на основе uid, itemid. и Traceid, а затем, соответственно, вычислить CTR для каждого элемента, затем найти дисперсию и среднее значение дня на основе этих CTR, вычислить ежедневные α и β на основе дисперсии и среднего значения, а затем найти средние значения α и β. из 7 дней. Используйте SparkSQL для его реализации, как показано в следующем коде:
SELECT AVG(alpha) AS avg_alpha
, AVG(beta) AS avg_beta
FROM(
SELECT ftime
, mean
, variance
, mean*(mean*(1-mean)/variance-1) AS alpha
, (1-mean)*(mean*(1-mean)/variance-1) AS beta
FROM(
SELECT ftime
, AVG(ctr) AS mean
, VARIANCE(ctr) AS variance
FROM (
SELECT ftime
, item_id
, imp
, clk
, ctr
FROM mid_tb
WHERE imp>500
)
GROUP BY ftime
)
WHERE NOT isnan(variance)
)
WHERE alpha IS NOT NULL AND beta IS NOT NULL
Здесь необходимо отметить, что,在计算方差и均值изчас候可以Примените порог воздействия, чтобы исключить данные с длинным хвостом,比如我这里даWHERE imp>500
。Если данные с длинным хвостом не удалены,Тогда отклонение CTR будет слишком большим.,В результате параметры сглаживания, рассчитанные по коэффициенту оценки, оказываются слишком малы.,Это приводит к сбою эффекта сглаживания. Рисунок ниже отражает бета-распределение до порога карты.,А бета-распределение после порога карты:
Как видно из рисунка выше, желтая кривая не имеет застрявшего порога.,иметьМного данных с длинным хвостом,Например, 3 экспозиции, 2 клика.,CTR=2/3. в результате чего вычисленное значение α=0,1,β=2.3,В принципе, разглаживающего эффекта нет.,其原因даНеверие CTR в данные с длинным хвостом увеличивает дисперсию。但да其实不难发现,Способ 1 Даже если порог воздействия застрял, рассчитанные значения α и β все равно не имеют очень большого значения. большой,Сила сглаживания все еще ограничена.。
Рассчитать набор α и β в качестве параметров сглаживания для каждой категории при группировании (компромисс)。Способ 1Относительно просто реализовать,Развертывание онлайн-проектов также более удобно.,Потому что мне нужен только один комплектαиβВот и все。但да其也拥иметь一定из局限性:Распределение CTR товаров в разных категориях, естественно, будет разным. Эта разница связана с формой товара.。пример:один主打交友из产品,CTR постов «дружбы» обычно может быть выше, чем у постов «спорта». На рисунке ниже показана разница CTR разных категорий в товаре.,Горизонтальная ось — категории,Вертикальная ось — CTR:
Исходя из вышеизложенной ситуации, если метод 1 используется напрямую, рассчитанная дисперсия по-прежнему велика, что приводит к недостаточной детализации сглаживания. Простой метод решения этой проблемы — искусственно усилить параметры сглаживания и повысить силу сглаживания, но это изменит его исходное распределение. Например, если α=1,7 и β=35,9 в методе 1 искусственно увеличить в 4 раза, они станут α=6,8 и β=143,6.
более элегантный подход则да:由于每个品类изCTRбольшая разница,Поэтому возможноРассчитайте α и β отдельно для каждой категории.。С одной стороны, это может уменьшить дисперсию.,Увеличение силы сглаживания,С другой стороны, также считается, что распределение CTR каждой категории само по себе различно.
不过到这里иметь个Яма (упоминается в конце главы 4),Если категорий (или тегов) слишком много,То есть оно разделено слишком мелко.,Это может привести к уменьшению количества элементов в каждой категории (или теге).,ПоявлятьсяКатегория «длинный хвост»。这час候若计算每个品类下изαиβ很可能会求出特别大изαиβ,Потому что может быть только один или два фрагмента данных.,Очень небольшая дисперсия заставляет думать, что данные достаточно достоверны.,Не совсем. Решение для этой ситуации: