Files
mindfulness/设计说明文档/客戶端問卷打分規則.md
2026-02-02 11:22:35 +08:00

9.6 KiB
Raw Permalink Blame History

正念 APP用戶畫像打分標準User Profile Scoring Spec · V1

用途 本文件定義「問卷完成後如何將答案轉換為可計算的用戶畫像User Profile 該畫像將用於後續的 個性化內容推薦 / 推送排序

設計原則

  • 不做心理診斷,只描述「此刻允許被如何對待」
  • 區分 身份(離散)狀態(連續)
  • 允許「通用」與「高個性化」內容並存

一、整體結構概覽

問卷完成後,系統需生成一個用戶畫像 U,包含四個維度:

  1. mom_stage(母職階段|離散型)
  2. emotion(當下情緒|連續型)
  3. context(影響來源|離散型)
  4. need(當下最需要的支持|離散型)

該畫像將與內容畫像 Cᵢ 進行匹配,計算推薦分數。

V1.1 工程補充欄位(用於不確定性控制/可觀測)

目的:在 Push 等高風險場景,當用戶畫像可能過期或不可靠時,自動「降個性化 / 降風險」。

建議在 U 中補充以下元資訊(不影響原有四維度打分):

  • profile_version:如 "v1.1"
  • profile_sourcequestionnaire(後續可擴展 behavior / mixed
  • profile_generated_atISO8601 時間戳
  • profile_confidence= conf_U01
  • profile_answered:各題是否作答(用于区分“跳过” vs “明确选择”)
    • stage/emotion/context/needtrue/false

profile_confidence 建議規則V1.1 默認,可調參):

  • 問卷剛完成:conf_U = 1.0
  • 隨時間衰減(避免用過期狀態強個性化推送):
    • 07 天:conf_U = 1.0
    • 730 天:線性衰減到 0.7
    • 30 天以上:conf_U = 0.5(除非用戶重新做問卷或有行為信號更新)

V1.2:支持“可跳过题目”的画像输出与置信度(工程必读)

前提:问卷允许用户跳过任意题目(包括 mom_stage / emotion / context / need。 目标:保证任何情况下都能生成“可计算的 U”并在不确定时自动降个性化/降风险。

V1.2 输出原则:

  • mom_stage 跳过:按安全策略处理为 unknown(即 U.stage.unknown=1),同时 profile_answered.stage=false
  • emotion 跳过U.emotion_score 置为缺省(建议直接不输出该字段或输出 null),同时 profile_answered.emotion=false
  • context 跳过U.context 输出为空对象 {},同时 profile_answered.context=false
  • need 跳过U.need 输出为空对象 {},同时 profile_answered.need=false

说明:

  • 之所以“mom_stage 跳过也当作 unknown”是为了在 Push 等高风险场景优先保证不冒犯unknown 语义:不希望被母职身份定义)。
  • emotion/context/need 跳过不强行填默认值,避免制造“伪精确画像”;改由推荐算法在打分时走“通用值 + 不确定性惩罚”见「个性化推荐算法规则」V1.2 补充)。

V1.2 conf_U 计算(在 V1.1 时间衰减基础上叠加“作答完整度”):

定义:

  • conf_time:按 V1.1 时间衰减得到01
  • answered_count = Σ I[profile_answered.* = true],总题数 total_questions = 4
  • completion = answered_count / total_questions
  • completion_factor = 0.5 + 0.5 * completion(答得越少越不确定,但仍保留基础信息)

则:

  • conf_U = clamp(conf_time * completion_factor, 0.2, 1.0)

Push 推送時若 conf_U 偏低,推薦系統需啟用 P_uncertainty 並限制 personalization_power 上限見「個性化推薦算法規則」V1.1)。


二、mom_stage母職階段— 離散型

問卷題目

Which stage of motherhood are you in?

選項與對應標籤:

  • Pregnant / Preparing → mom_stage: expecting
  • Parenting → mom_stage: parenting
  • Prefer not to say → mom_stage: unknown

打分方式One-Hot

欄位
U.stage.expecting 1 或 0
U.stage.parenting 1 或 0
U.stage.unknown 1 或 0

說明

  • mom_stage 是「身份 / 階段」,不是強度,不做連續軸線
  • unknown 的語義是:不希望被母職身份定義(不是「沒有孩子」)
  • 若该题被跳过:按安全策略输出 unknown,同时 profile_answered.stage=false

