Share via


CSFHistoryPenalty

Use this component to apply penalties to content items based on how recently they have been selected.

Intended use: Content Selection pipeline, Score stage.

Configuration Values

You can determine how the CSFHistoryPenalty component applies penalties and the range of penalties by setting component properties. Use the following boxes on the History Penalty tab of the Component Properties dialog box to determine this information.

Box

Description

Apply Penalties in the range of

The minimum penalty. The default is 0.9.

To

The maximum penalty. The default is 0.5.

Number of most recent items to penalize

The number of most recent items to penalize. The default is 10.

Penalty values range between zero (0) and one (1).

Values Read

The CSFHistoryPenalty component reads the following values from the indicated dictionary.

Key

Dictionary

Description

_content

Order

A reference to the ContentList Object containing the content items that may have penalties applied to their scores. In particular the, item_id and exposure_limitkeys are read.

_history

Order

The key containing the history string retrieved by the CSFLoadHistory component.

trace

Context

Optional. A Boolean indicating whether score adjustment tracing is enabled. This component will not produce trace strings unless this key is set to True.

Values Written

The CSFHistoryPenalty component writes the following values to the Order dictionary.

Key

Description

_content.score

A reference to the ContentList object containing the content items that may have their scores subjected to penalties.

Remarks

This component applies penalties to the scores of content items based on how recently the items have been selected, as well as on exposure limits the items may have. Penalties are values between zero (0) and one (1), which are multiplied by the current score of an item. This tends to reduce a score and thus reduces the possibility that the item is selected.

For example, a user could configure the nine most recently selected items to be subject to penalties ranging from 0.90 to 0.1. In this example, the most recently shown item would have its current score multiplied by 0.1, reducing its score and drastically decreasing the likelihood of being selected. The second most recently shown item would have its current score multiplied by 0.2, reducing its score slightly less.

The CSFHistoryPenalty component reads the exposure_limit and item_id keys of each item in the ContentList object referenced by the _content entry. The exposure_limit key is a hard limit on how many times a user is shown an item. When the limit is met, the score of the item is multiplied by zero (0.0). The adjusted score of an item is assigned to the score field of the content item.