首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何利用真实场景数据构建个性化推荐系统?

如何利用真实场景数据构建个性化推荐系统?
EN

Data Science用户
提问于 2022-09-12 18:32:22
回答 2查看 659关注 0票数 5

我正在尝试建立一个推荐系统,向用户推荐项目。这就是我想要实现的那种现实生活的例子。但是在我搜索的任何地方,我都会搜索到一个推荐系统,它使用相同的用户-电影评级数据集来解决这个问题,并使用矩阵分解来找出每个用户的潜在因素。但我的数据是不同的,我对如何处理这个问题感到困惑。

我的数据是这样的-

我有4个数据集:

代码语言:javascript
运行
复制
app_metadata

|item_id |    category       |              description                          |
|--------|-------------------|---------------------------------------------------| 
|593676  |HEALTH_AND_FITNESS | Abs Workout, designed by professional fitness ... |
|...
|...
98599 rows × 3 columns
代码语言:javascript
运行
复制
user_metadata

| uid | device |device_category | state |  city   | network_type |user_lang| space_available |
|-----|--------|----------------|-------|---------|--------------|---------|-----------------|
|94698|SM-M215F|       Mid      | Assam |Dibrugarh|      4G      | en-US   |      94.32      |
|...
|...
294798 rows × 8 columns
代码语言:javascript
运行
复制
app_installs

| uid | item_id  |   status  |  install_date |
|-----|----------|-----------|---------------|
|64190|  593676  |uninstalled|  2022-07-01   |
|...
|...
3767269 rows × 4 columns
代码语言:javascript
运行
复制
app_usage

| app_use_date | uid  |item_id | time_spent|
|--------------|------|--------|-----------|
|2022-07-31    |185459| 601235 |  2180211  |
|...
|...
7569649 rows × 4 columns

这些是我拥有的数据集。如何使用所有这4个数据集来构建一个基于模型的用户个性化推荐系统,该系统向用户推荐前5位item_id?任何裁判专家!

EN

回答 2

Data Science用户

发布于 2022-09-12 19:08:36

100 K的应用程序,300 K的用户-相当的任务。

现代排名系统通常由三个阶段组成。

  1. 召回(生成候选人)
  • 对于每个用户,将您可以推荐的应用程序数量从100 K减少到(大约!) 100-500。(这个数字是要测试的)。
  • 通过构建一组规则来减少这一点,例如,如果一个应用程序位于前50个趋势应用程序中,那么它可能属于这个集合。然后根据位置、设备类型等来打破这一趋势。
  • 其他的例子是用户-用户/用户-项目协作过滤。
  • 创新这些规则,这将对管道产生很大的影响。查看所有用户和项目的历史数据。
  1. 排名
  • 在这里,您选择您生成的候选人(100-500),并给他们贴上标签。
  • 标签是:是否每个用户都在您的预测窗口下载每个应用程序。
    • 因此,现在您可能有了一个带有正数下载的标签数据集,还有相当多的负面数据集(假设人们下载了一些)。

  • 接下来,构建关于每个用户和应用程序的特性。例如,下载率、趋势数、年龄、性别、设备、交互功能等。
  • 将这些特性和目标输入等级模型。LightGBM是非常受欢迎的,并且是一个明智的开端。
  1. 员额级
  • 使用其他规则,您不希望或不知道如何让您的模型学习。例如,您可能不希望向特定人群推荐NSFW应用程序。或者,如果应用程序违反了一套规则,使用针对ToS等的广告等,则可能要降低其排名。
  • 本质上,任何你想要建立的排名后的分析/规则/模型。

排名系统通常被认为是数据科学中最困难的领域。

一般提示:构建一个功能存储库,这样您就不必一遍又一遍地重新计算功能。让你的时间序列k倍列车测试分裂正确。让你的泄漏检测到位-这不是它是否会发生的问题,而是何时发生的问题;)看看现有的软件。

注:这种方法使我在Kaggle H&M推荐竞争中获得了1%-2%的优势,并被所有顶级竞争对手所采用。

票数 6
EN

Data Science用户

发布于 2022-09-12 23:41:09

一种选择是协同过滤 (CF),它根据不同用户之间的类似交互推荐项目。

第一步是将数据重新组织成一个用户逐项(即app)矩阵,其单元格值表示用户是否使用过该应用程序。然后通过寻找所有项目对之间的相似性来建立模型。由于您的数据是二进制的,所以可以使用hamming距离。对于不同的单元值,可以使用不同的距离度量。例如,您可能会在应用程序中花费更多的时间来获取单元格值方面的成功。

最后,大多数类似的项目都可以预测--“曾经使用过类似应用程序的人,也使用过这个应用程序。”

票数 3
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/114361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档