推送原則(高層)

  • unknown:避免任何「你應該怎麼當媽媽」的內容
  • expecting:避免「已經有孩子」的育兒細節
  • parenting:可接受具體育兒壓力、現實困境相關內容

三、emotion當下情緒— 連續型01

問卷題目

How are you feeling right now?

映射為數值軸(能量/情緒穩定度)

選項 tag emotion_score
Low emotion: low 0.0
Overwhelmed emotion: overwhelmed 0.2
Tired emotion: tired 0.4
Okay emotion: neutral 0.6
Calm emotion: calm 0.8
Joyful emotion: joyful 1.0

生成:U.emotion_score ∈ [0,1];若该题跳过则输出 null(或不输出该字段),并通过 profile_answered.emotion=false 表示“未作答”

語義說明

  • 這不是「快樂程度」,而是 可承受刺激與吸收內容的能力
  • 分數越低,內容越需要「減壓、陪伴、允許停下」
  • 分數越高,才適合「慶祝、提醒珍惜」

四、context影響來源— 離散型

問卷題目

Whats been influencing how you feel?

選項 tag
Family context: family
Work or study context: work
Relationship context: relationship
Friends context: friends
Health context: health

打分方式One-Hot

欄位
U.ctx.family / work / relationship / friends / health 1 或 0

若该题被跳过:U.context 输出为空对象 {},同时 profile_answered.context=false

語義說明

  • context 不是情緒,而是情緒的「觸發場景」
  • 用於提升內容共感(語境命中),而非硬性過濾

五、need最需要的支持— 離散型(最關鍵)

問卷題目

What kind of support do you need most right now?

選項 tag
Emotional support need: emotional_support
Parenting pressure need: parenting_pressure
Self-worth need: self_worth
Anxiety relief need: anxiety_relief
Rest & balance need: rest_balance

打分方式One-Hot

欄位
U.need.emotional_support / parenting_pressure / self_worth / anxiety_relief / rest_balance 1 或 0

若该题被跳过:U.need 输出为空对象 {},同时 profile_answered.need=false

語義說明

  • need推薦權重最高的維度
  • 表示「她現在最缺的是哪一種心理資源」

六、跨維度約束Hard Rules

以下規則在推薦時 優先於任何分數計算

核心禁推規則V1.2

  1. mom_stage = unknown

    • 禁推:高个性化育儿压力内容(避免“把她当妈妈/正在育儿”对话)
      • 判定条件与推荐算法一致V1.2Cᵢ.need_suitability[parenting_pressure]=1Cᵢ.personalization_power=1
  2. mom_stage = parenting

    • 禁推:明確懷孕 / 孕期 / 胎動等內容
  3. emotion_score ≤ 0.2low / overwhelmed

    • 禁推高能量慶祝型joyful 調性)內容

原則:

  • 這些不是「不準」,而是「會造成反感或退出」

七、用戶畫像最終輸出結構(示例)

{
  "profile_version": "v1.1",
  "profile_source": "questionnaire",
  "profile_generated_at": "2026-01-30T00:00:00Z",
  "profile_confidence": 1.0,
  "profile_answered": {
    "stage": true,
    "emotion": true,
    "context": true,
    "need": true
  },
  "stage": {
    "expecting": 0,
    "parenting": 1,
    "unknown": 0
  },
  "emotion_score": 0.4,
  "context": {
    "work": 1
  },
  "need": {
    "rest_balance": 1
  }
}

跳过题目时的输出示例V1.2

示例:用户跳过 emotion / context / needmom_stage 也跳过。

{
  "profile_version": "v1.2",
  "profile_source": "questionnaire",
  "profile_generated_at": "2026-01-30T00:00:00Z",
  "profile_confidence": 0.5,
  "profile_answered": {
    "stage": false,
    "emotion": false,
    "context": false,
    "need": false
  },
  "stage": {
    "unknown": 1
  },
  "emotion_score": null,
  "context": {},
  "need": {}
}

八、設計總結給產品工程AI Reviewer

  • mom_stage / context / need:描述「你現在允許我用什麼身份、從哪個角度對你說話」
  • emotion_score:描述「你現在能承受多強的刺激與建議」
  • 推薦的本質不是猜你是誰,而是 避免用錯語氣對你說話

本文件為 V1後續可疊加

  • 多選 context / need
  • 行為信號(點擊、收藏)對 emotion 的動態修正