1%{ @file cache_miss_is.m
2 % @brief Computes miss rates
using importance sampling
4 % @author LINE Development Team
8 % @brief Computes cache miss rates
using importance sampling
11 % This function computes global, per-user, and per-item miss rates
for
12 % cache models
using Monte Carlo importance sampling.
16 % [M, MU, MI, pi0, lE] = cache_miss_is(gamma, m, lambda)
17 % [M, MU, MI, pi0, lE] = cache_miss_is(gamma, m, lambda, samples)
22 % <tr><th>Name<th>Description
23 % <tr><td>gamma<td>Item popularity probabilities (n x h matrix)
24 % <tr><td>m<td>Cache capacity vector (1 x h)
25 % <tr><td>lambda<td>Arrival rates per user per item (u x n x h+1)
26 % <tr><td>samples<td>(Optional) Number of Monte Carlo samples (
default: 1e5)
31 % <tr><th>Name<th>Description
32 % <tr><td>M<td>Global miss rate
33 % <tr><td>MU<td>Per-user miss rate (u x 1)
34 % <tr><td>MI<td>Per-item miss rate (n x 1)
35 % <tr><td>pi0<td>Per-item miss probability (1 x n)
36 % <tr><td>lE<td>Log of normalizing constant
39function [M, MU, MI, pi0, lE] = cache_miss_is(gamma, m, lambda, samples)
40% [M, MU, MI, PI0, LE] = CACHE_MISS_IS(GAMMA, M, LAMBDA, SAMPLES)
42% Importance sampling estimation of cache miss rates.
45% gamma - (n x h) item popularity probabilities
46% m - (1 x h) cache capacity vector
47% lambda - (u x n x h+1) arrival rates per user per item per level
48% samples - (optional) number of Monte Carlo samples, default 1e5
52% MU - per-user miss rate
53% MI - per-item miss rate
54% pi0 - per-item miss probability
55% lE - log of normalizing constant
57if nargin < 4 || isempty(samples)
63% Compute normalizing constant via importance sampling
64[~, lE] = cache_is(gamma, m, samples);
66% Compute hit probabilities via importance sampling
67pij = cache_prob_is(gamma, m, samples);
69% Extract miss probabilities (first column)
72% Compute miss rates if lambda provided
73if nargin >= 3 && ~isempty(lambda)
74 u = size(lambda, 1); % number of users
80 MU(v) = MU(v) + lambda(v, k, 1) * pi0(k);
87 MI(k) = sum(lambda(:, k, 1)) * pi0(k);
90 % Global miss rate (sum of per-item miss rates)
93 % Without lambda, return just the mean miss probability