Documentation
¶
Index ¶
- Constants
- func LoadDataFromBuiltIn(dataSetName string) (*Dataset, *Dataset, error)
- func MarshalIndex(w io.Writer, index *Index) error
- func MarshalUnifiedIndex(w io.Writer, index UnifiedIndex) error
- type CFSplit
- type CTRSplit
- type Dataset
- func (d *Dataset) AddFeedback(userId, itemId string)
- func (d *Dataset) AddItem(item data.Item)
- func (d *Dataset) AddUser(user data.User)
- func (d *Dataset) CountFeedback() int
- func (d *Dataset) CountItems() int
- func (d *Dataset) CountUsers() int
- func (d *Dataset) GetCategories() map[string]int
- func (d *Dataset) GetItemColumnValuesIDF() []float32
- func (d *Dataset) GetItemDict() *FreqDict
- func (d *Dataset) GetItemFeedback() [][]int32
- func (d *Dataset) GetItemIDF() []float32
- func (d *Dataset) GetItems() []data.Item
- func (d *Dataset) GetTimestamp() time.Time
- func (d *Dataset) GetUserColumnValuesIDF() []float32
- func (d *Dataset) GetUserDict() *FreqDict
- func (d *Dataset) GetUserFeedback() [][]int32
- func (d *Dataset) GetUserIDF() []float32
- func (d *Dataset) GetUsers() []data.User
- func (d *Dataset) SampleUserNegatives(excludeSet CFSplit, numCandidates int) [][]int32
- func (d *Dataset) SplitCF(numTestUsers int, seed int64) (CFSplit, CFSplit)
- type FreqDict
- type ID
- type Index
- type Labels
- type UnifiedDirectIndex
- func (unified *UnifiedDirectIndex) CountContextLabels() int32
- func (unified *UnifiedDirectIndex) CountItemLabels() int32
- func (unified *UnifiedDirectIndex) CountItems() int32
- func (unified *UnifiedDirectIndex) CountUserLabels() int32
- func (unified *UnifiedDirectIndex) CountUsers() int32
- func (unified *UnifiedDirectIndex) EncodeContextLabel(label string) int32
- func (unified *UnifiedDirectIndex) EncodeItem(itemId string) int32
- func (unified *UnifiedDirectIndex) EncodeItemLabel(itemLabel string) int32
- func (unified *UnifiedDirectIndex) EncodeUser(userId string) int32
- func (unified *UnifiedDirectIndex) EncodeUserLabel(userLabel string) int32
- func (unified *UnifiedDirectIndex) GetContextLabels() []string
- func (unified *UnifiedDirectIndex) GetItemLabels() []string
- func (unified *UnifiedDirectIndex) GetItems() []string
- func (unified *UnifiedDirectIndex) GetUserLabels() []string
- func (unified *UnifiedDirectIndex) GetUsers() []string
- func (unified *UnifiedDirectIndex) Len() int32
- func (unified *UnifiedDirectIndex) Marshal(w io.Writer) error
- func (unified *UnifiedDirectIndex) Unmarshal(r io.Reader) error
- type UnifiedIndex
- type UnifiedMapIndex
- func (unified *UnifiedMapIndex) CountContextLabels() int32
- func (unified *UnifiedMapIndex) CountItemLabels() int32
- func (unified *UnifiedMapIndex) CountItems() int32
- func (unified *UnifiedMapIndex) CountUserLabels() int32
- func (unified *UnifiedMapIndex) CountUsers() int32
- func (unified *UnifiedMapIndex) EncodeContextLabel(label string) int32
- func (unified *UnifiedMapIndex) EncodeItem(itemId string) int32
- func (unified *UnifiedMapIndex) EncodeItemLabel(itemLabel string) int32
- func (unified *UnifiedMapIndex) EncodeUser(userId string) int32
- func (unified *UnifiedMapIndex) EncodeUserLabel(userLabel string) int32
- func (unified *UnifiedMapIndex) GetContextLabels() []string
- func (unified *UnifiedMapIndex) GetItemLabels() []string
- func (unified *UnifiedMapIndex) GetItems() []string
- func (unified *UnifiedMapIndex) GetUserLabels() []string
- func (unified *UnifiedMapIndex) GetUsers() []string
- func (unified *UnifiedMapIndex) Len() int32
- func (unified *UnifiedMapIndex) Marshal(w io.Writer) error
- func (unified *UnifiedMapIndex) Unmarshal(r io.Reader) error
- type UnifiedMapIndexBuilder
- func (builder *UnifiedMapIndexBuilder) AddCtxLabel(ctxLabel string)
- func (builder *UnifiedMapIndexBuilder) AddItem(itemId string)
- func (builder *UnifiedMapIndexBuilder) AddItemLabel(itemLabel string)
- func (builder *UnifiedMapIndexBuilder) AddUser(userId string)
- func (builder *UnifiedMapIndexBuilder) AddUserLabel(userLabel string)
- func (builder *UnifiedMapIndexBuilder) Build() UnifiedIndex
Constants ¶
const NotId = int32(-1)
NotId represents an ID doesn't exist.
Variables ¶
This section is empty.
Functions ¶
func MarshalIndex ¶
MarshalIndex marshal index into byte stream.
func MarshalUnifiedIndex ¶
func MarshalUnifiedIndex(w io.Writer, index UnifiedIndex) error
MarshalIndex marshal index into byte stream.
Types ¶
type CFSplit ¶
type CFSplit interface {
// CountUsers returns the number of users.
CountUsers() int
// CountItems returns the number of items.
CountItems() int
// CountFeedback returns the number of (positive) feedback.
CountFeedback() int
// GetUserDict returns the frequency dictionary of users.
GetUserDict() *FreqDict
// GetItemDict returns the frequency dictionary of items.
GetItemDict() *FreqDict
// GetUserFeedback returns the (positive) feedback of users.
GetUserFeedback() [][]int32
// GetItemFeedback returns the (positive) feedback of items.
GetItemFeedback() [][]int32
// SampleUserNegatives samples negative (feedback) for users.
SampleUserNegatives(excludeSet CFSplit, numCandidates int) [][]int32
}
CFSplit is the dataset split for collaborative filtering.
type CTRSplit ¶
type CTRSplit interface {
Count() int
CountUsers() int
CountItems() int
CountUserLabels() int
CountItemLabels() int
CountContextLabels() int
CountPositive() int
CountNegative() int
GetIndex() UnifiedIndex
GetTarget(i int) float32
Get(i int) ([]int32, []float32, float32)
}
CTRSplit is the dataset split for click-through rate prediction.
type Dataset ¶
type Dataset struct {
// contains filtered or unexported fields
}
func (*Dataset) AddFeedback ¶
func (*Dataset) CountFeedback ¶
func (*Dataset) CountItems ¶
func (*Dataset) CountUsers ¶
func (*Dataset) GetCategories ¶
func (*Dataset) GetItemColumnValuesIDF ¶
func (*Dataset) GetItemDict ¶
func (*Dataset) GetItemFeedback ¶
func (*Dataset) GetItemIDF ¶
GetItemIDF returns the IDF of items.
IDF(i) = log(U/freq(i))
U is the number of users. freq(i) is the frequency of item i in all feedback.
func (*Dataset) GetTimestamp ¶
func (*Dataset) GetUserColumnValuesIDF ¶
func (*Dataset) GetUserDict ¶
func (*Dataset) GetUserFeedback ¶
func (*Dataset) GetUserIDF ¶
GetUserIDF returns the IDF of users.
IDF(u) = log(I/freq(u))
I is the number of items. freq(u) is the frequency of user u in all feedback.
func (*Dataset) SampleUserNegatives ¶
type FreqDict ¶
type FreqDict struct {
// contains filtered or unexported fields
}
func NewFreqDict ¶
func NewFreqDict() (d *FreqDict)
func (*FreqDict) AddNoCount ¶
type Index ¶
type Index struct {
Numbers map[string]int32 // sparse ID -> dense index
Names []string // dense index -> sparse ID
}
Index manages the map between sparse Names and dense indices. A sparse ID is a user ID or item ID. The dense index is the internal user index or item index optimized for faster parameter access and less memory usage.
func UnmarshalIndex ¶
UnmarshalIndex unmarshal index from byte stream.
type UnifiedDirectIndex ¶
type UnifiedDirectIndex struct {
N int32
}
UnifiedDirectIndex maps string to integer in literal.
func (*UnifiedDirectIndex) CountContextLabels ¶
func (unified *UnifiedDirectIndex) CountContextLabels() int32
CountContextLabels should be used by unit testing only.
func (*UnifiedDirectIndex) CountItemLabels ¶
func (unified *UnifiedDirectIndex) CountItemLabels() int32
CountItemLabels should be used by unit testing only.
func (*UnifiedDirectIndex) CountItems ¶
func (unified *UnifiedDirectIndex) CountItems() int32
CountItems should be used by unit testing only.
func (*UnifiedDirectIndex) CountUserLabels ¶
func (unified *UnifiedDirectIndex) CountUserLabels() int32
CountUserLabels should be used by unit testing only.
func (*UnifiedDirectIndex) CountUsers ¶
func (unified *UnifiedDirectIndex) CountUsers() int32
CountUsers should be used by unit testing only.
func (*UnifiedDirectIndex) EncodeContextLabel ¶
func (unified *UnifiedDirectIndex) EncodeContextLabel(label string) int32
EncodeContextLabel should be used by unit testing only.
func (*UnifiedDirectIndex) EncodeItem ¶
func (unified *UnifiedDirectIndex) EncodeItem(itemId string) int32
EncodeItem should be used by unit testing only.
func (*UnifiedDirectIndex) EncodeItemLabel ¶
func (unified *UnifiedDirectIndex) EncodeItemLabel(itemLabel string) int32
EncodeItemLabel should be used by unit testing only.
func (*UnifiedDirectIndex) EncodeUser ¶
func (unified *UnifiedDirectIndex) EncodeUser(userId string) int32
EncodeUser should be used by unit testing only.
func (*UnifiedDirectIndex) EncodeUserLabel ¶
func (unified *UnifiedDirectIndex) EncodeUserLabel(userLabel string) int32
EncodeUserLabel should be used by unit testing only.
func (*UnifiedDirectIndex) GetContextLabels ¶
func (unified *UnifiedDirectIndex) GetContextLabels() []string
GetContextLabels should be used by unit testing only.
func (*UnifiedDirectIndex) GetItemLabels ¶
func (unified *UnifiedDirectIndex) GetItemLabels() []string
GetItemLabels should be used by unit testing only.
func (*UnifiedDirectIndex) GetItems ¶
func (unified *UnifiedDirectIndex) GetItems() []string
GetItems should be used by unit testing only.
func (*UnifiedDirectIndex) GetUserLabels ¶
func (unified *UnifiedDirectIndex) GetUserLabels() []string
GetUserLabels should be used by unit testing only.
func (*UnifiedDirectIndex) GetUsers ¶
func (unified *UnifiedDirectIndex) GetUsers() []string
GetUsers should be used by unit testing only.
func (*UnifiedDirectIndex) Len ¶
func (unified *UnifiedDirectIndex) Len() int32
Len should be used by unit testing only.
type UnifiedIndex ¶
type UnifiedIndex interface {
Len() int32
EncodeUser(userId string) int32
EncodeItem(itemId string) int32
EncodeUserLabel(userLabel string) int32
EncodeItemLabel(itemLabel string) int32
EncodeContextLabel(ctxLabel string) int32
GetUsers() []string
GetItems() []string
GetUserLabels() []string
GetItemLabels() []string
GetContextLabels() []string
CountUsers() int32
CountItems() int32
CountUserLabels() int32
CountItemLabels() int32
CountContextLabels() int32
Marshal(w io.Writer) error
Unmarshal(r io.Reader) error
}
UnifiedIndex maps users, items and labels into a unified encoding space.
func NewUnifiedDirectIndex ¶
func NewUnifiedDirectIndex(n int32) UnifiedIndex
NewUnifiedDirectIndex creates a UnifiedDirectIndex.
func UnmarshalUnifiedIndex ¶
func UnmarshalUnifiedIndex(r io.Reader) (UnifiedIndex, error)
UnmarshalIndex unmarshal index from byte stream.
type UnifiedMapIndex ¶
type UnifiedMapIndex struct {
UserIndex *Index
ItemIndex *Index
UserLabelIndex *Index
ItemLabelIndex *Index
CtxLabelIndex *Index
}
UnifiedMapIndex is the id -> index mapper for factorization machines. The division of id is: | user | item | user label | item label | context label |
func (*UnifiedMapIndex) CountContextLabels ¶
func (unified *UnifiedMapIndex) CountContextLabels() int32
CountContextLabels returns the number of context labels.
func (*UnifiedMapIndex) CountItemLabels ¶
func (unified *UnifiedMapIndex) CountItemLabels() int32
CountItemLabels returns the number of item labels.
func (*UnifiedMapIndex) CountItems ¶
func (unified *UnifiedMapIndex) CountItems() int32
CountItems returns the number of items.
func (*UnifiedMapIndex) CountUserLabels ¶
func (unified *UnifiedMapIndex) CountUserLabels() int32
CountUserLabels returns the number of user labels.
func (*UnifiedMapIndex) CountUsers ¶
func (unified *UnifiedMapIndex) CountUsers() int32
CountUsers returns the number of users.
func (*UnifiedMapIndex) EncodeContextLabel ¶
func (unified *UnifiedMapIndex) EncodeContextLabel(label string) int32
EncodeContextLabel converts a context label to a integer in the encoding space.
func (*UnifiedMapIndex) EncodeItem ¶
func (unified *UnifiedMapIndex) EncodeItem(itemId string) int32
EncodeItem converts a item id to a integer in the encoding space.
func (*UnifiedMapIndex) EncodeItemLabel ¶
func (unified *UnifiedMapIndex) EncodeItemLabel(itemLabel string) int32
EncodeItemLabel converts a item label to a integer in the encoding space.
func (*UnifiedMapIndex) EncodeUser ¶
func (unified *UnifiedMapIndex) EncodeUser(userId string) int32
EncodeUser converts a user id to a integer in the encoding space.
func (*UnifiedMapIndex) EncodeUserLabel ¶
func (unified *UnifiedMapIndex) EncodeUserLabel(userLabel string) int32
EncodeUserLabel converts a user label to a integer in the encoding space.
func (*UnifiedMapIndex) GetContextLabels ¶
func (unified *UnifiedMapIndex) GetContextLabels() []string
GetContextLabels returns all context labels.
func (*UnifiedMapIndex) GetItemLabels ¶
func (unified *UnifiedMapIndex) GetItemLabels() []string
GetItemLabels returns all item labels.
func (*UnifiedMapIndex) GetItems ¶
func (unified *UnifiedMapIndex) GetItems() []string
GetItems returns all items.
func (*UnifiedMapIndex) GetUserLabels ¶
func (unified *UnifiedMapIndex) GetUserLabels() []string
GetUserLabels returns all user labels.
func (*UnifiedMapIndex) GetUsers ¶
func (unified *UnifiedMapIndex) GetUsers() []string
GetUsers returns all users.
func (*UnifiedMapIndex) Len ¶
func (unified *UnifiedMapIndex) Len() int32
Len returns the size of unified index.
type UnifiedMapIndexBuilder ¶
type UnifiedMapIndexBuilder struct {
UserIndex *Index
ItemIndex *Index
UserLabelIndex *Index
ItemLabelIndex *Index
CtxLabelIndex *Index
}
UnifiedMapIndexBuilder is the builder for UnifiedMapIndex.
func NewUnifiedMapIndexBuilder ¶
func NewUnifiedMapIndexBuilder() *UnifiedMapIndexBuilder
NewUnifiedMapIndexBuilder creates a UnifiedMapIndexBuilder.
func (*UnifiedMapIndexBuilder) AddCtxLabel ¶
func (builder *UnifiedMapIndexBuilder) AddCtxLabel(ctxLabel string)
AddCtxLabel adds a context label the unified index.
func (*UnifiedMapIndexBuilder) AddItem ¶
func (builder *UnifiedMapIndexBuilder) AddItem(itemId string)
AddItem adds a item into the unified index.
func (*UnifiedMapIndexBuilder) AddItemLabel ¶
func (builder *UnifiedMapIndexBuilder) AddItemLabel(itemLabel string)
AddItemLabel adds a item label into the unified index.
func (*UnifiedMapIndexBuilder) AddUser ¶
func (builder *UnifiedMapIndexBuilder) AddUser(userId string)
AddUser adds a user into the unified index.
func (*UnifiedMapIndexBuilder) AddUserLabel ¶
func (builder *UnifiedMapIndexBuilder) AddUserLabel(userLabel string)
AddUserLabel adds a user label into the unified index.
func (*UnifiedMapIndexBuilder) Build ¶
func (builder *UnifiedMapIndexBuilder) Build() UnifiedIndex
Build UnifiedMapIndex from UnifiedMapIndexBuilder.