def METHOD_NAME(self, x: dict) -> float:
    """Calculates greater than unary interactions.
    For normal FM: sigma (i < j) product(latents[xi] * latents[xj]) xi * xj
    interaction_combination_keys: sigma (i < j)
    interaction_val: xi * xj
    interaction_coefficient: latents[xi] * latents[xj]
    """
    return sum(
        self._interaction_coefficient(combination) * self._interaction_val(x, combination)
        for combination in self._interaction_combination_keys(x)
    )